Compare commits

...

859 Commits
1.0 ... 2.0

Author SHA1 Message Date
Graham Campbell
c1ab3a175c Bumped version 2015-12-18 12:51:20 +00:00
Graham Campbell
666da0125e Released 2.0.4 2015-12-18 12:50:27 +00:00
Graham Campbell
7ff5da78b9 Updated laravel 2015-12-18 12:48:05 +00:00
Graham Campbell
4886bb9815 Merge pull request #1238 from cachethq/fix-notifing-subscribers
Fixes #1237
2015-12-18 12:39:33 +00:00
James Brooks
d2beb6263e Remove indentation 2015-12-18 09:07:40 +00:00
James Brooks
dabed137ab Fixes #1237 2015-12-17 14:41:22 +00:00
James Brooks
f75c9f5500 Fixes #1218 2015-12-16 18:15:25 +00:00
James Brooks
b9b282ba7b Fixes #1234 2015-12-16 18:02:04 +00:00
James Brooks
5f2e2d5925 Merge pull request #1233 from phecho/fix-page_title
Fixed issue #1195
2015-12-16 13:49:27 +00:00
phecho
89c708de07 Fixed issue #1195 2015-12-16 21:42:02 +08:00
Graham Campbell
7f02aa2bce Updated dependencies 2015-12-15 15:38:04 +00:00
Graham Campbell
7de9440731 Bumped some minimum versions 2015-12-15 15:12:57 +00:00
Graham Campbell
409d34f251 Updated dependencies 2015-12-11 11:37:12 +00:00
Graham Campbell
68b0d35d1a Locked down some dependency versions 2015-12-11 11:34:21 +00:00
Graham Campbell
8ca809d5a0 Updated dependencies 2015-12-09 14:04:26 +00:00
Graham Campbell
9cde8277ad Bumped min exceptions version 2015-12-09 14:02:57 +00:00
Graham Campbell
c48f54ec28 Removed unused code 2015-12-07 12:05:08 +00:00
James Brooks
cf19fecdbe Fixes #1202 2015-12-07 07:18:06 +00:00
Graham Campbell
cce211159b Updated dependencies 2015-12-06 10:38:15 +00:00
Graham Campbell
cf9627ce99 Updated version 2015-12-02 22:26:21 +00:00
Graham Campbell
d559c47aa0 Released 2.0.3 2015-12-02 22:23:44 +00:00
Graham Campbell
ff91bc4de3 Updated dependencies 2015-12-02 22:21:45 +00:00
Graham Campbell
4be7dc9635 Updated laravel 2015-12-02 22:17:36 +00:00
Graham Campbell
ce279202c8 Fixed phpdoc 2015-11-30 16:03:26 +00:00
phecho
b25db21444 Fixed wrong var
Closes #1191

Signed-off-by: Graham Campbell <graham@alt-three.com>
2015-11-30 16:03:14 +00:00
James Brooks
a35430a4fd Fixes a bug with dashboard_login_link setting. Fixes #1190 2015-11-29 15:37:24 +00:00
James Brooks
1c4d7f4be3 Updated dependencies 2015-11-28 16:32:15 +00:00
Graham Campbell
73d1a989ec Updated dependencies 2015-11-27 10:28:06 +00:00
James Brooks
413abe4446 Merge pull request #1185 from cachethq/elixir-4
Upgrade to elixir 4 and rebuild assets
2015-11-27 09:55:18 +00:00
Joseph Cohen
41238611b6 Upgrade to elixir 4 and rebuild assets 2015-11-27 03:15:44 -06:00
James Brooks
83fd397818 Back to dev version 2015-11-26 13:48:05 +00:00
James Brooks
fc015757a7 Fix version 2015-11-26 13:47:23 +00:00
James Brooks
589f1a9562 Merge pull request #1180 from cachethq/embed-mail-banner
Embed the banner on the mail layout
2015-11-24 22:43:57 +00:00
Joseph Cohen
e78c9261f6 Embed the banner on the mail layout 2015-11-24 16:27:33 -06:00
James Brooks
6bffb66ed2 Remove duplicate banner image. Closes #1179 2015-11-24 21:51:27 +00:00
James Brooks
fb4509c8b8 Update dependencies 2015-11-24 19:55:06 +00:00
James Brooks
b11831d2e0 Fix docblock 2015-11-23 15:35:31 +00:00
Graham Campbell
74ec24120e Merge pull request #1177 from cachethq/analysis-87eWbq
Applied fixes from StyleCI
2015-11-22 20:14:53 +00:00
Graham Campbell
7c5e10f367 Applied fixes from StyleCI 2015-11-22 15:14:40 -05:00
Graham Campbell
ad9c6fd39a Back to dev 2015-11-22 20:13:51 +00:00
James Brooks
1f6e6ff592 Tag version 2.0.0 2015-11-22 20:11:58 +00:00
Graham Campbell
3572451f1e Use class noation 2015-11-22 20:09:08 +00:00
Graham Campbell
6a3ea90b27 Updated exceptions package 2015-11-22 20:06:29 +00:00
Graham Campbell
7bd93e0170 Cleanup 2015-11-22 20:06:04 +00:00
Graham Campbell
4b668a83ef Use the random_int function 2015-11-22 20:05:39 +00:00
James Brooks
dab47820e0 Re-do the UserWasAddedEvent 2015-11-22 19:41:54 +00:00
James Brooks
a04d067005 We're not using Broadcasting, so null the config 2015-11-22 19:37:39 +00:00
James Brooks
81e990b460 Comment out the UserWasAddedEvent 2015-11-22 19:36:36 +00:00
James Brooks
0771273049 Order factories 2015-11-22 19:31:42 +00:00
James Brooks
963c94a3e7 Update trans 2015-11-22 19:29:12 +00:00
James Brooks
bba87f6c46 Lowercase service trans 2015-11-22 19:28:18 +00:00
James Brooks
03f6a786ee We use SCSS not LESS 2015-11-22 19:26:18 +00:00
James Brooks
18281a65ac Updated dependencies, Whoops is now 1.1.9 2015-11-22 19:24:37 +00:00
James Brooks
13695c5b1e Updated Bower dependencies 2015-11-22 19:16:35 +00:00
James Brooks
7f6f74419d Update dependencies 2015-11-22 19:03:22 +00:00
James Brooks
620378b1f2 Merge pull request #1173 from cachethq/fixes
Fix some nulls and the notifications on the handlers
2015-11-22 09:01:19 +00:00
Joseph Cohen
a593dabeb9 Fix some nulls and the notifications on the handlers 2015-11-22 00:18:09 -06:00
Graham Campbell
24d09ccefd Back to dev 2015-11-21 23:20:52 +00:00
Graham Campbell
0817704c25 Released RC5 2015-11-21 23:20:34 +00:00
James Brooks
58e00d9fe2 We need to truncate subscribers 2015-11-21 23:19:00 +00:00
James Brooks
f814d13a64 Fixed bad variable 2015-11-21 23:16:06 +00:00
James Brooks
66c410a7c4 Fix undefined variable 2015-11-21 23:16:06 +00:00
Graham Campbell
9c15134387 Back to dev 2015-11-21 23:14:36 +00:00
Graham Campbell
73735ab4b4 Bumped version to RC4 2015-11-21 23:13:05 +00:00
James Brooks
c64df7eed7 Move display_graphs into AppComposer 2015-11-21 23:09:20 +00:00
James Brooks
51a4a1789e Forgot a file 2015-11-21 23:08:37 +00:00
James Brooks
970d903b48 style_fullwidth_header setting is now in AppComposer 2015-11-21 23:07:42 +00:00
Graham Campbell
a025ffb915 Usr strict equals 2015-11-21 23:06:18 +00:00
James Brooks
b31cab0654 Move more Setting facades into AppComposer 2015-11-21 23:05:20 +00:00
James Brooks
a2d7c49c2a Move $app_locale into AppComposer 2015-11-21 22:58:37 +00:00
James Brooks
49e33d0556 Merge pull request #1172 from cachethq/analysis-XpK4Z8
Applied fixes from StyleCI
2015-11-21 22:56:32 +00:00
James Brooks
ace02a5fa9 Applied fixes from StyleCI 2015-11-21 17:56:25 -05:00
James Brooks
4c9cae3142 Never allow Setting facade to lookup env 2015-11-21 22:53:16 +00:00
James Brooks
61ada5c07d Import missing Config facade 2015-11-21 22:53:05 +00:00
Graham Campbell
f5b6aa42b6 Cleanup 2015-11-21 22:51:05 +00:00
Graham Campbell
6f1d0ceda4 Merge pull request #1171 from cachethq/stylesheet-app-composer
Use $app_stylesheet from AppComposer
2015-11-21 22:49:59 +00:00
Graham Campbell
5eb1d376cf Tweak setup controller 2015-11-21 22:49:07 +00:00
James Brooks
dff9faaa5d Use $app_stylesheet from AppComposer 2015-11-21 22:48:22 +00:00
Graham Campbell
e5a46a71e7 Don't call env from the helpers file 2015-11-21 22:47:09 +00:00
Graham Campbell
7a09667cc0 Removed code duplication 2015-11-21 22:45:04 +00:00
Graham Campbell
236d52714d Stop calling the env function in naughty places 2015-11-21 22:43:06 +00:00
James Brooks
0e6ac90f7b Move app_banner and app_banner_type into AppComposer 2015-11-21 22:41:45 +00:00
James Brooks
2e1e7a383d Better condition to check for $app_domain 2015-11-21 22:37:25 +00:00
James Brooks
44fea779df Remove $app_url in favour of AppComposer usage 2015-11-21 22:36:09 +00:00
James Brooks
d76fa9465e Remove redundant condition for page titles 2015-11-21 22:32:05 +00:00
James Brooks
4c793590b2 Use the right variable name for page titles 2015-11-21 22:30:35 +00:00
James Brooks
1a9dbe2979 Remove unused error view 2015-11-21 22:27:49 +00:00
James Brooks
e806ef0663 Move $app_name into View composer 2015-11-21 22:25:48 +00:00
James Brooks
a8dd60063e Fix up pageTitle variables 2015-11-21 22:20:15 +00:00
James Brooks
bf20a324ac Outdent setup view blade 2015-11-21 22:15:59 +00:00
James Brooks
34d2191140 Don't use is_null 2015-11-21 22:04:23 +00:00
Graham Campbell
edb0f4b5cd Merge pull request #1110 from cachethq/filter
Fixed up array_filter stuff
2015-11-21 22:03:51 +00:00
James Brooks
27f1e6b8a4 Fix issues with is_null 2015-11-21 22:01:13 +00:00
Graham Campbell
bf88dfced0 Fixed up array_filter stuff
Closes #1071
2015-11-21 21:47:00 +00:00
Graham Campbell
fb7a15aaa7 Merge pull request #1168 from cachethq/validation
Improved api validation
2015-11-21 21:46:10 +00:00
James Brooks
beca42b532 Only check $transformed exception 2015-11-21 21:45:36 +00:00
James Brooks
c266a419e0 Fix canDisplay method 2015-11-21 21:45:15 +00:00
James Brooks
75deb97059 Correct the JsonValidationDisplayer class config 2015-11-21 21:42:35 +00:00
Graham Campbell
7a322d6032 Added missing import 2015-11-21 21:37:54 +00:00
Graham Campbell
025b92c51c Force status code 400 2015-11-21 21:20:15 +00:00
Graham Campbell
60108fb7cc Improved api validation 2015-11-21 21:18:40 +00:00
James Brooks
8ecefc65fb Hide the notify checkbox if subscribers isn't enabled 2015-11-21 14:35:35 +00:00
James Brooks
1bd54696c9 Add link on components page too 2015-11-21 13:54:20 +00:00
James Brooks
13391165bc Add link to add component suggestion 2015-11-21 13:52:32 +00:00
James Brooks
cc393df964 Update the welcome modal title 2015-11-21 13:50:53 +00:00
James Brooks
857d91c9ef Removed unused welcome email view 2015-11-21 13:50:15 +00:00
James Brooks
d08283f8a5 Pre-select the users language on setup 2015-11-21 13:49:14 +00:00
James Brooks
bcd7763f84 Fix up bad Input name and condition on setup 2015-11-21 13:45:47 +00:00
James Brooks
043b02c8b2 Merge pull request #1165 from phecho/fix-incident-edit
Fixes #1164
2015-11-21 10:38:03 +00:00
phecho
4015f4f150 Fixes issue #1164 2015-11-21 10:10:52 +08:00
James Brooks
e89c75d8bc Merge pull request #1162 from cachethq/js-drop-hq
Drop the HQ on js
2015-11-20 18:25:31 +00:00
Joseph Cohen
fcc21ce337 Drop the HQ on js 2015-11-20 12:02:19 -06:00
James Brooks
5a499cdc76 Merge pull request #1160 from phecho/improve-localization-zh
Improved zh-CN language resources for issue #1158
2015-11-20 11:03:14 +00:00
phecho
499584a110 Improved zh-CN language resources for issue #1158 2015-11-20 18:54:10 +08:00
Graham Campbell
5307e1014c Updated composer.lock 2015-11-20 10:23:19 +00:00
Graham Campbell
b60c1a9b05 Fixed up composer.json 2015-11-20 10:22:12 +00:00
James Brooks
46fc1dbc63 Merge pull request #1159 from phecho/enhance-redirect
Fixes issue #1158
2015-11-20 09:32:39 +00:00
phecho
32b66df5f0 Fixes issue #1158 2015-11-20 17:02:11 +08:00
James Brooks
031d89ea4a Merge pull request #1157 from phecho/fix-schedule-delete
Give a right tip when a schedule be deleted successfully.
2015-11-20 08:21:47 +00:00
phecho
e14ebe80e9 Give a right tip when a schedule be deleted successfully. 2015-11-20 09:43:46 +08:00
James Brooks
72233ff4ac Merge pull request #1154 from phecho/improve-dashboard
Add links for both of incidents & subscribers in dashboard default page
2015-11-19 17:59:40 +00:00
James Brooks
1db5dcbfe6 Fixes #1155 2015-11-19 17:58:01 +00:00
phecho
638f5d0862 Add links for both of incidents & subscribers in dashboard default page 2015-11-19 21:59:25 +08:00
James Brooks
1bf6f8e8c9 Merge pull request #1153 from phecho/add-cancel-btn-template
Add cancel button for incident templates
2015-11-19 12:54:22 +00:00
phecho
a9d9f7ba03 Add cancel button for incident templates 2015-11-19 20:24:22 +08:00
James Brooks
ee7d6fc9eb Merge pull request #1152 from phecho/fixed-remove-banner-bug
Fixed app banner can not be removed in the theme setting page
2015-11-19 11:43:52 +00:00
James Brooks
a8d60edb6a Merge pull request #1149 from phecho/fix-profile-dropdown
Fixes #1148
2015-11-19 11:10:48 +00:00
phecho
da30282843 Fixed app banner can not be removed in the theme setting page 2015-11-19 17:35:48 +08:00
phecho
899065b8e8 Fixes #1148 2015-11-18 22:06:51 +08:00
James Brooks
03eace0b00 Merge pull request #1144 from phecho/setup-not-responding
Fixes #1143
2015-11-17 18:30:33 +00:00
phecho
c765e22164 Fixes #1143 2015-11-18 02:08:46 +08:00
James Brooks
14e1c3d11d Merge pull request #1141 from phecho/fixes-language-detection
Fixes issue #1140
2015-11-16 18:18:01 +00:00
Graham Campbell
28893f4702 Merge pull request #1139 from phecho/adjust-travis-compile-orders-of-php
Adjust the orders of php compiler for travis
2015-11-16 16:15:31 +00:00
phpGitAdmin
7ddf4277f7 Adjust the orders of php compiler for travis as desc 2015-11-17 00:07:21 +08:00
phpGitAdmin
94c46d15cf Fixes #1140 2015-11-16 23:56:07 +08:00
James Brooks
147a6add23 Merge pull request #1138 from phecho/added-tips
Add tips in the situation of no items
2015-11-16 10:11:52 +00:00
guanshiliang
2a1bd732bd Adjust the orders of php compiler for travis 2015-11-16 11:33:05 +08:00
guanshiliang
4149ee86bf Add tips in the situation of no items 2015-11-16 11:14:56 +08:00
James Brooks
9cf600f36c Fixes #1137 2015-11-15 18:05:23 +00:00
James Brooks
d4020aed29 Merge pull request #1136 from phecho/master
Improved language package of zh-CN
2015-11-15 16:13:45 +00:00
James Brooks
cc3f08260e Metrics should include the current hour. Fixes #1113 2015-11-15 16:13:20 +00:00
guanshiliang
696eb48472 Improved language package of zh-CN 2015-11-15 23:56:16 +08:00
James Brooks
73820735f5 Merge pull request #1132 from cachethq/api-template-incidents
Incident API can now use incident templates with Twig templating
2015-11-15 11:57:09 +00:00
James Brooks
2a12b0ca85 Merge pull request #1131 from cachethq/update-langs
Updated Crowdin lang strings
2015-11-15 11:56:32 +00:00
James Brooks
af176d7c7a Incident API can now use incident templates with Twig templating 2015-11-15 11:32:51 +00:00
Graham Campbell
1483863dae Updated lock file 2015-11-14 15:16:15 +00:00
Graham Campbell
3064663350 Updated dependencies 2015-11-14 15:11:02 +00:00
James Brooks
ce71d7f3ac Merge pull request #1133 from cachethq/analysis-86Yb9z
Applied fixes from StyleCI
2015-11-12 22:52:14 +00:00
Graham Campbell
54d1aca33e Updated psysh 2015-11-12 21:28:02 +00:00
James Brooks
5ef28fba01 Applied fixes from StyleCI 2015-11-12 13:21:45 -05:00
Graham Campbell
1a5ef0750a Updated dependencies 2015-11-12 15:27:50 +00:00
James Brooks
fe45d2411c Updated Crowdin lang strings 2015-11-12 10:59:28 +00:00
James Brooks
819fc9563f Merge pull request #1129 from phecho/master
Fixed dashboard icons
2015-11-11 16:42:46 +00:00
Phecho
4c10cb2df9 Merge branch 'master' into master 2015-11-12 00:27:39 +08:00
phecho
d93ecc85e3 Adjusted the subMenu order of Settings 2015-11-12 00:22:40 +08:00
phecho
cf89f5fcec Fixed dashboard icons 2015-11-12 00:10:08 +08:00
James Brooks
326183311e Merge pull request #1128 from phecho/master
Updated Chinese(zh-CN & zh-TW) forms translations
2015-11-11 16:04:56 +00:00
Phecho
30a4d6e85b Merge branch 'master' into master 2015-11-11 23:01:19 +08:00
phecho
4c67bf70ff Adjusted the order of sidebar item 2015-11-11 23:00:40 +08:00
phecho
ccbc114f62 Updated Chinese(zh-CN & zh-TW) forms translations 2015-11-11 22:38:01 +08:00
James Brooks
a35ccfdc8b Merge pull request #1127 from phecho/master
Added lang package of traditional chinese(zh-TW)
2015-11-11 13:43:34 +00:00
phecho
4a5c810341 Added lang package of traditional chinese(zh-TW) 2015-11-11 21:17:20 +08:00
James Brooks
de1be2eefe Merge pull request #1125 from phecho/master
Improved zh-CN localization
2015-11-11 09:24:59 +00:00
phecho
76a6500c26 Fixed translations of dashboard page title 2015-11-11 15:31:11 +08:00
phecho
3b2359db1d Fixed translations of dashboard page title 2015-11-11 15:10:57 +08:00
phecho
be1fccd682 Fixed translations of dashboard page title 2015-11-11 14:57:02 +08:00
phecho
37011ad1ff Improved zh-CN localization 2015-11-11 10:53:36 +08:00
phecho
62918ee526 Improved zh-CN localization 2015-11-11 10:50:26 +08:00
Phecho
3ddbc792f4 Merge pull request #1 from cachethq/master
sync
2015-11-11 09:48:10 +08:00
James Brooks
73ddafc935 Merge pull request #1123 from phecho/master
added sub_title localization for SettingController,updated translatio…
2015-11-10 15:39:25 +00:00
phecho
67304c9eb3 added sub_title localization for SettingController,updated translations of zh-CN for human friendly 2015-11-10 20:19:42 +08:00
James Brooks
1c1674d5b4 Default enabled for PUTing component. Closes #1119 2015-11-10 10:48:50 +00:00
James Brooks
110a6394d9 Merge pull request #1118 from phecho/master
translate lang/zh-CN resources completely
2015-11-10 09:56:45 +00:00
phecho
9b0901e161 translate lang/zh-CN resources completely 2015-11-10 14:24:33 +08:00
James Brooks
30194967e5 Merge pull request #1092 from cachethq/invitation-system
Invite system for users
2015-11-09 18:38:40 +00:00
James Brooks
77cec21dc5 Update invitation system language text 2015-11-09 18:38:26 +00:00
Joseph Cohen
29c3bcf183 Add email strings 2015-11-08 20:21:23 -06:00
Joseph Cohen
0b12d4e0c3 Add validation to signup and trans strings 2015-11-08 20:13:26 -06:00
Joseph Cohen
a88140ed53 Update event listeners order 2015-11-08 20:13:26 -06:00
Joe Cohen
d82bc57796 Applied fixes from StyleCI 2015-11-08 20:13:26 -06:00
Joseph Cohen
448f13e671 Handle the signup invite 2015-11-08 20:13:25 -06:00
Joseph Cohen
f6318409a7 Start working on the invite system for users 2015-11-08 20:13:25 -06:00
James Brooks
6d52f49461 Updated dependencies 2015-11-08 21:18:19 +00:00
Graham Campbell
15d00d24ea Updated dev deps 2015-11-08 20:09:37 +00:00
James Brooks
e1581d5388 Update barryvdh/laravel-cors 2015-11-08 19:25:02 +00:00
James Brooks
ce1b9e7fe9 Drop the HQ 2015-11-08 19:15:58 +00:00
James Brooks
07c37f13c5 Update Google2FA. Closes #1115 2015-11-08 19:15:54 +00:00
James Brooks
a38a29bc2d component_status is required if we send component_id. Closes #1112 2015-11-08 19:06:26 +00:00
Graham Campbell
5f1f6d3c04 Cleanup 2015-11-07 17:09:09 +00:00
Graham Campbell
66061d9a8c Fixed typo 2015-11-07 16:35:04 +00:00
Graham Campbell
434a7b7b5b Merge pull request #1108 from cachethq/timezone
Timezone Fixes
2015-11-07 16:33:19 +00:00
Graham Campbell
ba6f9fee43 Merge pull request #1107 from cachethq/handlers
Tweaked three command handlers
2015-11-07 16:31:58 +00:00
Graham Campbell
8cd8c35125 Fixes 2015-11-07 15:37:06 +00:00
Graham Campbell
dd6a1fa956 Tweaked three command handlers 2015-11-07 13:21:28 +00:00
Joseph Cohen
bb691ec427 Test setting timezone on the api for metric points
Signed-off-by: Graham Campbell <graham@alt-three.com>
2015-11-07 13:20:06 +00:00
Graham Campbell
2d648e44ae Make sure metrics use the correct timezone
Closes #1032
2015-11-07 13:18:38 +00:00
Graham Campbell
d379e41edf Use the date factory in the schedule controller 2015-11-07 13:16:54 +00:00
Graham Campbell
6a73d6268d Use the date factory in the commands 2015-11-07 13:16:39 +00:00
Graham Campbell
592b62b399 Added date factory 2015-11-07 13:15:28 +00:00
Graham Campbell
1a23d84488 Rebuilt css 2015-11-07 11:55:16 +00:00
Graham Campbell
82e9a94ac7 Updated dependencies 2015-11-07 11:52:10 +00:00
James Brooks
c89691cb2c Fixes #1104 - Re-adds enabled field to dashboard 2015-11-07 11:29:44 +00:00
James Brooks
a70d9ce530 Added status value validation to commands 2015-11-07 11:20:45 +00:00
Graham Campbell
c75579779f Updated dependencies 2015-11-05 16:06:48 +00:00
Graham Campbell
ca2b6a7ba4 Updated markdown config and enabled safe mode 2015-11-05 16:01:21 +00:00
Graham Campbell
46845f1a8f Bumped minimum markdown vesion 2015-11-05 16:01:16 +00:00
James Brooks
addbe53e2b Fix control name. Closes #1102 2015-11-05 07:17:04 +00:00
James Brooks
b4d33f2bcb Default metric places to 2. Fixes #1090 2015-11-04 18:47:17 +00:00
Graham Campbell
210568ff1a Merge pull request #1101 from cachethq/define-version
Display the current version in the settings sidebar. Closes #1061
2015-11-04 17:41:33 +00:00
Graham Campbell
4775ef43b7 Fixed the version constant 2015-11-04 17:39:55 +00:00
Graham Campbell
b8fa1f0111 Moved the defining to the autoload.php file 2015-11-04 17:39:16 +00:00
James Brooks
3b7308dccd Display the current version in the settings sidebar. Closes #1061 2015-11-04 15:10:15 +00:00
James Brooks
f5964bef8e Removed unused import 2015-11-04 15:09:52 +00:00
James Brooks
e6c24ce9f8 Remove pointless check for logged in users 2015-11-04 15:05:38 +00:00
James Brooks
b8e3dcff55 Docblock fixes 2015-11-04 15:02:56 +00:00
James Brooks
0fed178c34 Removed old todo comment. Closes #1073 2015-11-04 15:00:28 +00:00
James Brooks
fbc4041bf7 Hide disabled components from public API. Closes #1095 2015-11-04 14:59:11 +00:00
James Brooks
32d4aae76e Removed unused Guard usage 2015-11-04 14:48:02 +00:00
James Brooks
b7eac45968 Call enabled scope on the builder, not the collection 2015-11-04 14:39:27 +00:00
Graham Campbell
39157a74a1 Merge pull request #1100 from AntoineAugusti/components-scopes
Add scopes for components
2015-11-04 13:53:03 +00:00
Antoine Augusti
b414a4e391 Add scopes for components 2015-11-04 14:54:43 +01:00
James Brooks
87bcd0c87b Remove todo 2015-11-03 23:23:14 +00:00
James Brooks
fcac32a67d Refactors out notify conditions. Closes #1083 2015-11-03 23:17:45 +00:00
James Brooks
ccc23fa70d Merge pull request #1099 from cachethq/disable-components
Enabling/Disabling of components
2015-11-03 22:52:38 +00:00
James Brooks
468f156ceb Update command tests 2015-11-03 22:37:29 +00:00
James Brooks
013f873500 Default the add component to true 2015-11-03 22:11:44 +00:00
James Brooks
edd111451e Started work on enabling/disabling components 2015-11-03 21:32:45 +00:00
James Brooks
e8a3e18d55 Updated dependencies 2015-11-03 21:08:29 +00:00
Graham Campbell
2e26f6641d Fixed redirect
Closes #1098
2015-11-01 23:36:49 +00:00
James Brooks
809c17e7e6 We don't need to eager load metric points. Closes #1089 2015-11-01 18:48:25 +00:00
James Brooks
b4977e7ada Merge pull request #1096 from phelipealves/master
Brazilian Portuguese updated
2015-11-01 14:46:50 +00:00
Phelipe Alves de Souza
7f00501d10 Brazilian Portuguese updated 2015-11-01 12:14:48 -02:00
Graham Campbell
3862a8a2f0 Updated composer.lock 2015-10-31 20:41:24 +00:00
Graham Campbell
6cfe07c4fa Merge pull request #1084 from cachethq/analysis-qyKZL8
Applied fixes from StyleCI
2015-10-30 18:25:56 +00:00
Graham Campbell
f2fb5b66c1 Applied fixes from StyleCI 2015-10-30 14:25:45 -04:00
Graham Campbell
f454172dc8 Pull in change to .htaccess made on laravel/laravel 2015-10-30 18:24:43 +00:00
Graham Campbell
4ab6cd5b1b Synced config with laravel/laravel 2015-10-30 18:24:42 +00:00
James Brooks
c354c7cc3d Merge pull request #1076 from TheoBearman/master
Some Minor Grammatical & Styling Changes
2015-10-29 21:46:50 +00:00
Theo Bearman
36c8f086e9 James' Changes 2015-10-29 12:07:37 +00:00
Theo Bearman
4c32a394fe Fix 2015-10-29 11:43:14 +00:00
Theo Bearman
4ed8d9b7d5 Some Minor Grammatical & Styling Changes 2015-10-29 11:10:45 +00:00
Theo Bearman
148268d294 Merge remote-tracking branch 'refs/remotes/cachethq/master' 2015-10-29 10:55:43 +00:00
James Brooks
7076b92003 Updated description and keywords 2015-10-29 08:25:31 +00:00
Graham Campbell
8af729e426 Updated dependencies 2015-10-28 22:35:41 +00:00
Graham Campbell
6a1048d6a5 Removed dependency accidently added 2015-10-28 22:31:59 +00:00
Graham Campbell
555dda4bac Bumped minimum laravel version 2015-10-28 22:31:48 +00:00
James Brooks
a23bdad59c Merge pull request #1074 from Forst/master
[ru] Update localization
2015-10-28 14:50:00 +00:00
Graham Campbell
b67419e073 Updated dependencies 2015-10-28 14:40:43 +00:00
Foster Forst Snowhill
8569101551 [ru] Update localization 2015-10-28 17:28:10 +03:00
Graham Campbell
a8e1713fab Merge pull request #1070 from cachethq/incidents
Improved and fixed the report incident command handler
2015-10-28 14:05:53 +00:00
Graham Campbell
bb106d35fe Improved and fixed the report incident command handler 2015-10-28 13:58:20 +00:00
James Brooks
4a07bb4a7f Merge pull request #1069 from ApfelUser/master
Enhance German translations
2015-10-28 10:39:15 +00:00
ApfelUser
d7e10f087b The file name seems to have changed in the original EN folder 2015-10-28 10:27:13 +01:00
ApfelUser
09ed3b3e7a Add correct German translation for auth.php 2015-10-28 10:17:17 +01:00
James Brooks
b1d013e997 Merge pull request #1068 from TheoBearman/master
Some Minor Grammatical Changes
2015-10-28 08:04:40 +00:00
Theo Bearman
3649b58fbe Graham's Corrections 2015-10-27 21:34:54 +00:00
Theo Bearman
6cd37a5ab6 'Powered' is now 'powered' again 2015-10-27 20:31:31 +00:00
Theo Bearman
390a2d289e Some Minor Grammatical Changes 2015-10-27 20:17:22 +00:00
James Brooks
bb77dafea9 Merge pull request #1065 from TheoBearman/master
Removed Bold Text On Footer 'Subscriber' Button #1056
2015-10-27 20:02:22 +00:00
James Brooks
854679e55e Merge pull request #1066 from cachethq/issue-1064
Closes #1064
2015-10-27 18:11:42 +00:00
Graham Campbell
d40ffed287 Closes #1064 2015-10-27 17:44:28 +00:00
Theo Bearman
ef8f90bc4d Removed Bold Text On Footer 'Subscriber' Button 2015-10-27 16:35:27 +00:00
James Brooks
8d02a5a3a2 Fix issue with components not reporting on incidents. Closes #1063 2015-10-27 12:43:01 +00:00
James Brooks
964a5fc514 Move the banner form into Theme. Closes #1051 2015-10-27 08:19:53 +00:00
James Brooks
ce633c6b29 Closes #1050, link to Gravatar.com in the profile page 2015-10-27 08:18:09 +00:00
James Brooks
8131e21a67 Merge pull request #1058 from cachethq/finish-footer
Remove footer icons, make button outline, fix responsive
2015-10-26 21:41:08 +00:00
Joseph Cohen
36f0f9f2cb Remove footer icons, make button outline, fix responsive 2015-10-26 12:09:41 -06:00
Graham Campbell
69bab99855 Rebuilt css 2015-10-25 12:06:49 +00:00
Graham Campbell
85a49e6386 Updated dependencies 2015-10-25 12:06:44 +00:00
Graham Campbell
5e9b52d534 Updated dependencies 2015-10-24 22:35:57 +01:00
Graham Campbell
edfd0156a9 Merge branch 'master' of https://github.com/cachethq/Cachet 2015-10-24 22:33:56 +01:00
Graham Campbell
6d3294415b Merge pull request #1055 from cachethq/footer
Make footer simpler
2015-10-24 22:32:48 +01:00
Graham Campbell
61d5554c7c Bumped minimum laravel version 2015-10-24 22:31:15 +01:00
Graham Campbell
cd2829ba5b Meh 2015-10-24 22:24:39 +01:00
Graham Campbell
5e97ae4398 Support php 7 2015-10-24 22:24:17 +01:00
Joseph Cohen
df8e9ea101 Make footer simpler 2015-10-24 12:48:40 -05:00
James Brooks
a8b279c2e6 Merge pull request #1053 from mmollick/subscriber_confirmations
Fixing issue #1052
2015-10-23 07:25:59 +01:00
James Brooks
3a76953ed8 Merge pull request #1054 from mmollick/typo
Fixed typo for unsubscribe
2015-10-23 07:25:26 +01:00
Michael Mollick
48e0a775e0 Fixed typo for unsubscribed language reference 2015-10-22 21:36:49 -04:00
Michael Mollick
728ad547b5 Subscribers can now confirm and unsubscribe when 'Allow people to signup...' is disabled 2015-10-22 21:24:31 -04:00
James Brooks
ffa6a8f3d6 Merge pull request #1049 from mmollick/fullwidth_header
Fullwidth header
2015-10-22 17:12:26 +01:00
Michael Mollick
1271470da3 Changed the default padding options, was '40px 0 0 0', is now '40px 0' 2015-10-22 09:14:59 -04:00
Michael Mollick
152c46e430 Reworking the header, logo is always contained in the center column per the original header 2015-10-21 22:18:34 -04:00
James Brooks
974fd5015d Merge pull request #1048 from mmollick/master
Cleaning up dashboard forms
2015-10-21 07:08:19 +01:00
Michael Mollick
bd6b9fcabf Applied StyleCI patch 2015-10-21 00:16:46 -04:00
Michael Mollick
77245c3b71 Fixing checkbox to toggle fullwidth banner 2015-10-21 00:14:18 -04:00
Michael Mollick
efee85685b Updated language files with new theme fields 2015-10-21 00:02:27 -04:00
Michael Mollick
f1c613249a Support for full width header added 2015-10-20 23:52:48 -04:00
Michael Mollick
e8a5926dfe Applied StyleCI changes 2015-10-20 22:13:52 -04:00
Michael Mollick
5860678eb5 Notify subscribers is now one line, optional indicator appears after label 2015-10-20 21:19:57 -04:00
Michael Mollick
1480385c04 Display chart on status page is now on a single line 2015-10-20 21:13:09 -04:00
Michael Mollick
4771a134c4 Notify subscribers checkbox is now a single line, removed optional indicator 2015-10-20 21:09:52 -04:00
Michael Mollick
6d231fb68a Checkbox in theme is now inline 2015-10-20 21:07:19 -04:00
Michael Mollick
be6fdf6890 Updated remaining language files 2015-10-20 20:52:38 -04:00
Michael Mollick
c832aba80a Segmented the language files 2015-10-20 20:38:33 -04:00
James Brooks
24e125857c Organise the footer buttons better. Closes #1047 2015-10-20 22:06:35 +01:00
Graham Campbell
95d9c2424d Updated lock file 2015-10-20 20:36:36 +01:00
Graham Campbell
7507a362bd Switched boolean for bool 2015-10-20 20:34:59 +01:00
Graham Campbell
d46007c536 Switched from integer to int 2015-10-20 20:33:23 +01:00
Graham Campbell
59967bca9a Bumped min versions 2015-10-20 20:32:53 +01:00
James Brooks
1c9021884a Fixes favicon.png sizing. Closes #1045 2015-10-20 19:59:29 +01:00
Michael Mollick
1ce7f3d569 Seperated application settings into three pages 2015-10-19 00:41:19 -04:00
Graham Campbell
decc16a72c Merge pull request #1043 from BenjaminPaap/patch-1
Fixed some minor typos
2015-10-18 19:57:24 +01:00
Benjamin Paap
5af115daac Fixed some minor typos
While reading the README.md I noticed some minor typos
2015-10-18 20:54:23 +02:00
James Brooks
c3646fd64a Let's not duplicate view code 2015-10-17 14:27:15 +01:00
James Brooks
4e7d4c4581 Move the subscribers button into footer, re-arrange top half page 2015-10-17 14:18:45 +01:00
James Brooks
49e4113159 Filter component elements that aren't set 2015-10-17 09:59:58 +01:00
James Brooks
654c0265aa Merge pull request #1042 from cachethq/demo-metric-point-seeder
Added DemoMetricPointSeederCommand. Closes #1041
2015-10-16 17:54:07 +01:00
James Brooks
0eda950dc7 Added DemoMetricPointSeederCommand. Closes #1041 2015-10-16 17:48:58 +01:00
James Brooks
2d55697cf4 Merge pull request #1039 from MaxGfeller/add-composer-test-script
Add `composer test` script
2015-10-15 14:34:48 +01:00
Max Gfeller
1248c4042f Add composer test script 2015-10-15 15:32:46 +02:00
James Brooks
9bf6d31131 Merge pull request #1037 from cachethq/fix-date-trans
Set date lang on the localized middleware
2015-10-15 00:05:43 +01:00
Joseph Cohen
134dfa0b0e Set date lang on the localized middleware 2015-10-14 16:03:58 -05:00
James Brooks
02d59e3424 Finish the PgSqlRepository for metrics. Closes #1035 2015-10-14 20:59:11 +01:00
James Brooks
4897453f5f Editing a component should call UpdateComponentCommand. Closes #1036 2015-10-14 17:19:24 +01:00
James Brooks
ee1c23b2c9 Update dependencies 2015-10-13 22:33:23 +01:00
Graham Campbell
e1ae1a1316 Rebuilt css 2015-10-11 16:04:15 +01:00
Graham Campbell
66779c3f0b Updated npm deps 2015-10-11 16:04:09 +01:00
Graham Campbell
7a998f2b69 Updated dependencies 2015-10-11 15:17:56 +01:00
James Brooks
6ba1b1188a Merge pull request #1029 from cachethq/use-warning-status
Use warning rather than error
2015-10-11 12:10:36 +01:00
James Brooks
39b6bfc6d0 Use info instead of warning 2015-10-11 12:10:19 +01:00
James Brooks
9ad3b7e606 Merge pull request #997 from mrbase/dk-lang
added danish translation
2015-10-11 12:03:15 +01:00
James Brooks
3988cfb6c0 Use warning rather than error 2015-10-11 11:35:00 +01:00
Graham Campbell
9d20e7b3a4 Merge pull request #1028 from cachethq/analysis-Xk6bP8
Applied fixes from StyleCI
2015-10-09 14:42:16 +01:00
Graham Campbell
d62598dd45 Applied fixes from StyleCI 2015-10-09 09:42:10 -04:00
Graham Campbell
746b7aeb2a Merge pull request #1025 from cachethq/cachet-timezone
[WIP] Cachet timezone
2015-10-09 14:41:30 +01:00
Joseph Cohen
41b8b9660b Fix missing default 2015-10-08 16:17:35 -05:00
Graham Campbell
019bb6b7ea Merge pull request #1027 from cachethq/analysis-qB05O8
Applied fixes from StyleCI
2015-10-08 22:16:43 +01:00
Graham Campbell
bda07ea0dd Applied fixes from StyleCI 2015-10-08 17:16:37 -04:00
Joseph Cohen
9d91e19863 CS Fix 2015-10-08 16:15:44 -05:00
Joseph Cohen
9887df6987 Revert change on statuspage 2015-10-08 16:15:04 -05:00
Graham Campbell
63d5161010 Merge pull request #1026 from cachethq/analysis-qyLK5X
Applied fixes from StyleCI
2015-10-08 22:13:11 +01:00
Graham Campbell
1a783d71f8 Applied fixes from StyleCI 2015-10-08 17:13:03 -04:00
Joseph Cohen
a288f84fc5 Settable timezones with cachet config 2015-10-08 16:11:30 -05:00
James Brooks
1e2b80d8d3 Standalone text classes should be importnat 2015-10-08 21:43:23 +01:00
James Brooks
d3fcffce72 Text color for buttons and alerts is now dynamic. Closes #1020, #1021 2015-10-08 17:02:27 +01:00
James Brooks
22c39df73f Merge pull request #1024 from billmn/status-page-localization
Restored Status Page localization
2015-10-08 10:34:05 +01:00
Davide Bellini
8bd46105e6 Restored Status Page localization 2015-10-08 11:30:33 +02:00
Graham Campbell
35679a23d0 Merge pull request #1015 from cachethq/autopresenter
Autopresenter Updates
2015-10-07 22:55:53 +01:00
Graham Campbell
6c048d45d6 Updated lock file 2015-10-07 22:55:26 +01:00
Graham Campbell
995fdd4049 Updated autopresenter 2015-10-07 22:55:25 +01:00
Davide Bellini
b6fbe53b28 Use Collection on API Paginator presenter
This allows to decorate all model's attributes inside the Collection
2015-10-07 22:55:24 +01:00
Graham Campbell
22204811c2 Merge pull request #1019 from mrbase/form-and-js-fix
Fix problems with the incident add/edit form
2015-10-07 22:52:58 +01:00
ulrik nielsen
a374ae9abd removed the incident array 2015-10-07 21:48:23 +02:00
ulrik nielsen
b68efe0631 new asset build 2015-10-07 21:47:42 +02:00
James Brooks
ce8e710173 Set the app_timezone setting 2015-10-07 17:49:22 +01:00
Graham Campbell
8bd510a653 Merge pull request #1010 from cachethq/new
Updated dependencies
2015-10-07 14:37:55 +01:00
Graham Campbell
efdddfb847 Rebuilt css 2015-10-07 14:30:17 +01:00
Graham Campbell
22b6af8f0f Updated lock file 2015-10-07 14:30:16 +01:00
Graham Campbell
04321db166 Updated throttle package 2015-10-07 14:30:14 +01:00
Graham Campbell
9bef541057 Updated exceptions package 2015-10-07 14:30:13 +01:00
Graham Campbell
af62c5683f Updated markdown packages 2015-10-07 14:30:13 +01:00
Graham Campbell
238dcbcaeb Bumped min guzzle version 2015-10-07 14:30:12 +01:00
Graham Campbell
4e9f8772e8 Bumped min phpunit version 2015-10-07 14:30:11 +01:00
Graham Campbell
710348c0b6 Merge pull request #1013 from cachethq/travis
Synced travis file with alt three packages
2015-10-07 14:05:11 +01:00
Graham Campbell
7909465e98 Added back no scripts 2015-10-07 14:03:16 +01:00
Graham Campbell
9fac22b863 Synced travis file with alt three packages 2015-10-07 14:01:54 +01:00
James Brooks
55429283c0 Started working on API timezone support 2015-10-07 13:48:14 +01:00
James Brooks
32063510fb Update dependencies 2015-10-07 13:37:42 +01:00
Graham Campbell
814fcd844c Tweaked command kernel 2015-10-06 16:24:51 +01:00
James Brooks
715adda424 Merge pull request #1007 from janyksteenbeek/patch-1
Fixed Grammar + added translation for metrics
2015-10-06 11:23:16 +01:00
Janyk Steenbeek
9ea4698f21 Fixed Grammar + added translation for metrics
Fixed grammar in Dutch translation file, things like capital letters and double words. Also added translation for metrict
2015-10-06 12:04:52 +02:00
James Brooks
a91d0be1a8 Fix CS 2015-10-05 20:18:44 +01:00
James Brooks
2091f0ddf0 Merge pull request #1003 from billmn/login-autofocus
Autofocus on login email field
2015-10-05 20:18:14 +01:00
Davide Bellini
674be657c7 Autofocus on login email field 2015-10-05 21:10:24 +02:00
ulrik nielsen
2dd393a569 Merge branch 'dk-lang' of github.com:mrbase/Cachet into dk-lang 2015-10-05 20:54:42 +02:00
ulrik nielsen
9d4ec9c711 added danish translation 2015-10-05 20:53:48 +02:00
James Brooks
bc16eda3ec Closes #1002 2015-10-05 19:04:04 +01:00
Graham Campbell
1cf63e025b Merge pull request #1001 from cachethq/php7
Test on php 7
2015-10-05 18:13:10 +01:00
Graham Campbell
92c08b63d7 Only run coverage on 5.6 2015-10-05 18:12:32 +01:00
Davide Bellini
4793617f9b Some improvements on settings controller
Closes 989

Signed-off-by: Graham Campbell <graham@alt-three.com>
2015-10-05 18:10:04 +01:00
Graham Campbell
d4745ebb7b Test on php 7 2015-10-05 18:07:03 +01:00
James Brooks
1ba807c724 Merge pull request #1000 from revi/typofix
Fix typo in CONTRIBUTING.md
2015-10-05 17:52:49 +01:00
Yongmin Hong
5bbbb4ec58 Fix typo
Into to doesn't seem natural, is it?
2015-10-06 01:47:43 +09:00
ulrik nielsen
5c3e935b13 StyleCI fix 2015-10-05 18:11:10 +02:00
ulrik nielsen
6afea3674c added danish translation 2015-10-05 17:57:17 +02:00
James Brooks
ef159b38e7 Merge pull request #996 from cachethq/analysis-8bo3lX
Applied fixes from StyleCI
2015-10-05 14:18:46 +01:00
James Brooks
752d353900 Applied fixes from StyleCI 2015-10-05 09:18:41 -04:00
James Brooks
5b897f18b9 Added tests for Service Providers 2015-10-05 14:07:06 +01:00
James Brooks
532a7139a3 Merge pull request #995 from billmn/sortable-background
Added background color to sortable list
2015-10-05 13:55:52 +01:00
Davide Bellini
54d3419d5e Add border to the dragged item 2015-10-05 14:52:50 +02:00
Davide Bellini
021a842520 Added background to sortable list 2015-10-05 12:36:47 +02:00
James Brooks
a08f39f351 Merge pull request #994 from billmn/patch-1
Updated Italian metrics translations
2015-10-05 08:56:50 +01:00
Davide Bellini
753fa00d92 Updated Italian metrics translations 2015-10-05 09:51:23 +02:00
James Brooks
677caf86c5 Merge pull request #993 from cachethq/update-elixir
Update to elixir 3.3.1, removed unused elixir.json format bower.json
2015-10-05 08:24:49 +01:00
Joseph Cohen
01ed08dcb1 Update to elixir 3.3.1, removed unused elixir.json format bower.json 2015-10-04 21:23:12 -05:00
James Brooks
af7258d54f Merge pull request #990 from cachethq/command-tests
Command Tests
2015-10-03 20:53:49 +01:00
James Brooks
127d0d0d55 Added command tests 2015-10-03 16:58:34 +01:00
James Brooks
939bdf0c4e Merge pull request #973 from billmn/alert-improvements
Alert improvements
2015-10-03 16:02:45 +01:00
Davide Bellini
e9702e4292 Merged branch master and fixed conflict
After Password Strength merge this branch have 2 conflict:
- gulpfile.js
- public/build/rev-manifest.json

All conflicts solved now
2015-10-03 12:53:43 +02:00
James Brooks
b4f7adfdfd Updated dependencies 2015-10-03 11:34:52 +01:00
James Brooks
4d7d5b5734 Merge pull request #983 from AntoineAugusti/guard-demo-seeder-command
Ask for confirmation when trying to run the DemoSeederCommand in prod
2015-10-03 10:02:54 +01:00
James Brooks
43fa49bdd8 Merge pull request #988 from ApfelUser/master
e-Mail -> E-Mail
2015-10-03 10:00:16 +01:00
ApfelUser
f16c17c824 Fix E-Mail in forms.php 2015-10-03 10:58:02 +02:00
ApfelUser
0f353a3db3 Fix E-Mail in cachet.php 2015-10-03 10:57:08 +02:00
Joseph Cohen
4baaf69907 Small update to the password strength indicator 2015-10-03 03:19:47 -05:00
Joe Cohen
1914e54def Merge pull request #980 from AntoineAugusti/password-strength-indicator
Add a password strength indicator on relevant forms
2015-10-03 03:01:10 -05:00
Antoine Augusti
130dc11740 Add a password strength indicator on relevant forms 2015-10-03 09:50:18 +02:00
Graham Campbell
ac429b1e2a Merge pull request #986 from manuelgu/patch-2
changed german translation to a more sensible one
2015-10-02 22:08:18 +01:00
manuelgu
9426c7a9de changed german translation to a more sensible one 2015-10-02 23:05:24 +02:00
James Brooks
be3a8c4c85 Merge pull request #985 from manuelgu/patch-1
tweaked the german language file
2015-10-02 21:49:52 +01:00
manuelgu
bc730a5d95 tweaked the german language file 2015-10-02 22:47:18 +02:00
James Brooks
26c0ff9af7 Merge pull request #984 from AntoineAugusti/api-per-page-type
per_page attribute in API responses should be an integer
2015-10-02 20:13:45 +01:00
James Brooks
dedfda2dc2 Merge pull request #982 from AntoineAugusti/translation-fix
Fix translation logged_in_only
2015-10-02 20:01:13 +01:00
James Brooks
dbcf567505 Merge pull request #981 from billmn/settings-locale-fix
Fixed wrong Locale on Settings form submit
2015-10-02 20:00:54 +01:00
James Brooks
52119f97cf Merge pull request #979 from billmn/updated-italian-lang
Updated Italian translations
2015-10-02 19:59:45 +01:00
Antoine Augusti
e9e5768406 per_page attribute in API responses should be an integer 2015-10-02 20:10:09 +02:00
Antoine Augusti
14aea5a1f0 Ask for confirmation when trying to run the DemoSeederCommand in production 2015-10-02 19:11:27 +02:00
Antoine Augusti
ea8531ddc1 Fix translation logged_in_only 2015-10-02 18:58:44 +02:00
Davide Bellini
254c81af1b Fixed wrong Locale on Settings form submit
Except Setup section, when you submit a form, the Success message doesn't use your current locale but always English (that is the default language).
2015-10-02 18:50:10 +02:00
Davide Bellini
1fc1cd7cba Reduced indentation 2015-10-02 17:35:02 +02:00
Davide Bellini
b6056faa72 Removed space before the question mark 2015-10-02 16:31:08 +02:00
Davide Bellini
4c0fb53ba7 Fixed style, again ;) 2015-10-02 15:48:13 +02:00
Davide Bellini
bd6b3f09d0 Updated Italian translations
Aligned to the latest version of Laravel
2015-10-02 15:43:38 +02:00
Graham Campbell
b511a91a7f Merge pull request #978 from cachethq/composer
Force lock file to work on php 5.5.9
2015-10-02 11:49:49 +01:00
Graham Campbell
093bd8c55c Force lock file to work on php 5.5.9 2015-10-02 11:45:39 +01:00
David Fernández
a21fae88d4 Updated Spanish translations
Closes #975

Signed-off-by: Graham Campbell <graham@alt-three.com>
2015-10-02 10:29:46 +01:00
James Brooks
e6a8e25eed Merge pull request #976 from billmn/patch1
Used lang files of latest version of Laravel
2015-10-02 07:09:36 +01:00
Davide Bellini
3c2388e83b Fix Style 2015-10-02 01:04:02 +02:00
Davide Bellini
4fc31445ff Merge branch 'master' of https://github.com/cachethq/Cachet into patch1 2015-10-02 00:55:17 +02:00
Davide Bellini
97cbbc2830 Used lang files of latest version of Laravel 2015-10-02 00:47:29 +02:00
Graham Campbell
2f332a193e Merge pull request #972 from floler/master
tweaked the german language translations
2015-10-01 23:21:27 +01:00
Davide Bellini
3fca767624 Use SweetAlert for confirmation dialog 2015-10-01 23:28:01 +02:00
Davide Bellini
e59a490878 Added SweetAlert to Bower components 2015-10-01 23:25:08 +02:00
Florian Chrometz
c2ad8e14f3 tweaked the german language translations 2015-10-01 22:18:23 +02:00
Graham Campbell
1ceaed3911 Merge pull request #971 from cachethq/analysis-z906mq
Applied fixes from StyleCI
2015-10-01 21:16:55 +01:00
Graham Campbell
a688b495d7 Applied fixes from StyleCI 2015-10-01 16:16:50 -04:00
JLamim Projetos Web & Mobile
59937229b2 Translation to Brazillian Portuguese completed
Closes #970

Signed-off-by: Graham Campbell <graham@alt-three.com>
2015-10-01 21:15:57 +01:00
Graham Campbell
1c892f64f0 Fixed typo 2015-10-01 21:15:07 +01:00
James Brooks
66bd80d080 Merge pull request #969 from cachethq/dates
Moved dates to casts
2015-10-01 21:07:58 +01:00
Graham Campbell
db6faa70d3 Moved dates to casts 2015-10-01 21:05:14 +01:00
Graham Campbell
65023ec7da Merge branch 'master' of https://github.com/cachethq/Cachet 2015-10-01 21:04:45 +01:00
Graham Campbell
6b4b71552d Updated dependencies 2015-10-01 21:04:40 +01:00
Graham Campbell
7bd158bb6c Bumped min laravel vesion 2015-10-01 21:04:30 +01:00
James Brooks
b408036c76 Merge pull request #968 from cachethq/security-notice
Security notice
2015-10-01 20:55:45 +01:00
James Brooks
75020a6576 Security notice 2015-10-01 20:55:24 +01:00
James Brooks
c75bdad4fa Merge pull request #967 from cachethq/branch-notice
Added branch notice
2015-10-01 20:47:15 +01:00
James Brooks
2a15991e16 Addedbranch notice 2015-10-01 20:46:48 +01:00
James Brooks
6aedf27300 Merge pull request #966 from cachethq/update-deps
Update dependencies
2015-10-01 20:39:48 +01:00
James Brooks
102457b491 Update dependencies 2015-10-01 20:38:42 +01:00
Graham Campbell
afa2b3ca7e Merge pull request #965 from cachethq/emoji
Add way to disable emoji support
2015-10-01 20:32:08 +01:00
Graham Campbell
282e61d202 Move 2015-10-01 20:31:19 +01:00
Graham Campbell
e8427cb06b Add way to disable emoji support 2015-10-01 20:29:47 +01:00
Davide Bellini
3e0d38aa4c Italian translation
Closes #964

Signed-off-by: Graham Campbell <graham@alt-three.com>
2015-10-01 20:23:19 +01:00
James Brooks
df0acb40de Merge pull request #950 from cachethq/update-commands
Update commands
2015-10-01 20:14:02 +01:00
James Brooks
3e9336c598 Use the array of login data that we already have 2015-09-29 19:36:56 +01:00
James Brooks
e8bc3fb818 Use integer and between for metric rules 2015-09-26 14:46:25 +01:00
James Brooks
08e9705088 $incident_date is now handled by the command handler 2015-09-26 14:42:42 +01:00
James Brooks
3ca1ae5d70 calc_type can only be 0 or 1 2015-09-26 14:22:02 +01:00
Joseph Cohen
f7f01c5059 Typo 2015-09-24 23:12:35 -05:00
Joe Cohen
c13aece3a4 Merge pull request #958 from cachethq/analysis-qJxWb8
Applied fixes from StyleCI
2015-09-24 23:10:14 -05:00
Joe Cohen
051e26e653 Applied fixes from StyleCI 2015-09-25 00:08:16 -04:00
Joseph Cohen
3f8471d8da Fixes and validation rules 2015-09-24 23:07:39 -05:00
James Brooks
eadedeecbf Autosize now works again 2015-09-23 21:25:10 +01:00
James Brooks
8c03c80582 Update bower components. Fix autosize not working 2015-09-23 21:25:06 +01:00
James Brooks
4ae9d96f25 Updated dependencies 2015-09-23 20:21:50 +01:00
James Brooks
354bfffc97 Merge pull request #955 from cachethq/analysis-qryRxX
Applied fixes from StyleCI
2015-09-23 18:39:17 +01:00
James Brooks
4384438d46 Applied fixes from StyleCI 2015-09-23 13:39:04 -04:00
James Brooks
18f98d19f0 Added UpdateMetric and UpdateMetricPoint commands 2015-09-23 18:38:42 +01:00
James Brooks
b8b81f7e1c Added UpdateIncidentCommand 2015-09-23 18:19:01 +01:00
James Brooks
30b05f360d Applied fixes from StyleCI 2015-09-23 18:19:01 +01:00
James Brooks
d4c1b23b3f Added UpdateComponentGroupCommand 2015-09-23 18:19:01 +01:00
James Brooks
d3cd8201a6 UpdateComponentCommand is now done 2015-09-23 18:19:01 +01:00
James Brooks
80caeea86a Check that $incidentDate is set before using it 2015-09-21 11:21:03 +01:00
James Brooks
a9a5eef275 Actually, we need to use hasSetting 2015-09-21 11:11:02 +01:00
James Brooks
92ab7c8451 Don't mind the Registrar contract as it no longer exists 2015-09-21 11:02:45 +01:00
James Brooks
935fb9c7c1 Updated composer 2015-09-20 19:00:02 +01:00
James Brooks
ba57d51142 Updated dependencies 2015-09-20 18:51:14 +01:00
James Brooks
e735dd5dc4 Removed unused Exception import 2015-09-19 14:30:08 +01:00
James Brooks
49a7b55a12 Remove unused variable within component presenter 2015-09-19 14:28:31 +01:00
James Brooks
a6d3b69f75 Remove unused import 2015-09-19 14:28:31 +01:00
James Brooks
91fe0ed72f Clean up the HasSetting middleware 2015-09-19 14:28:31 +01:00
James Brooks
45784c3720 Use the app.isSetup middleware 2015-09-19 14:28:31 +01:00
James Brooks
c2f8f23159 Added missing return void docs 2015-09-19 14:28:31 +01:00
James Brooks
3af02f725b Fixed docblock comments 2015-09-19 14:28:31 +01:00
James Brooks
d2d605e884 Improved the AppIsSetup middleware 2015-09-19 14:28:30 +01:00
James Brooks
7e5ec12c05 Merge pull request #952 from cachethq/code-tidy
Removed ConsoleServiceProvider and Registrar services
2015-09-19 08:33:21 +01:00
James Brooks
0973930710 Completely remove ConsoleServiceProvider 2015-09-19 08:32:40 +01:00
James Brooks
a02afa2d28 Update dependencies 2015-09-18 15:56:28 +01:00
James Brooks
6a18554768 Remove unused import 2015-09-18 15:51:43 +01:00
James Brooks
00d7c715ff Remove service binding console service provider 2015-09-18 15:49:59 +01:00
James Brooks
8fad9f567b Removed unused Registrar service 2015-09-18 15:47:37 +01:00
Graham Campbell
6d983a1b21 Merge pull request #945 from cachethq/analysis-q5b3yz
Applied fixes from StyleCI
2015-09-14 09:15:47 +01:00
Graham Campbell
9a964a9aee Applied fixes from StyleCI 2015-09-14 04:15:41 -04:00
Graham Campbell
f4b569f2fd Updated tests 2015-09-14 09:13:42 +01:00
Graham Campbell
d40b6cef57 Updated events 2015-09-14 09:13:14 +01:00
Graham Campbell
cf14483577 Updated dependencies 2015-09-14 09:07:58 +01:00
James Brooks
687b46389d Started work on Events tests 2015-09-14 08:47:51 +01:00
James Brooks
b0ec13fa13 Fixes adding of subscribers. Closes #944 2015-09-14 08:37:24 +01:00
James Brooks
536ae3502d Fixes an issue with parsing JSON on Firefox. Closes #941 2015-09-10 21:25:10 +01:00
James Brooks
2fbc044057 Merge pull request #938 from tobru/feature_mailencryption
new MAIL_ENCRYPTION parameter
2015-09-10 08:31:59 +01:00
James Brooks
45181bfe5c Merge pull request #939 from andrewgoktepe/utc-timezone
add UTC time zone as an option on Application Setup page
2015-09-10 08:31:19 +01:00
Andrew Goktepe
68a0839e13 add UTC time zone to list of options 2015-09-09 16:58:49 -07:00
Tobias Brunner
4dd839719f add example for MAIL_ENCRYPTION to example env file 2015-09-09 22:30:53 +02:00
Tobias Brunner
600493f1cb new MAIL_ENCRYPTION parameter
Make the encryption parameter of the mail transport configuration
configurable with an environment variable. Default is still the
same: tls
2015-09-09 16:59:07 +02:00
Joe Cohen
c4e4035fea Merge pull request #929 from cachethq/improved-theming
Theming of Cachet is much simpler with more color settings
2015-09-04 17:49:31 -05:00
Joseph Cohen
7ab139f82e Add backgroud fills 2015-09-04 17:39:27 -05:00
James Brooks
6b362fd88d Theming of Cachet is much simpler with more color settings 2015-09-04 22:39:52 +01:00
Graham Campbell
4f05f910e9 Merge branch '1.2'
Conflicts:
	composer.lock
2015-09-04 15:09:01 +01:00
Graham Campbell
2311d67624 Updated dependencies 2015-09-04 15:01:16 +01:00
Graham Campbell
715d65f464 Laravel fixes 2015-09-04 14:44:48 +01:00
Graham Campbell
fa1a5fff0e Merge pull request #866 from cachethq/commands
[WIP] First steps to Commands
2015-09-04 12:17:57 +01:00
Graham Campbell
d20ee2987b Merge branch '1.2'
Conflicts:
	composer.lock
	resources/views/partials/incidents.blade.php
2015-09-04 11:53:25 +01:00
Graham Campbell
1ac4b7a64a Updated dependencies 2015-09-04 11:45:44 +01:00
Graham Campbell
941809037a Lock on laravel 5.1.12 2015-09-04 11:33:14 +01:00
Graham Campbell
0b8ce37e84 Merge pull request #935 from cachethq/fix-scheduled-items-timeline
Fixes #934 - Scheduled items now drop into the right days
2015-09-04 11:11:51 +01:00
James Brooks
0851427f2d Fixes #934 - Scheduled items now drop into the right days 2015-09-04 08:18:10 +01:00
James Brooks
99cd275a9d Updated dependencies 2015-09-02 07:58:12 +01:00
James Brooks
1478a25008 ReportMaintenanceCommand is added 2015-08-31 20:16:39 +01:00
James Brooks
60e9a64a3e Less use of Binput::all() 2015-08-31 20:16:39 +01:00
James Brooks
75588db98e Fix imports 2015-08-31 20:16:39 +01:00
James Brooks
082062fa1b Added ReportIncidentCommand 2015-08-31 20:16:38 +01:00
James Brooks
37d7908606 Added AddTeamMemberCommand 2015-08-31 20:16:38 +01:00
James Brooks
25a3626de5 Fix rebase issue 2015-08-31 20:16:38 +01:00
James Brooks
6ee697cf7f Added AddComponentGroupCommand 2015-08-31 20:16:38 +01:00
James Brooks
698b05980d Fix description 2015-08-31 20:16:38 +01:00
James Brooks
32b2a56573 Remove unused imports 2015-08-31 20:16:38 +01:00
James Brooks
be080a10ef Added commands to delete component group (also fixes bug in API) 2015-08-31 20:16:38 +01:00
James Brooks
c466620435 Added RemoveUserCommand 2015-08-31 20:16:37 +01:00
James Brooks
7be3aa2552 Incidents will now be removed via the command 2015-08-31 20:16:37 +01:00
James Brooks
b80b53191b Commands and events for removing incidents 2015-08-31 20:16:37 +01:00
Joseph Cohen
a239c34892 CS Fixes 2015-08-31 20:16:37 +01:00
Joseph Cohen
4a5110ae53 Finish add and remove components via commands 2015-08-31 20:16:37 +01:00
James Brooks
30eec9da24 Added Component events and handlers 2015-08-31 20:16:36 +01:00
James Brooks
5bc7a3e6f7 Fix CS 2015-08-31 20:16:36 +01:00
Joseph Cohen
7c1f27c4a1 CS Fixes 2015-08-31 20:16:36 +01:00
Joseph Cohen
9581c5a394 Add and remove metrics and metric points commands 2015-08-31 20:16:36 +01:00
Joseph Cohen
64ff4d73c2 Rename incident events and fixes 2015-08-31 20:16:36 +01:00
Joseph Cohen
a93472f544 Namespace events 2015-08-31 20:16:35 +01:00
Joseph Cohen
924eee9752 Fix tests 2015-08-31 20:16:35 +01:00
Joseph Cohen
8250e4ebca Subscribe and unsubscribe subscribers via commands 2015-08-31 20:16:35 +01:00
Joseph Cohen
11b4ab5c6c Start working on the commands 2015-08-31 20:16:35 +01:00
James Brooks
77ce0e21f4 Rename Admin directory to Dashboard within routes. Closes #933 2015-08-31 18:59:17 +01:00
James Brooks
cd9828275d Merge pull request #926 from cachethq/incident-widgets
Incident widgets
2015-08-31 18:17:21 +01:00
James Brooks
ae7ab7ddc0 Applied fixes from StyleCI 2015-08-31 18:17:01 +01:00
James Brooks
69e9d75037 Show subscribers and incidents over last 30 days 2015-08-31 18:17:01 +01:00
James Brooks
70a5022740 Working on a widget design for the dashboard index 2015-08-31 18:17:00 +01:00
James Brooks
f13b8debe4 Merge pull request #932 from cachethq/metric-repository
Improved metric repository for per-db methods. Closes #921
2015-08-31 18:14:48 +01:00
James Brooks
57f0bebbc5 Fixed docblock 2015-08-31 08:45:13 +01:00
James Brooks
9414456fd1 More docblocks that should return void 2015-08-30 22:45:27 +01:00
James Brooks
77f19da9b0 Fix docblocks 2015-08-30 22:42:38 +01:00
James Brooks
7136457b49 Improved metric repository for per-db methods. Closes #921 2015-08-30 22:36:19 +01:00
James Brooks
062a16ca5b Merge pull request #930 from mbabker/route-not-found
Route 'dashboard.components' not found
2015-08-28 08:01:03 +01:00
Michael Babker
3de15fc5e8 Route 'dashboard.components' not found
Updated to reference `dashboard.components.index` route instead.
2015-08-27 21:21:56 -04:00
James Brooks
f1b54bfe57 Re-compiled assets 2015-08-25 21:26:26 +01:00
James Brooks
ba558e69a3 Removed erroneous :after pseudo-element 2015-08-25 21:26:22 +01:00
James Brooks
bf4ebcde45 Merge pull request #924 from cachethq/model-casts
Added casts properties to all models, re-ordered model properties
2015-08-24 21:22:04 +01:00
James Brooks
a77efc12e0 Added casts properties to all models, re-ordered model properties. Fixes #916 2015-08-24 21:08:59 +01:00
James Brooks
92192232ed Merge pull request #925 from cachethq/fix-required-incident-fields
Fixes #913
2015-08-23 20:32:59 +01:00
James Brooks
da3e561217 Fixes #913 2015-08-23 09:08:51 +01:00
James Brooks
885c17054f Allow setting of 0 incident days. Closes #920 2015-08-18 21:27:09 +01:00
Graham Campbell
d47121b93d Merge branch '1.2'
Conflicts:
	public/build/rev-manifest.json
2015-08-18 16:40:06 +01:00
Graham Campbell
860457bfae Rebuilt css 2015-08-18 16:37:47 +01:00
Graham Campbell
9112e2a58f Updated dependencies 2015-08-18 16:17:24 +01:00
Graham Campbell
a72033ffa2 Merge pull request #918 from cachethq/fix-email-snakecase
Fix email templates snakecase
2015-08-17 22:06:40 +01:00
Joseph Cohen
1a7cec53ac Make email templates snake case 2015-08-17 15:50:34 -05:00
James Brooks
bab843b4b1 Move incident templates directory up on 2015-08-16 15:15:54 +01:00
Joseph Cohen
889dd47a14 Fix dashboard route not found on setup 2015-08-15 22:18:09 -05:00
James Brooks
9a0d823c9a Link directly to incidents. Closes #547 2015-08-15 20:54:43 +01:00
James Brooks
b037965c35 Merge pull request #910 from cachethq/incident-view
Incident view
2015-08-15 20:51:16 +01:00
James Brooks
b4f1a8af61 Re-use the timeline view 2015-08-15 20:51:04 +01:00
James Brooks
5e69f23783 Fixes metrics displaying incorrect name and suffix 2015-08-15 20:18:02 +01:00
James Brooks
46cd61e3fe Merge pull request #909 from cachethq/metric-views
Fix some bad design choices in metric views
2015-08-15 19:39:16 +01:00
James Brooks
63ccab3eff Fix some bad design choices in metric views 2015-08-15 17:31:34 +01:00
James Brooks
82d0e88f68 Re-compile assets 2015-08-15 15:10:24 +01:00
James Brooks
8a3f9196d3 Linking directly to an individual incident 2015-08-15 15:10:20 +01:00
James Brooks
c2c815ab14 Started working on ability to view an incident directly 2015-08-15 13:10:08 +01:00
James Brooks
c928c99c8f Merge pull request #908 from cachethq/update-seeder
Updated seeder command to include groups and new incident content
2015-08-15 13:09:06 +01:00
James Brooks
9515d874bf Merge pull request #907 from cachethq/show-affected-component
Show label with component name next to incident. Closes #671
2015-08-15 13:08:08 +01:00
James Brooks
532852f943 Merge pull request #906 from cachethq/code-cleanup
Code cleanup
2015-08-15 13:07:16 +01:00
James Brooks
8fb5a3f992 Rename HomeController, use composers and redo subscribe page 2015-08-15 13:06:24 +01:00
James Brooks
59e1b22e18 Merge pull request #905 from cachethq/client-localize
Localize the status page to the visitors lang. Closes #835
2015-08-15 13:04:39 +01:00
James Brooks
a294b34d64 Updated seeder command to include groups and new incident content. 2015-08-15 11:56:19 +01:00
James Brooks
3d0aec3899 Show label with component name next to incident. Closes #671 2015-08-15 11:26:15 +01:00
James Brooks
ed09ca46b8 Localize the status page to the visitors lang. Closes #835 2015-08-15 10:00:50 +01:00
James Brooks
905445d0ca Merge pull request #902 from cachethq/incident-email-component
Add the component name to incident emails, if applicable. Closes #794
2015-08-15 09:03:49 +01:00
Joseph Cohen
1b953038be Decorate component 2015-08-14 21:32:19 -05:00
Graham Campbell
87563640ff Merge branch '1.2'
Conflicts:
	composer.json
	composer.lock
2015-08-14 23:37:25 +01:00
James Brooks
b1600bdbee Update dependencies 2015-08-14 23:25:25 +01:00
Graham Campbell
2ef8b8411f Bumped min versions 2015-08-14 23:20:54 +01:00
James Brooks
61d8fb8759 Merge pull request #895 from cachethq/metric-select-ajax
Metrics Filter Dropdown
2015-08-14 22:42:38 +01:00
James Brooks
d99f95b2d6 Added metrics filter dropdown. Closes #518 2015-08-14 22:41:37 +01:00
Graham Campbell
4a22b1b053 Merge branch '1.2' 2015-08-14 22:38:38 +01:00
James Brooks
a55bcb8c48 Update dependencies 2015-08-14 22:37:54 +01:00
James Brooks
912c9e7c04 Fix the subscribe.subscribe route 2015-08-14 08:53:04 +01:00
James Brooks
0bff2f9215 Don't pass through the whole incident name, just the components 2015-08-14 08:47:28 +01:00
James Brooks
808bc5201d Add the component name to incident emails, if applicable. Closes #794 2015-08-14 08:46:05 +01:00
James Brooks
0194dbb634 Show the timezone of the status page in the footer. Closes #763 2015-08-14 08:45:03 +01:00
James Brooks
ee0899f5c3 Merge pull request #903 from cachethq/schedule-incident-times
Show the scheduled time if applicable. Closes #799
2015-08-14 08:29:50 +01:00
Joseph Cohen
8b0f1033e5 Fix typo assign 2015-08-13 23:38:54 -05:00
James Brooks
b68647df8e Show the scheduled time if applicable. Closes #799 2015-08-13 23:23:18 +01:00
James Brooks
1965dbb3e7 Merge pull request #889 from cachethq/update-langs
Updated some language files
2015-08-13 23:19:05 +01:00
James Brooks
8c69123ce2 Updated translations, removed zh-TW and minor tweaks 2015-08-13 23:16:24 +01:00
James Brooks
5c8369344d Always use HTTPS for Google Fonts 2015-08-13 23:06:57 +01:00
James Brooks
565e686f8c Merge pull request #900 from cachethq/metric-places
Allow setting of decimal places for metric points. Closes #823
2015-08-13 22:58:46 +01:00
James Brooks
68a41ae49f Allow setting of decimal places for metric points. Closes #823 2015-08-13 22:58:15 +01:00
James Brooks
bef736e865 Merge pull request #898 from cachethq/avoid-redirect-back
Completely remove the use of Redirect::back - closes #867
2015-08-13 22:38:30 +01:00
James Brooks
308ee1bd81 Merge pull request #899 from cachethq/organize-views
Move dashboard partials into the dashboard directory
2015-08-13 22:37:57 +01:00
James Brooks
3b487ea2ec Move dashboard partials into the dashboard directory 2015-08-13 22:34:26 +01:00
James Brooks
b393557c8a Completely remove the use of Redirect::back - closes #867 2015-08-13 22:28:30 +01:00
Graham Campbell
bee4055228 Merge pull request #888 from cachethq/route-cleanup
Cleaned up routes
2015-08-11 11:29:13 +01:00
Graham Campbell
7cd513a6bd Merge branch '1.2' 2015-08-09 19:20:39 +01:00
Graham Campbell
8589089a04 Updated dependencies 2015-08-09 19:20:19 +01:00
James Brooks
cefabcef2d Clean up all route files, alias routes etc. 2015-08-08 18:23:20 +01:00
Graham Campbell
5858d8063b Merge pull request #891 from cachethq/remove-permissions-command
Removed the FixPermissionsCommand
2015-08-08 17:44:57 +01:00
Graham Campbell
ade85e24bd Merge branch '1.2' 2015-08-08 17:38:28 +01:00
Graham Campbell
324f8703ce Removed old docker files 2015-08-08 17:38:09 +01:00
Graham Campbell
9df14837b9 Updated phpunit 2015-08-08 17:37:25 +01:00
James Brooks
e3a3f97957 Condensed the readme further 2015-08-08 17:31:44 +01:00
James Brooks
fbfa62d087 Show y axis labels in metrics. Closes #824 2015-08-08 17:31:18 +01:00
James Brooks
88efff58cc Remove unused assignment 2015-08-08 17:17:05 +01:00
James Brooks
82a9dc9a4e Fix typo 2015-08-08 17:16:31 +01:00
James Brooks
4f0383b62b Condensed the readme further 2015-08-08 17:12:31 +01:00
James Brooks
73c80992ae Merge pull request #892 from cachethq/component-group-api
Component Group API
2015-08-08 15:37:49 +01:00
James Brooks
4b3ec45b03 Added component groups API. Closes #801 2015-08-08 15:36:48 +01:00
James Brooks
065b1fd168 Removed the FixPermissionsCommand 2015-08-08 15:10:28 +01:00
James Brooks
0a682a00f7 Show y axis labels in metrics. Closes #824 2015-08-08 14:56:05 +01:00
James Brooks
1c7fb1a434 Merge pull request #887 from cachethq/api-request-sort
Added the ability to sort and order API results
2015-08-08 12:58:11 +01:00
Graham Campbell
fcf0cd675a Merge branch '1.2' 2015-08-07 12:15:31 +01:00
Graham Campbell
02f069cdc1 Backport all readme changes 2015-08-07 12:14:38 +01:00
James Brooks
1779ac40c9 Added the ability to sort and order API results. Closes #756 2015-08-07 12:08:25 +01:00
Graham Campbell
32de1d512b Merge branch '1.2'
Conflicts:
	Dockerfile
	composer.lock
2015-08-07 12:07:46 +01:00
Graham Campbell
e8d3c013a1 Merge pull request #883 from cachethq/removals
Remove docker/homestead/vagrant stuff
2015-08-07 12:04:48 +01:00
Graham Campbell
85efb7d114 Updated lock file 2015-08-07 11:59:42 +01:00
Graham Campbell
11d77328dc Remove docker/homestead/vagrant stuff 2015-08-07 11:59:37 +01:00
Graham Campbell
c05e9d9867 Updated phpunit 2015-08-07 11:56:15 +01:00
Graham Campbell
b1eb57e573 Merge pull request #877 from cachethq/core-package
Added GrahamCampbell/Core for easier installs
2015-08-07 11:48:41 +01:00
Graham Campbell
3c4ccf00f1 Merge pull request #885 from cachethq/seeder-command
Created DemoSeederCommand to replace seeders
2015-08-07 11:48:23 +01:00
James Brooks
79f66fc090 Fix up the seeder command 2015-08-07 11:44:51 +01:00
James Brooks
a05496f7d0 Created DemoSeederCommand to replace seeders. Closes #884 2015-08-07 08:31:22 +01:00
Graham Campbell
55ffbd74d4 Merge branch '1.2'
Conflicts:
	composer.json
	composer.lock
2015-08-06 22:02:23 +01:00
Graham Campbell
f9f2e5c18a Bumped version 2015-08-06 21:51:31 +01:00
Graham Campbell
91ba722405 Merge branch '1.1'
Conflicts:
	composer.json
	composer.lock
	config/emoji.php
2015-08-06 20:11:20 +01:00
Graham Campbell
2ac9d3b23e Updated dependencies 2015-08-06 20:00:53 +01:00
Graham Campbell
848fb3b607 Rebuilt css 2015-08-06 20:00:38 +01:00
Graham Campbell
7d21a7682c Updated elixir 2015-08-06 20:00:31 +01:00
Graham Campbell
e3c38c7461 Updated emoji package 2015-08-06 20:00:22 +01:00
James Brooks
c5a0ded808 Added GrahamCampbell/Core for easier installs 2015-08-06 19:12:13 +01:00
James Brooks
3f2f5cd25b Dockerfile maintainer details. Closes #872 2015-08-06 19:09:35 +01:00
James Brooks
bbaa1fbfa6 Updated AltThree/Emoji for GITHUB_TOKEN usage 2015-08-06 18:56:00 +01:00
James Brooks
0e83999f7d Order the $routeMiddleware values 2015-08-06 14:29:13 +01:00
James Brooks
3c07529693 Pulled out the routes for RSS and Atom feeds into their own file 2015-08-06 14:27:44 +01:00
James Brooks
669fb4857a Addons are now listed in the documentation 2015-08-06 14:23:58 +01:00
James Brooks
4693faa64f Removed installation docs to links to docs.cachethq.io 2015-08-06 14:19:12 +01:00
James Brooks
0802da8e01 Update comment so it makes more sense 2015-08-06 14:06:27 +01:00
James Brooks
f839bc06f5 Renamed AdminRoutes to DashboardRoutes 2015-08-06 14:05:40 +01:00
James Brooks
bba4cf8cce Put a space after the suffix 2015-08-06 13:59:15 +01:00
James Brooks
701f947c33 Better example of metrics. 2015-08-06 13:57:07 +01:00
James Brooks
36b36925c9 Merge pull request #875 from cachethq/admin-delete-users
Added the ability for admins to delete users. Closes #791
2015-08-06 13:48:43 +01:00
James Brooks
76d3692d9e Added the ability for admins to delete users. Closes #791 2015-08-06 13:48:23 +01:00
James Brooks
3f7f4e7624 Fix docblocks 2015-08-06 11:44:01 +01:00
James Brooks
e76ecd493e Merge pull request #873 from cachethq/controllers
Remove AbstractController from remaining and rename BaseController to Controller
2015-08-06 07:07:16 +01:00
Joseph Cohen
d68b248fd7 Remove AbstractController from remaining and rename BaseController to Controller 2015-08-05 17:21:03 -05:00
James Brooks
5813364ccb Update dependencies 2015-08-05 15:18:26 +01:00
James Brooks
8d0a716c2d Remove AbstractController as it does nothing 2015-08-05 15:18:20 +01:00
James Brooks
e471796742 Update CONTRIBUTING.md 2015-08-05 08:47:32 +01:00
James Brooks
8dd762184e Update CONTRIBUTING.md 2015-08-05 08:47:09 +01:00
Graham Campbell
593dd04a4f Merge pull request #850 from cachethq/validator
Refactor validator stuff and fix variable names in views
2015-08-03 22:36:34 +01:00
Graham Campbell
fcbbfdd84e Refactor validator stuff and fix variable names in views 2015-08-03 22:32:51 +01:00
Graham Campbell
5d958bac81 Merge branch '1.1' 2015-08-03 22:26:02 +01:00
Graham Campbell
578d4befef Fixed typo 2015-08-03 22:00:49 +01:00
Graham Campbell
549c4e1594 Fixed seeder 2015-08-03 21:49:45 +01:00
Graham Campbell
5ce767dccc Merge branch '1.1' 2015-08-03 21:07:31 +01:00
Graham Campbell
60536d5334 Fixed typos 2015-08-03 21:06:56 +01:00
Graham Campbell
e5ddb65298 Merge branch '1.1' 2015-08-03 18:44:14 +01:00
Graham Campbell
ef3c32c5e9 Updated the readme 2015-08-03 18:43:55 +01:00
Graham Campbell
11cf7ef2c8 Merge pull request #865 from n0mer/patch-1
doc update - how to install Predis dependency
2015-08-03 18:42:10 +01:00
Graham Campbell
0c99204016 Merge branch '1.1' 2015-08-03 18:41:26 +01:00
Graham Campbell
ca367ff151 Removed duplicate service provider entry 2015-08-03 18:40:46 +01:00
Nikolay Gorylenko
06ecb4b9fb Update README.md 2015-08-03 17:32:51 +02:00
Nikolay Gorylenko
122138402b doc update - how to install Predis dependency 2015-08-03 16:52:38 +02:00
Graham Campbell
11d68ee3e5 Merge branch '1.1'
Conflicts:
	composer.lock
2015-08-03 14:53:08 +01:00
Graham Campbell
14ec134ac1 Updated dependencies 2015-08-03 14:46:03 +01:00
Graham Campbell
ea0a8dfcff Updated dependencies 2015-08-03 14:28:25 +01:00
Graham Campbell
6cd10581e4 Removed incorrect php-cs-fixer config 2015-08-03 14:26:15 +01:00
Graham Campbell
90baf18724 Backport all fixes from the master to 1.1 2015-08-03 14:23:46 +01:00
Graham Campbell
2284bc5d3b Merge branch '1.1' 2015-08-03 14:21:08 +01:00
Graham Campbell
5bdbc87bf2 Merge pull request #863 from cachethq/1.1-throttling
Fixed login throttling
2015-08-03 14:16:21 +01:00
Graham Campbell
60c7235d94 Merge pull request #864 from n0mer/patch-1
make 'cron' available in docker container
2015-08-03 13:53:26 +01:00
Nikolay Gorylenko
2c8cd19137 make 'cron' available in docker container 2015-08-03 14:47:06 +02:00
Graham Campbell
c1d53a7b42 Fixed login throttling 2015-08-03 13:37:16 +01:00
Graham Campbell
a847cdc97e Merge branch '1.1' 2015-08-03 12:38:14 +01:00
James Brooks
22b0e105ee Fix showing of verified subscribers when they're not. Fixes #855 2015-08-03 12:37:49 +01:00
James Brooks
c7b55401d4 Casts the subscriber 2015-08-03 12:37:49 +01:00
James Brooks
167b90265f Remove deleted_at as a date field 2015-08-03 12:37:48 +01:00
Graham Campbell
bb71d0175f Merge pull request #861 from n0mer/1.1
do not evaluate LOGGING_MODE and APP_LOCALE during build phase
2015-08-03 12:37:32 +01:00
Nikolay Gorylenko
f964c03072 ≈do not evaluate LOGGING_MODE and APP_LOCALE during build phase; fix path for contab 2015-08-03 11:32:30 +02:00
James Brooks
01c690608f Fix showing of verified subscribers when they're not. Fixes #855 2015-08-03 08:58:07 +01:00
James Brooks
5aee46d6b7 Casts the subscriber 2015-08-03 08:54:40 +01:00
James Brooks
2615efc052 Remove deleted_at as a date field 2015-08-03 08:53:50 +01:00
Graham Campbell
e5c6d6af70 Merge branch '1.1' 2015-08-02 22:25:08 +01:00
Graham Campbell
46c43a8b82 Merge pull request #854 from n0mer/1.1
cron tweaks
2015-08-02 22:02:20 +01:00
James Brooks
29e045c458 Updated docs 2015-08-02 15:09:49 +01:00
James Brooks
d2c8f414f6 Admin users may make more admin users. Closes #795 2015-08-02 14:16:00 +01:00
James Brooks
fb55beb47b Remove duplicate readable name 2015-08-02 13:54:50 +01:00
James Brooks
84e1770e51 Added status_name to incident and components. Closes #834 2015-08-02 13:46:28 +01:00
James Brooks
7f222677cc Merge pull request #856 from cachethq/analysis-8n2gg8
Applied fixes from StyleCI
2015-08-02 13:07:54 +01:00
James Brooks
ec12ab07af Applied fixes from StyleCI 2015-08-02 08:07:34 -04:00
James Brooks
0094246ee8 Subscribers no longer soft delete. Closes #810 2015-08-02 13:05:52 +01:00
James Brooks
58a371b10b Move subscribe routes to their own routes file 2015-08-02 13:01:14 +01:00
Nikolay Gorylenko
ee7a0ec5f2 proper command to add file 2015-08-02 12:58:28 +02:00
Nikolay Gorylenko
427c8d24a5 add user to crontab 2015-08-02 12:57:12 +02:00
Nikolay Gorylenko
60e6d99b95 do not daemonize cron 2015-08-02 12:49:15 +02:00
James Brooks
18db70b9cd Merge pull request #853 from n0mer/1.1
add cron config
2015-08-02 11:06:46 +01:00
Nikolay Gorylenko
3a73a9be5c add cron config 2015-08-02 12:04:10 +02:00
James Brooks
fb933720fc Merge pull request #852 from n0mer/1.1
externalize logging mode and app locale
2015-08-02 11:04:07 +01:00
Nikolay Gorylenko
a4ce37f29a add cron to supervisor 2015-08-02 11:55:44 +02:00
Nikolay Gorylenko
4f3664b3e0 externalize logging mode and app locale 2015-08-02 11:15:49 +02:00
Graham Campbell
b626b5ee27 Updated branch alias 2015-08-01 21:06:31 +01:00
Graham Campbell
c46c255722 Merge pull request #847 from cachethq/eager-load-metric-points
Eager load the metric points.
2015-08-01 21:01:10 +01:00
James Brooks
971a422258 Fix docblock 2015-08-01 20:41:57 +01:00
James Brooks
b6de8bf258 Eager load the metric points. 2015-08-01 20:16:58 +01:00
James Brooks
573a301957 Merge pull request #846 from cachethq/unsubscribe-fix
Fix the token sent to unsubscribe
2015-08-01 20:11:51 +01:00
Joseph Cohen
d8323f126c Fix the token sent to unsubscribe 2015-08-01 14:08:14 -05:00
James Brooks
e6db90a798 Merge pull request #844 from cachethq/tracking
Removed tracking
2015-08-01 19:16:18 +01:00
Graham Campbell
9d9bec812d Updated lock file 2015-08-01 17:14:20 +01:00
Graham Campbell
c9b3760a4d CS fix 2015-08-01 17:09:51 +01:00
Graham Campbell
fb127fb861 Removed tracking 2015-08-01 17:07:06 +01:00
Graham Campbell
2425682381 Removed other areas where the word status is appended 2015-08-01 16:45:58 +01:00
Graham Campbell
da1c999ca6 Merge pull request #840 from 5apps/do_not_append_status_to_app_name
Do not append "Status" to the site name
2015-08-01 16:44:35 +01:00
Graham Campbell
79aa78cff5 Fixed segment references 2015-08-01 16:37:27 +01:00
Graham Campbell
4438142348 Updated dependencies 2015-08-01 12:29:09 +01:00
Graham Campbell
e917e338cd Rebuilt css 2015-08-01 12:27:16 +01:00
James Brooks
da22fa208a Merge pull request #842 from n0mer/patch-1
get rid of hard-coded 'file' cache driver
2015-07-31 20:51:45 +01:00
Nikolay Gorylenko
2cb1d9e07d get rid of hard-coded 'file' cache driver 2015-07-31 12:14:25 +02:00
Greg Karékinian
68c458227f Do not append "Status" to the site name
Currently the title of the index is the site name set in the settings is
appended with "Status". This is confusing because the RSS feeds show
the site name without it (and you probably want to write "Status" in the site
name yourself anyway).
2015-07-31 10:08:37 +02:00
James Brooks
043690764d Merge pull request #831 from n0mer/master
#805 for setup UI
2015-07-29 11:05:28 +01:00
James Brooks
845d9e1e14 Remove Cachet logo from the sidebar for now. Closes #830 2015-07-28 22:19:01 +01:00
Nikolay Gorylenko
68572db6d2 do not ignore IntelliJ files 2015-07-28 22:55:08 +02:00
Nikolay Gorylenko
5d7b05d857 ignore IntelliJ files 2015-07-28 22:29:43 +02:00
Nikolay Gorylenko
9eb65eba3b add 'redis' and 'memcached' to setup step #1 2015-07-28 22:25:59 +02:00
James Brooks
17492b0dcf Merge pull request #829 from n0mer/master
cfg for #826 - typo fix
2015-07-28 19:19:52 +01:00
Nikolay Gorylenko
0f8773a547 cfg for #826 - typo fix 2015-07-28 20:01:16 +02:00
James Brooks
45f376e564 Added a way to hide the dashboard button from the footer (default) 2015-07-28 16:19:47 +01:00
James Brooks
3a44e4a809 Fixes #828 - Don't call format on a formatted string 2015-07-28 16:09:35 +01:00
James Brooks
fea555f2b0 Merge pull request #827 from n0mer/master
cfg for #826
2015-07-28 12:00:28 +01:00
Nikolay Gorylenko
9094f37156 cfg for #826 2015-07-28 12:58:22 +02:00
James Brooks
0e502ed53b Default to production 2015-07-27 22:28:52 +01:00
Graham Campbell
7f0c2a772d Don't encode the metric name either 2015-07-27 19:37:59 +01:00
James Brooks
e06688aee5 Fixes #822 - Don't encode entities in metric tooltips 2015-07-27 19:31:37 +01:00
Graham Campbell
bfe2b6ca48 Elixir fixes 2015-07-26 22:56:45 +01:00
Graham Campbell
7e663d7a76 Updated dependencies 2015-07-26 22:56:29 +01:00
Graham Campbell
65fe410a93 Fixed the default debug setting 2015-07-26 10:26:13 +01:00
James Brooks
c747f11f3c Merge pull request #818 from cachethq/elixir-three
Elixir 3
2015-07-25 19:20:03 +01:00
James Brooks
9065b7dccc Re-compile assets with Elixir 3 2015-07-25 19:17:37 +01:00
James Brooks
7727dbf33b Upgrade to Elixir 3 - closes #817 2015-07-25 19:17:30 +01:00
Graham Campbell
2868f9e052 Rebuilt css 2015-07-25 16:06:35 +01:00
Graham Campbell
aab2b1fe6e Updated dependencies 2015-07-25 16:06:30 +01:00
Graham Campbell
1e4a8c8143 Added emoji parsing support 2015-07-25 16:02:35 +01:00
Graham Campbell
e002d596b1 Updated markdown package 2015-07-25 15:56:03 +01:00
Graham Campbell
1e3e1df616 Removed overkill test 2015-07-25 15:48:10 +01:00
Graham Campbell
6e3d1af85a Updated lock file 2015-07-25 13:31:03 +01:00
Graham Campbell
e91cf591ea Updated exceptions package 2015-07-25 13:30:58 +01:00
Graham Campbell
14bbe69509 Tweaked dev dependencies 2015-07-25 13:24:05 +01:00
James Brooks
c328575417 Merge pull request #802 from cachethq/subscriber-api
Subscriber API
2015-07-24 20:44:59 +01:00
James Brooks
ecb3a4e1d9 Remove unused import 2015-07-24 14:37:06 +01:00
James Brooks
71f5de8726 Introduce the Subscriber API. Closes #787 2015-07-24 14:35:31 +01:00
James Brooks
38257c6ae6 Merge pull request #814 from andygrunwald/composer-vagrant-note
Add small note to README that a composer install needs to be executed before a vagrant up
2015-07-24 14:27:10 +01:00
Graham Campbell
6802609ce6 Removed old package 2015-07-24 14:15:35 +01:00
Graham Campbell
476adef1b0 Fixed cipher 2015-07-24 14:13:48 +01:00
Andy Grunwald
3a83110f50 Add small note to README that a composer install needs to be executed before a vagrant up 2015-07-24 14:53:36 +02:00
Graham Campbell
8c4832343d Added missing config in the tests 2015-07-24 13:53:31 +01:00
James Brooks
a0d354c3e9 Configure Redis through environment variables. Closes #805 2015-07-23 21:47:49 +01:00
James Brooks
02cb04d36f Catch generic exception to prevent Segment from breaking everything 2015-07-23 21:37:32 +01:00
Graham Campbell
07861dd245 Updated dependencies 2015-07-23 17:08:56 +01:00
Graham Campbell
14ac707d76 Rebuilt assets 2015-07-23 17:07:50 +01:00
James Brooks
0fba574f5b Update dependencies 2015-07-14 13:59:19 +01:00
James Brooks
71c30fb0bd Update email template design. 2015-07-14 13:59:15 +01:00
James Brooks
bf77fbdd33 Merge pull request #800 from cachethq/email-link
Make subscriber verify link clickable
2015-07-11 16:17:20 +01:00
James Brooks
6336bd8905 Update dependencies 2015-07-11 16:17:08 +01:00
James Brooks
dbbf4a093e Fix formatting of Blade 2015-07-11 16:15:48 +01:00
Joseph Cohen
5190578da9 Make subscriber link clickable 2015-07-10 13:08:35 -05:00
James Brooks
c5f3655d49 Merge pull request #782 from chaseconey/dashboard-sidebar-css-fix-v2
Dashboard - Active Menu Item CSS Fix v2
2015-07-09 14:59:40 +01:00
Chase Coney
721df30642 Fix sidebar formatting 2015-07-09 08:53:02 -05:00
Chase Coney
b79c8902fc Fix sidebar styling. Escape classes input 2015-07-09 08:49:52 -05:00
Chase Coney
bcc72d224f Fixes the set_active menu helper to no longer double quote class name 2015-07-09 08:07:30 -05:00
James Brooks
679005fe3f Merge pull request #776 from chaseconey/subscriber-list-759
Subscriber Administration
2015-07-09 09:18:39 +01:00
James Brooks
4990868d9a Merge pull request #779 from chaseconey/add-vagrant-homestead-support
Add support for Vagrant/Homestead
2015-07-09 07:01:29 +01:00
James Brooks
a7a4fe03e4 Merge pull request #792 from rtrauntvein/patch-1
fixing codestyle docker entrypoint.sh
2015-07-09 06:58:29 +01:00
Ryan Trauntvein
c2678ea89c fixing codestyle docker entrypoint.sh 2015-07-08 20:15:30 -07:00
Chase Coney
f1bbf0200c Use specific version for laravel/homestead 2015-07-08 17:04:49 -05:00
Chase Coney
1a5155dbc5 Add support for Vagrant/Homestead 2015-07-08 17:02:52 -05:00
Chase Coney
7e14d6d25f Fixes #759. First pass at subscriber administration 2015-07-08 16:43:41 -05:00
Graham Campbell
b003a7aa1c Updated flysystem 2015-07-08 21:59:04 +01:00
James Brooks
2c5549120b Merge pull request #788 from rtrauntvein/new-docker-env
Use the Cachet .env file inside of docker image
2015-07-07 22:11:59 +01:00
Graham Campbell
6a29b306e2 Tweak scripts 2015-07-07 11:26:21 +01:00
Graham Campbell
f01849f758 Updated lock file 2015-07-07 10:58:45 +01:00
Graham Campbell
f592aa08c9 Bumped branch alias 2015-07-07 10:57:36 +01:00
Graham Campbell
691e6fffe7 Updated scripts 2015-07-07 10:57:29 +01:00
Ryan Trauntvein
dbda00cef8 Use .env file with docker image 2015-07-06 23:59:08 -07:00
Graham Campbell
408141dd8b Fixed typos 2015-07-06 19:22:49 +01:00
Graham Campbell
9b43b42e27 Removed extra HQ 2015-07-06 18:46:27 +01:00
Graham Campbell
83955fcff5 CS fix 2015-07-06 18:26:21 +01:00
Graham Campbell
bf05197c4f Cleanup exception handling
You're going to love this @joecohens and @jbrooksuk :)
2015-07-06 18:21:23 +01:00
Graham Campbell
a72543daa2 Updated dependencies 2015-07-06 18:19:27 +01:00
Graham Campbell
cbf888d7b7 We definitely don't want the symfony level here 2015-07-06 17:47:46 +01:00
Graham Campbell
0a321bffd8 Updated copyright information 2015-07-06 17:37:01 +01:00
Graham Campbell
f74f44048d Fixes 2015-07-05 15:40:48 +01:00
Graham Campbell
78567f865a Updated trusted proxies 2015-07-05 12:54:45 +01:00
Graham Campbell
de9240d295 Updated dependencies 2015-07-05 11:52:03 +01:00
Graham Campbell
a3235f78d0 Updated scripts 2015-07-05 11:52:03 +01:00
James Brooks
3da8f3065c Added array to cache drivers 2015-07-04 22:19:24 +01:00
Graham Campbell
39091b51b5 Fix 2015-07-04 21:49:09 +01:00
James Brooks
e250d5e3fe Don't optimize any files 2015-07-04 21:46:12 +01:00
James Brooks
8ed0f17761 Remove commented out sidebar item 2015-07-03 10:33:32 +01:00
James Brooks
92caf08d1d Merge pull request #781 from chaseconey/sidebar-css-active-fix
Dashboard - Active Menu Item CSS Fix
2015-07-02 19:27:09 +01:00
James Brooks
1e6db61066 Re-compile without duplicate ionicons css? 2015-07-02 19:20:55 +01:00
Chase Coney
13e5ee548d Fixes the set_active menu helper to no longer double quote class name 2015-07-02 13:20:51 -05:00
Graham Campbell
3d328663d5 Updated dependencies 2015-07-02 17:23:32 +01:00
James Brooks
fafcc8880b Fix CS 2015-07-02 16:46:14 +01:00
James Brooks
7a283dceb7 $pageTitle needs to be snake_case too 2015-07-02 16:40:38 +01:00
James Brooks
c1a0fc10ae Use snake_case in views. Closes #778 2015-07-02 16:37:38 +01:00
James Brooks
13180cf77d Remove Piwik from settings seeder 2015-07-01 21:44:58 +01:00
James Brooks
903da245ef Fix Blade standards 2015-07-01 21:22:00 +01:00
James Brooks
939766bf7d Merge pull request #775 from chaseconey/fix-storage-engine-768
Set default database engine in migrations
2015-06-30 18:48:40 +01:00
Chase Coney
977cac091c Fix spacing issue. 2015-06-30 11:35:34 -05:00
Chase Coney
04161678b6 Fixes 768. php artisan migrate will work regardless of mysql version or default_database_engine. 2015-06-30 09:53:29 -05:00
Graham Campbell
793564e0c0 Updated dependencies 2015-06-27 15:07:31 +01:00
James Brooks
ea89254bf6 Fix transparency and algorithm for calculating severity icon 2015-06-27 14:03:24 +01:00
James Brooks
54011d7635 Update alert icons to match logo, with colours 2015-06-27 13:40:24 +01:00
James Brooks
62a71554c6 Merge pull request #752 from DivineOmega/dynamic_favicon
Dynamic favicon
2015-06-27 13:37:46 +01:00
James Brooks
e92dd0151a Update to Bootstrap 3.3.5 2015-06-27 09:58:55 +01:00
Graham Campbell
0a2f7659aa Updated dependencies 2015-06-26 00:41:16 +01:00
Graham Campbell
c0f19093e4 Updated dependencies 2015-06-25 14:51:14 +01:00
James Brooks
e858a288a6 Replace Gitter badge with CrowdIn % 2015-06-25 14:33:57 +01:00
James Brooks
d20f2cbbc8 Don't use teal for break element 2015-06-25 14:25:03 +01:00
James Brooks
902d7bd01b Fix #765 2015-06-25 08:45:01 +01:00
Graham Campbell
19d780325e Removed old config 2015-06-24 21:36:55 +01:00
Graham Campbell
b6a6acec4d Updated dependencies 2015-06-24 21:16:45 +01:00
Graham Campbell
e28a08f6bb Updated assets 2015-06-24 20:37:22 +01:00
Graham Campbell
0d8a3b4efc Updated dependencies 2015-06-24 20:37:13 +01:00
Graham Campbell
7db305edcc Cleanup tests 2015-06-24 20:16:46 +01:00
James Brooks
74ceb9885b Merge pull request #764 from cachethq/update-logo
Update logo to drop the HQ
2015-06-24 20:04:19 +01:00
James Brooks
d6617b6971 Fix logo proportions 2015-06-24 20:03:22 +01:00
James Brooks
c28ba2dfb8 Update dependencies 2015-06-24 19:58:57 +01:00
James Brooks
e794aedb3a Update logo to drop the HQ 2015-06-24 19:58:47 +01:00
James Brooks
2fa2ff9070 Fix CS on language files and add copyright header 2015-06-23 15:46:37 +01:00
Graham Campbell
0f187b323b Fixed travis file 2015-06-23 15:38:44 +01:00
James Brooks
00a480b98b Remove PHP7 tests as it's disabled in composer 2015-06-23 15:38:03 +01:00
James Brooks
69f213a4dc Merge pull request #760 from wfjsw/master
Update Chinese lang. Closes #758
2015-06-23 15:37:13 +01:00
jsw
cef5c9b1e2 Update Chinese lang. Closes #758 2015-06-23 22:00:05 +08:00
DivineOmega
0ca1668518 Initial dynamic favicon code
Syntax and logic fixes

New favicons

Contribution Guidelines

Removed trailing spaces

Style tweaks

Comma

Suggested code changes

Changed high and medium alert icons to be exclamation marks protruding through a circle

Moved favicon logic to IndexComposer

Style fixes

Removed whitespace
2015-06-23 14:41:41 +01:00
James Brooks
814a6cf30b Added PHP 7 back to test suite
Allow it to fail, instead of HHVM
2015-06-23 08:52:32 +01:00
James Brooks
b0d1eaafc2 Allow HHVM to fail, also fast finish 2015-06-23 08:50:36 +01:00
James Brooks
e68467a308 Clean the value on saving of the setting 2015-06-23 08:11:39 +01:00
James Brooks
0c940adc56 Merge pull request #751 from ldidry/fix-piwik
Fix piwik missing slash problem
2015-06-23 08:09:37 +01:00
James Brooks
96dfd5d057 Merge pull request #757 from alexxwiz/master
Russian translation
2015-06-23 07:18:20 +01:00
Alexey Vasilyev
91dfa822bc Russian translation fixes 2015-06-22 23:29:27 +03:00
Alexey Vasilyev
3c5a5b49f1 Style guide fixes. 2015-06-22 18:06:07 +03:00
Alexey Vasilyev
c12d901147 Style guide fixes 2015-06-22 18:02:56 +03:00
Alexey Vasilyev
60dac4664b Russian translation 2015-06-22 17:56:41 +03:00
James Brooks
b7dc6ab503 Merge pull request #753 from fabianlaule/login-screen-fix
Fix floating of buttons on login screen & made border radius equal
2015-06-21 20:20:45 +01:00
Fabian Laule
d207a2eeeb Fix floating of buttons on login screen & made border radius equal 2015-06-21 16:39:04 +02:00
James Brooks
986fb4c588 Fix CS 2015-06-20 11:58:47 +01:00
James Brooks
5b1c7a69dd Doh. Factories are dev only. 2015-06-20 11:57:14 +01:00
James Brooks
f7b53c06f6 Improve the MetricPointSeeder show actual metrics! 2015-06-20 11:54:42 +01:00
Luc Didry
f9d831bf8a Fix piwik missing slash problem 2015-06-19 23:34:49 +02:00
James Brooks
dc85aa79c8 Merge pull request #749 from ldidry/dont-html-escape-stylesheet
Don't HTML escape custom stylesheet
2015-06-19 22:26:26 +01:00
Luc Didry
261b38b308 Don't HTML escape custom stylesheet
If you HTML escape the custom stylesheet, you can't have quotes in it.
You need quotes if you want to add something with url('foo') (in a
background-image by exemple).
2015-06-19 23:07:37 +02:00
525 changed files with 18710 additions and 7277 deletions

View File

@@ -1 +0,0 @@
.git

View File

@@ -1,17 +1,18 @@
APP_ENV=local
APP_DEBUG=true
APP_ENV=production
APP_DEBUG=false
APP_URL=http://localhost
APP_KEY=SomeRandomString
DB_DRIVER=sqlite
DB_DRIVER=mysql
DB_HOST=localhost
DB_DATABASE=cachet
DB_USERNAME=user
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=database
CACHET_EMOJI=false
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
@@ -20,3 +21,10 @@ MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ADDRESS=null
MAIL_NAME=null
MAIL_ENCRYPTION=tls
REDIS_HOST=null
REDIS_DATABASE=null
REDIS_PORT=null
GITHUB_TOKEN=null

2
.gitattributes vendored
View File

@@ -1,3 +1,3 @@
* text=auto
*.css linguist-vendored
*.less linguist-vendored
*.scss linguist-vendored

View File

@@ -1,19 +1,21 @@
language: php
php:
- 5.5.9
- 5.5
- 7.0
- 5.6
- 5.5
- 5.5.9
- hhvm
sudo: false
install: travis_retry composer install --no-interaction --ignore-platform-reqs --no-scripts --prefer-source
install:
- travis_retry composer install --no-interaction --no-scripts --prefer-source
script:
- bash -c 'if [ "$TRAVIS_PHP_VERSION" == "hhvm" ]; then vendor/bin/phpunit; fi;'
- bash -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then vendor/bin/phpunit --coverage-clover build/logs/clover.xml; fi;'
- if [ "$TRAVIS_PHP_VERSION" != "5.5.9" ] && [ "$TRAVIS_PHP_VERSION" != "5.5" ] && [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then vendor/bin/phpunit; fi
- if [ "$TRAVIS_PHP_VERSION" == "5.5.9" ] || [ "$TRAVIS_PHP_VERSION" == "5.5" ] || [ "$TRAVIS_PHP_VERSION" == "5.6" ]; then vendor/bin/phpunit --coverage-clover build/logs/clover.xml; fi
after_script:
- bash -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then wget https://scrutinizer-ci.com/ocular.phar; fi;'
- bash -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml; fi;'
- if [ "$TRAVIS_PHP_VERSION" == "5.5.9" ] || [ "$TRAVIS_PHP_VERSION" == "5.5" ] || [ "$TRAVIS_PHP_VERSION" == "5.6" ]; then wget https://scrutinizer-ci.com/ocular.phar; fi
- if [ "$TRAVIS_PHP_VERSION" == "5.5.9" ] || [ "$TRAVIS_PHP_VERSION" == "5.5" ] || [ "$TRAVIS_PHP_VERSION" == "5.6" ]; then php ocular.phar code-coverage:upload --format=php-clover build/logs/clover.xml; fi

View File

@@ -2,16 +2,15 @@
## Creating issues
Issues should be made by using the [issue tracker](https://github.com/cachethq/Cachet/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).
Things to remember:
- Be descriptive
- Be respectful of others
**Always be respectful.** Organization members reserve the right to lock topics if they feel necessary.
## Languages
When needing to add labels, placeholders or general text, you **must not** write directly into the source file, rather make use of the `./app/lang/` directory. Always provide the English translation and copy your English string to all other languages - making sure that the indentation and alignment of the arrays are updated.
When needing to add labels, placeholders or general text, you **must not** write directly into the source file, rather make use of the `./resources/lang/` directory.
Always provide the English translation and copy your English string to all other languages - making sure that the indentation and alignment of the arrays are updated.
## Coding Standards
@@ -20,9 +19,9 @@ Please follow existing coding standards:
```php
<?php
namespace Foo\Bar\Controller;
namespace CachetHQ\Cachet\Controller;
use Foo\Bar\Bar;
use CachetHQ\Cachet\Bar;
class Foo extends Bar
{
@@ -50,18 +49,17 @@ class Foo extends Bar
}
```
- Braces on a new line following: `namespace`, `use`, `function` and `class`.
- Line lengths have a soft 80 limit and hard 120 length.
- 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.
- If your pull request consists of more than two commits, you **must** squash them into one.
- 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 to Git and GitHub
## 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.
@@ -75,8 +73,6 @@ If you're not particularly fond of the command line, you can get one of GitHub's
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).
There is always the Cachet Gitter chat to ask any questions you may have:
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/cachethq/Cachet?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
## .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.

View File

@@ -1,42 +0,0 @@
FROM debian:jessie
ENV DB_DRIVER=mysql \
ENV=production \
DB_DATABASE=cachet \
DB_HOST= \
DB_USERNAME= \
DB_PASSWORD= \
DEBIAN_FRONTEND=noninteractive
COPY . /var/www/html/
WORKDIR /var/www/html/
# Using nodesource and debian jessie packages instead of compiling from scratch
RUN echo "APT::Install-Recommends \"0\";" >> /etc/apt/apt.conf.d/02recommends && \
echo "APT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/02recommends && \
apt-get -qq update && \
apt-get -qq install \
ca-certificates nginx php5-fpm=5.* php5-curl php5-readline php5-mcrypt php5-mysql php5-apcu php5-cli \
git sqlite libsqlite3-dev curl supervisor php5-pgsql && \
apt-get clean && apt-get autoremove -qq && \
rm -rf /var/lib/apt/lists/* /usr/share/doc /usr/share/man /tmp/* && \
chown -R www-data /var/www/html
# Hardcode the Illuminate key in config/app.php. If you want security, feel free
# to override the key in your own container with a 'php artisan key:generate' :)
RUN sed -i "s/'key' => '\w.*/'key' => 'f20d3e5ae02125a94bd60203a4edfbde',/" config/app.php && \
grep key config/app.php
# copy the various nginx and supervisor conf (to handle both fpm and nginx)
RUN sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php5/fpm/php-fpm.conf ;\
echo "daemon off;" >> /etc/nginx/nginx.conf ;\
mv /var/www/html/docker/php-fpm-pool.conf /etc/php5/fpm/pool.d/www.conf ;\
rm -f /etc/nginx/sites-enabled/* && rm -f /etc/nginx/conf.d/* && mv /var/www/html/docker/nginx-site.conf /etc/nginx/conf.d/default.conf
RUN curl -sS https://getcomposer.org/installer | php && php composer.phar install --no-dev -o
COPY docker/supervisord.conf /etc/supervisor/supervisord.conf
EXPOSE 8000
CMD ["/usr/bin/supervisord"]

View File

@@ -1,4 +1,4 @@
Copyright (c) 2014-2015 Cachet HQ.
Copyright (c) 2015 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:

View File

@@ -4,7 +4,7 @@
[![Build Status](https://img.shields.io/travis/cachethq/Cachet.svg?style=flat-square)](https://travis-ci.org/cachethq/Cachet)
[![Quality Score](https://img.shields.io/scrutinizer/g/cachethq/Cachet.svg?style=flat-square)](https://scrutinizer-ci.com/g/cachethq/Cachet)
[![Software License](https://img.shields.io/badge/license-BSD3-brightgreen.svg?style=flat-square)](LICENSE)
[![Gitter](https://img.shields.io/badge/gitter-join%20chat-brightgreen.svg?style=flat-square)](https://gitter.im/cachethq/Cachet?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/cachet/localized.png)](http://translate.cachethq.io/project/cachet)
![Screenshot](https://cachethq.io/img/main-interface.jpg)
@@ -21,6 +21,10 @@
- Subscriber notifications via Email
- Two factor authentication, with Google Authenticator
## Usage in production
The `master` branch of this repository is a development branch and **should not** be used in production. Instead, please check out the latest tag release.
## Requirements
- PHP 5.5.9+ or newer
@@ -28,7 +32,7 @@
### Development Requirements
The following extra dependencies are required to develop Cachet:
These extra dependencies are required to develop Cachet:
- Node.js
- Bower
@@ -38,6 +42,10 @@ The following extra dependencies are required to develop Cachet:
You can now find our documentation at [https://docs.cachethq.io](https://docs.cachethq.io).
- [Installing Cachet](https://docs.cachethq.io/docs/installing-cachet)
- [Getting started with Docker](https://docs.cachethq.io/docs/get-started-with-docker)
- [Getting started with Vagrant](https://docs.cachethq.io/docs/get-started-with-vagrant)
### Demo Account
To test out the demo, you may login to the [Dashboard](https://demo.cachethq.io/dashboard) with the following:
@@ -47,70 +55,10 @@ To test out the demo, you may login to the [Dashboard](https://demo.cachethq.io/
The demo is reset every half hour.
## What Cachet is not
Here is a list of things that Cachet is not or does not do:
1. It does not monitor your services. It works only as a way to display the status of your services. *However, Cachet is able to receive updates from third-party services via its API.*
2. It does not work on a plugin system. There are no monitoring services to extend.
3. It's not a Twitter clone.
## Quickstart with Docker
Run a DB container (you can either pass in environment variables for the DB, or mount a config with `-v /my/database.php:/var/www/html/app/config/database.php`):
```bash
$ export DB_USERNAME=cachet
$ export DB_PASSWORD=cachet
$ export DB_ROOT_PASSWORD=cachet
$ export DB_DATABASE=cachet
$ docker run --name mysql -e MYSQL_USER=$DB_USERNAME -e MYSQL_PASSWORD=$DB_PASSWORD -e MYSQL_ROOT_PASSWORD=$DB_ROOT_PASSWORD -e MYSQL_DATABASE=$DB_DATABASE -d mysql
```
Initialize the DB if you haven't yet:
```bash
$ docker run --rm --link mysql:mysql -e DB_HOST=mysql -e DB_DATABASE=$DB_DATABASE -e DB_USERNAME=$DB_USERNAME -e DB_PASSWORD=$DB_PASSWORD cachethq/cachet:latest php artisan migrate --force
```
Run Cachet:
```bash
$ docker run -d --name cachet --link mysql:mysql -p 80:8000 -e DB_HOST=mysql -e DB_DATABASE=$DB_DATABASE -e DB_USERNAME=$DB_USERNAME -e DB_PASSWORD=$DB_PASSWORD cachethq/cachet:latest
```
Now go to `http://<ipdockerisboundto>/setup` and have fun!
Note: When running in production you should ensure that you enable SSL.
This is commonly achieved by running Nginx with your certificates on your Docker host, service or load balancers in-front of the running container, or by adding your custom SSL certificates and configuration to the supplied Nginx configuration.
### docker-compose
Quickly launch Cachet and MySQL docker images with [docker-compose](https://docs.docker.com/compose/)
```bash
git clone https://github.com/cachethq/Cachet.git
cd Cachet
docker-compose build
docker-compose up
```
To initialize the database, utilize [docker exec](https://docs.docker.com/reference/commandline/cli/#exec):
```bash
docker exec -it cachet_cachet_1 php artisan migrate --force
```
Continue to `http://<ipdockerisboundto>/setup` to configure Cachet.
## Addons
- [cachet-monitor](https://github.com/castawaylabs/cachet-monitor) - For URL monitoring. Automatic incident updates.
- [sensu-cachet](https://github.com/bimlendu/sensu-cachethq) - Sensu handler for updating CachetHQ.
## Read more about Cachet
For more information on why I started developing Cachet, check out my [Cachet articles on my blog](https://james-brooks.uk/tag/cachet/?utm_source=github&utm_medium=readme&utm_campaign=github-cachet).
## Translations
A special thank you to our [translators](https://crowdin.com/project/cachet/activity_stream), who have allowed us to share Cachet with the world. If you'd like to contribute translations, please check out our [CrowdIn project](https://crowdin.com/project/cachet).
## Security Vulnerabilities
If you discover a security vulnerability within Cachet, please send an e-mail to us at support@alt-three.com. All security vulnerabilities will be promptly addressed.

1
VERSION Normal file
View File

@@ -0,0 +1 @@
2.0.5-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\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\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\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,53 @@
<?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\Commands\ComponentGroup;
final class AddComponentGroupCommand
{
/**
* The component group name.
*
* @var string
*/
public $name;
/**
* The component group description.
*
* @var int
*/
public $order;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'required|string',
'order' => 'int',
];
/**
* Create a add component group command instance.
*
* @param string $name
* @param int $order
*
* @return void
*/
public function __construct($name, $order)
{
$this->name = $name;
$this->order = (int) $order;
}
}

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\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,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\Commands\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
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;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'string',
'order' => 'int',
];
/**
* Create a add component group command instance.
*
* @param \CachetHQ\Cachet\Models\ComponentGroup $group
* @param string $name
* @param int $order
*
* @return void
*/
public function __construct(ComponentGroup $group, $name, $order)
{
$this->group = $group;
$this->name = $name;
$this->order = (int) $order;
}
}

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\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\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',
'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, $template_vars)
{
$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\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\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 $name
* @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, $template_vars)
{
$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,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\Commands\Invite;
final class ClaimInviteCommand
{
/**
* The invte to mark as claimed.
*
* @var \CachetHQ\Cachet\Model\Invite
*/
public $invite;
/**
* Create a new claim invite command instance.
*
* @param \CachetHQ\Cachet\Model\Invite $invite
*
* @return void
*/
public function __construct($invite)
{
$this->invite = $invite;
}
}

View File

@@ -0,0 +1,104 @@
<?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\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 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',
];
/**
* 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
*
* @return void
*/
public function __construct($name, $suffix, $description, $default_value, $calc_type, $display_chart, $places)
{
$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;
}
}

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\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' => 'int',
'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\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\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,115 @@
<?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\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 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|min:0|max:4',
];
/**
* 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
*
* @return void
*/
public function __construct(Metric $metric, $name, $suffix, $description, $default_value, $calc_type, $display_chart, $places)
{
$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;
}
}

View File

@@ -0,0 +1,74 @@
<?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\Commands\Metric;
use CachetHQ\Cachet\Models\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
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 int
*/
public $value;
/**
* The metric point created at.
*
* @var string
*/
public $created_at;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'value' => 'int',
'created_at' => 'string',
];
/**
* Create a new update metric point command instance.
*
* @param \CachetHQ\Cachet\Models\MetricPoint $point
* @param \CachetHQ\Cachet\Models\Metric $metric
* @param int $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,52 @@
<?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\Commands\Subscriber;
final class SubscribeSubscriberCommand
{
/**
* The subscriber email.
*
* @var string
*/
public $email;
/**
* The subscriber auto verification.
*
* @var bool
*/
public $verified;
/**
* The validation rules.
*
* @var array
*/
public $rules = [
'email' => 'required|email',
];
/**
* Create a new subscribe subscriber command instance.
*
* @param string $email
* @param bool $verified
*
* @return void
*/
public function __construct($email, $verified = false)
{
$this->email = $email;
$this->verified = $verified;
}
}

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\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 string $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\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 string $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\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,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\Commands\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)
{
$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\Commands\User;
final class InviteTeamMemberCommand
{
/**
* The invte 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 array $email
*
* @return void
*/
public function __construct($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\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\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

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -12,7 +12,9 @@
namespace CachetHQ\Cachet\Composers;
use CachetHQ\Cachet\Facades\Setting;
use GrahamCampbell\Markdown\Facades\Markdown;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Config;
class AppComposer
{
@@ -20,17 +22,25 @@ class AppComposer
* Index page view composer.
*
* @param \Illuminate\Contracts\View\View $view
*
* @return void
*/
public function compose(View $view)
{
$isEnabled = (bool) Setting::get('enable_subscribers', false);
$mailAddress = env('MAIL_ADDRESS', false);
$mailFrom = env('MAIL_NAME', false);
$withData = [
'subscribersEnabled' => $isEnabled && $mailAddress && $mailFrom,
];
$view->with($withData);
$view->withAboutApp(Markdown::convertToHtml(Setting::get('app_about')));
$view->withAppAnalytics(Setting::get('app_analytics'));
$view->withAppAnalyticsGoSquared(Setting::get('app_analytics_gs'));
$view->withAppAnalyticsPiwikUrl(Setting::get('app_analytics_piwik_url'));
$view->withAppAnalyticsPiwikSiteId(Setting::get('app_analytics_piwik_siteid'));
$view->withAppBanner(Setting::get('app_banner'));
$view->withAppBannerStyleFullWidth(Setting::get('style_fullwidth_header'));
$view->withAppBannerType(Setting::get('app_banner_type'));
$view->withAppDomain(Setting::get('app_domain'));
$view->withAppGraphs(Setting::get('display_graphs'));
$view->withAppLocale(Setting::get('app_locale'));
$view->withAppName(Setting::get('app_name'));
$view->withAppStylesheet(Setting::get('stylesheet'));
$view->withAppUrl(Config::get('app.url'));
$view->withShowSupport(Setting::get('show_support'));
}
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -14,15 +14,17 @@ namespace CachetHQ\Cachet\Composers;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Auth;
class LoggedUserComposer
class CurrentUserComposer
{
/**
* Bind data to the view.
*
* @param \Illuminate\Contracts\View\View $view
*
* @return void
*/
public function compose(View $view)
{
$view->with('loggedUser', Auth::user());
$view->withCurrentUser(Auth::user());
}
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -21,10 +21,12 @@ class DashboardComposer
* Bind data to the view.
*
* @param \Illuminate\Contracts\View\View $view
*
* @return void
*/
public function compose(View $view)
{
$view->with('incidentCount', Incident::notScheduled()->count());
$view->with('componentCount', Component::all()->count());
$view->withIncidentCount(Incident::notScheduled()->count());
$view->withComponentCount(Component::all()->count());
}
}

View File

@@ -1,48 +0,0 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Composers;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
use Illuminate\Contracts\View\View;
class IndexComposer
{
/**
* Index page view composer.
*
* @param \Illuminate\Contracts\View\View $view
*/
public function compose(View $view)
{
// Default data
$withData = [
'systemStatus' => 'danger',
'systemMessage' => trans('cachet.service.bad'),
];
if (Component::notStatus(1)->count() === 0) {
// If all our components are ok, do we have any non-fixed incidents?
$incidents = Incident::notScheduled()->orderBy('created_at', 'desc')->get();
$incidentCount = $incidents->count();
if ($incidentCount === 0 || ($incidentCount >= 1 && (int) $incidents->first()->status === 4)) {
$withData = [
'systemStatus' => 'success',
'systemMessage' => trans('cachet.service.good'),
];
}
}
$view->with($withData);
}
}

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\Composers;
use CachetHQ\Cachet\Facades\Setting;
use CachetHQ\Cachet\Models\Metric;
use CachetHQ\Cachet\Repositories\Metric\MetricRepository;
use Illuminate\Contracts\View\View;
class MetricsComposer
{
/**
* @var \CachetHQ\Cachet\Repositories\Metric\MetricRepository
*/
protected $metricRepository;
/**
* Construct a new home controller instance.
*
* @param \CachetHQ\Cachet\Repositories\Metric\MetricRepository $metricRepository
*
* @return void
*/
public function __construct(MetricRepository $metricRepository)
{
$this->metricRepository = $metricRepository;
}
/**
* Metrics view composer.
*
* @param \Illuminate\Contracts\View\View $view
*
* @return void
*/
public function compose(View $view)
{
$metrics = null;
$metricData = [];
if ($displayMetrics = Setting::get('display_graphs')) {
$metrics = Metric::where('display_chart', 1)->get();
$metrics->map(function ($metric) use (&$metricData) {
$metricData[$metric->id] = [
'today' => $this->metricRepository->listPointsToday($metric),
'week' => $this->metricRepository->listPointsForWeek($metric),
'month' => $this->metricRepository->listPointsForMonth($metric),
];
});
}
$view->withDisplayMetrics($displayMetrics)
->withMetrics($metrics)
->withMetricData($metricData);
}
}

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\Composers;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\ComponentGroup;
use CachetHQ\Cachet\Models\Incident;
use Illuminate\Contracts\View\View;
class StatusPageComposer
{
/**
* Index page view composer.
*
* @param \Illuminate\Contracts\View\View $view
*
* @return void
*/
public function compose(View $view)
{
// Default data
$withData = [
'systemStatus' => 'info',
'systemMessage' => trans('cachet.service.bad'),
'favicon' => 'favicon-high-alert',
];
if (Component::enabled()->notStatus(1)->count() === 0) {
// If all our components are ok, do we have any non-fixed incidents?
$incidents = Incident::notScheduled()->orderBy('created_at', 'desc')->get();
$incidentCount = $incidents->count();
if ($incidentCount === 0 || ($incidentCount >= 1 && (int) $incidents->first()->status === 4)) {
$withData = [
'systemStatus' => 'success',
'systemMessage' => trans('cachet.service.good'),
'favicon' => 'favicon',
];
}
} else {
if (Component::enabled()->whereIn('status', [2, 3])->count() > 0) {
$withData['favicon'] = 'favicon-medium-alert';
}
}
// Scheduled maintenance code.
$scheduledMaintenance = Incident::scheduled()->orderBy('scheduled_at')->get();
// Component & Component Group lists.
$usedComponentGroups = Component::enabled()->where('group_id', '>', 0)->groupBy('group_id')->lists('group_id');
$componentGroups = ComponentGroup::whereIn('id', $usedComponentGroups)->orderBy('order')->get();
$ungroupedComponents = Component::enabled()->where('group_id', 0)->orderBy('order')->orderBy('created_at')->get();
$view->with($withData)
->withComponentGroups($componentGroups)
->withUngroupedComponents($ungroupedComponents)
->withScheduledMaintenance($scheduledMaintenance);
}
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -20,18 +20,23 @@ class ThemeComposer
* Bind data to the view.
*
* @param \Illuminate\Contracts\View\View $view
*
* @return void
*/
public function compose(View $view)
{
$view->with('themeBackgroundColor', Setting::get('style_background_color'));
$view->with('themeTextColor', Setting::get('style_text_color'));
$viewData = $view->getData();
$themeView = array_only($viewData, preg_grep('/^theme/', array_keys($viewData)));
$hasThemeSettings = array_filter($themeView, function ($data) {
return $data != null;
});
$view->with('themeSetup', !empty($hasThemeSettings));
// Theme colors.
$view->withThemeBackgroundColor(Setting::get('style_background_color', '#F0F3F4'));
$view->withThemeBackgroundFills(Setting::get('style_background_fills', '#FFFFFF'));
$view->withThemeBannerBackgroundColor(Setting::get('style_banner_background_color', ''));
$view->withThemeBannerPadding(Setting::get('style_banner_padding', '40px 0'));
$view->withThemeTextColor(Setting::get('style_text_color', '#333333'));
$view->withThemeReds(Setting::get('style_reds', '#ff6f6f'));
$view->withThemeBlues(Setting::get('style_blues', '#3498db'));
$view->withThemeGreens(Setting::get('style_greens', '#7ED321'));
$view->withThemeYellows(Setting::get('style_yellows', '#F7CA18'));
$view->withThemeOranges(Setting::get('style_oranges', '#FF8800'));
$view->withThemeMetrics(Setting::get('style_metrics', '#0dccc0'));
$view->withThemeLinks(Setting::get('style_links', '#7ED321'));
}
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -22,6 +22,8 @@ class TimezoneLocaleComposer
* Timezones and Locales composer.
*
* @param \Illuminate\Contracts\View\View $view
*
* @return void
*/
public function compose(View $view)
{
@@ -45,6 +47,7 @@ class TimezoneLocaleComposer
'Europe' => DateTimeZone::EUROPE,
'Indian' => DateTimeZone::INDIAN,
'Pacific' => DateTimeZone::PACIFIC,
'UTC' => DateTimeZone::UTC,
];
$timezones = [];
@@ -65,9 +68,7 @@ class TimezoneLocaleComposer
}
}
$view->with([
'timezones' => $timezones,
'langs' => $langs,
]);
$view->withTimezones($timezones);
$view->withLangs($langs);
}
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -33,6 +33,8 @@ class Repository
* Create a new settings service instance.
*
* @param \CachetHQ\Cachet\Models\Setting $model
*
* @return void
*/
public function __construct(Setting $model)
{
@@ -44,11 +46,10 @@ class Repository
*
* @param string $name
* @param string|null $default
* @param bool $checkEnv
*
* @return string|null
*/
public function get($name, $default = null, $checkEnv = true)
public function get($name, $default = null)
{
// if we've not loaded the settings, load them now
if (!$this->settings) {
@@ -60,13 +61,6 @@ class Repository
return $this->settings[$name];
}
// fallback to getenv if allowed to
if ($checkEnv) {
if ($this->settings[$name] = env(strtoupper($name))) {
return $this->settings[$name];
}
}
return $default;
}
@@ -75,6 +69,8 @@ class Repository
*
* @param string $name
* @param string $value
*
* @return void
*/
public function set($name, $value)
{

View File

@@ -0,0 +1,93 @@
<?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\Console\Commands;
use CachetHQ\Cachet\Models\MetricPoint;
use DateInterval;
use DateTime;
use Illuminate\Console\Command;
use Illuminate\Console\ConfirmableTrait;
use Symfony\Component\Console\Input\InputOption;
/**
* This is the demo seeder of metric points command.
*
* @author James Brooks <james@alt-three.com>
*/
class DemoMetricPointSeederCommand extends Command
{
use ConfirmableTrait;
/**
* The console command name.
*
* @var string
*/
protected $name = 'cachet:metrics';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Seeds the demo Cachet metric with points.';
/**
* Execute the console command.
*
* @return void
*/
public function fire()
{
if (!$this->confirmToProceed()) {
return;
}
$this->seedMetricPoints();
$this->info('Demo metric seeded with demo data successfully!');
}
/**
* Seed the metric points table.
*
* @return void
*/
protected function seedMetricPoints()
{
MetricPoint::truncate();
// Generate 11 hours of metric points
for ($i = 0; $i < 11; $i++) {
$metricTime = (new DateTime())->sub(new DateInterval('PT'.$i.'H'));
MetricPoint::create([
'metric_id' => 1,
'value' => random_int(1, 10),
'created_at' => $metricTime,
'updated_at' => $metricTime,
]);
}
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return [
['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'],
];
}
}

View File

@@ -0,0 +1,343 @@
<?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\Console\Commands;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\ComponentGroup;
use CachetHQ\Cachet\Models\Incident;
use CachetHQ\Cachet\Models\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
use CachetHQ\Cachet\Models\Setting;
use CachetHQ\Cachet\Models\Subscriber;
use CachetHQ\Cachet\Models\User;
use DateInterval;
use DateTime;
use Illuminate\Console\Command;
use Illuminate\Console\ConfirmableTrait;
use Symfony\Component\Console\Input\InputOption;
/**
* This is the demo seeder command.
*
* @author James Brooks <james@alt-three.com>
*/
class DemoSeederCommand extends Command
{
use ConfirmableTrait;
/**
* The console command name.
*
* @var string
*/
protected $name = 'cachet:seed';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Seeds Cachet with demo data.';
/**
* Execute the console command.
*
* @return void
*/
public function fire()
{
if (!$this->confirmToProceed()) {
return;
}
$this->seedComponentGroups();
$this->seedComponents();
$this->seedIncidents();
$this->seedMetricPoints();
$this->seedMetrics();
$this->seedSettings();
$this->seedSubscribers();
$this->seedUsers();
$this->info('Database seeded with demo data successfully!');
}
/**
* Seed the component groups table.
*
* @return void
*/
protected function seedComponentGroups()
{
$defaultGroups = [
[
'name' => 'Websites',
'order' => 1,
],
];
ComponentGroup::truncate();
foreach ($defaultGroups as $group) {
ComponentGroup::create($group);
}
}
/**
* Seed the components table.
*
* @return void
*/
protected function seedComponents()
{
$defaultComponents = [
[
'name' => 'API',
'description' => 'Used by third-parties to connect to us',
'status' => 1,
'order' => 0,
'group_id' => 0,
'link' => '',
], [
'name' => 'Documentation',
'description' => 'Kindly powered by Readme.io',
'status' => 1,
'order' => 0,
'group_id' => 1,
'link' => 'https://docs.cachethq.io',
], [
'name' => 'Website',
'description' => '',
'status' => 1,
'order' => 0,
'group_id' => 1,
'link' => 'https://cachethq.io',
], [
'name' => 'Blog',
'description' => 'The Cachet Blog.',
'status' => 1,
'order' => 0,
'group_id' => 1,
'link' => 'https://blog.cachethq.io',
],
];
Component::truncate();
foreach ($defaultComponents as $component) {
Component::create($component);
}
}
/**
* Seed the incidents table.
*
* @return void
*/
protected function seedIncidents()
{
$defaultIncidents = [
[
'name' => 'Awesome',
'message' => ':+1: We totally nailed the fix.',
'status' => 4,
'component_id' => 0,
'scheduled_at' => null,
'visible' => 1,
],
[
'name' => 'Monitoring the fix',
'message' => ":ship: We've deployed a fix.",
'status' => 3,
'component_id' => 0,
'scheduled_at' => null,
'visible' => 1,
],
[
'name' => 'Update',
'message' => "We've identified the problem. Our engineers are currently looking at it.",
'status' => 2,
'component_id' => 0,
'scheduled_at' => null,
'visible' => 1,
],
[
'name' => 'Test Incident',
'message' => 'Something went wrong, with something or another.',
'status' => 1,
'component_id' => 0,
'scheduled_at' => null,
'visible' => 1,
],
[
'name' => 'Investigating the API',
'message' => ':zap: We\'ve seen high response times from our API. It looks to be fixing itself as time goes on.',
'status' => 1,
'component_id' => 1,
'scheduled_at' => null,
'visible' => 1,
],
];
Incident::truncate();
foreach ($defaultIncidents as $incident) {
Incident::create($incident);
}
}
/**
* Seed the metric points table.
*
* @return void
*/
protected function seedMetricPoints()
{
MetricPoint::truncate();
// Generate 11 hours of metric points
for ($i = 0; $i < 11; $i++) {
$metricTime = (new DateTime())->sub(new DateInterval('PT'.$i.'H'));
MetricPoint::create([
'metric_id' => 1,
'value' => random_int(1, 10),
'created_at' => $metricTime,
'updated_at' => $metricTime,
]);
}
}
/**
* Seed the metrics table.
*
* @return void
*/
protected function seedMetrics()
{
$defaultMetrics = [
[
'name' => 'Cups of coffee',
'suffix' => 'Cups',
'description' => 'How many cups of coffee we\'ve drank.',
'default_value' => 0,
'calc_type' => 1,
'display_chart' => 1,
],
];
Metric::truncate();
foreach ($defaultMetrics as $metric) {
Metric::create($metric);
}
}
/**
* Seed the settings table.
*
* @return void
*/
protected function seedSettings()
{
$defaultSettings = [
[
'name' => 'app_name',
'value' => 'Cachet Demo',
],
[
'name' => 'app_domain',
'value' => 'https://demo.cachethq.io',
],
[
'name' => 'show_support',
'value' => '1',
],
[
'name' => 'app_locale',
'value' => 'en',
],
[
'name' => 'app_timezone',
'value' => 'Europe/London',
],
[
'name' => 'app_incident_days',
'value' => '7',
],
[
'name' => 'app_analytics',
'value' => 'UA-58442674-3',
],
[
'name' => 'app_analytics_gs',
'value' => 'GSN-712462-P',
],
[
'name' => 'display_graphs',
'value' => '1',
],
];
Setting::truncate();
foreach ($defaultSettings as $setting) {
Setting::create($setting);
}
}
/**
* Seed the subscribers.
*
* @return void
*/
protected function seedSubscribers()
{
Subscriber::truncate();
}
/**
* Seed the users table.
*
* @return void
*/
protected function seedUsers()
{
$users = [
[
'username' => 'test',
'password' => 'test123',
'email' => 'test@test.com',
'level' => 1,
'api_key' => '9yMHsdioQosnyVK4iCVR',
],
];
User::truncate();
foreach ($users as $user) {
User::create($user);
}
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return [
['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'],
];
}
}

View File

@@ -1,111 +0,0 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Console\Commands;
use DirectoryIterator;
use Illuminate\Console\Command;
class FixPermissionsCommand extends Command
{
/**
* The console command name.
*
* @var string
*/
protected $name = 'cachet:chmod';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Fixes file and directory permissions. Ensures SQLite database is writable.';
/**
* Path to the storage directory.
*
* @var string
*/
protected $storageDirectory;
/**
* Path of the database directory.
*
* @var string
*/
protected $databaseDirectory;
/**
* Path of the SQLite database file.
*
* @var string
*/
protected $databasePath;
/**
* Which database connection are we using?
*
* @var string
*/
protected $databaseDefault;
/**
* Create a new fix permissions command instance.
*
* @param string $storageDirectory
* @param string $databaseDirectory
* @param string $databasePath
* @param string $databaseDefault
*/
public function __construct($storageDirectory, $databaseDirectory, $databasePath, $databaseDefault)
{
$this->storageDirectory = $storageDirectory;
$this->databaseDirectory = $databaseDirectory;
$this->databasePath = $databasePath;
$this->databaseDefault = $databaseDefault;
parent::__construct();
}
/**
* Execute the console command.
*/
public function fire()
{
$this->recursiveChmod($this->storageDirectory);
if ($this->databaseDefault === 'sqlite') {
chmod($this->databaseDirectory, 755);
chmod($this->databasePath, 755);
}
}
/**
* Recursively sets a paths file permissions.
*
* @param string $path
* @param string $mode
*/
protected function recursiveChmod($path, $mode = '0755')
{
$dir = new DirectoryIterator($path);
foreach ($dir as $item) {
if (!$item->isDot()) {
chmod($item->getPathname(), $mode);
}
if ($item->isDir() && !$item->isDot()) {
$this->recursiveChmod($item->getPathname());
}
}
}
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -11,6 +11,8 @@
namespace CachetHQ\Cachet\Console;
use CachetHQ\Cachet\Console\Commands\DemoMetricPointSeederCommand;
use CachetHQ\Cachet\Console\Commands\DemoSeederCommand;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
@@ -22,13 +24,16 @@ class Kernel extends ConsoleKernel
* @var array
*/
protected $commands = [
'CachetHQ\Cachet\Console\Commands\FixPermissionsCommand',
DemoMetricPointSeederCommand::class,
DemoSeederCommand::class,
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
*
* @return void
*/
protected function schedule(Schedule $schedule)
{

77
app/Dates/DateFactory.php Normal file
View File

@@ -0,0 +1,77 @@
<?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\Dates;
use Jenssegers\Date\Date;
class DateFactory
{
/**
* The application timezone.
*
* @var string
*/
protected $appTimezone;
/**
* The cachet timezone.
*
* @var string
*/
protected $cachetTimezone;
/**
* Create a new date factory instance.
*
* @param string $appTimezone
* @param string $cachetTimezone
*
* @return void
*/
public function __construct($appTimezone, $cachetTimezone)
{
$this->appTimezone = $appTimezone;
$this->cachetTimezone = $cachetTimezone;
}
/**
* Create a Carbon instance from a specific format.
*
* @param string $format
* @param string $time
*
* @throws \InvalidArgumentException
*
* @return \Carbon\Carbon
*/
public function create($format, $time)
{
return Date::createFromFormat($format, $time, $this->cachetTimezone)->setTimezone($this->appTimezone);
}
/**
* Create a Carbon instance from a specific format.
*
* We're also going to make sure the timezone information is correct.
*
* @param string $format
* @param string $time
*
* @throws \InvalidArgumentException
*
* @return \Carbon\Carbon
*/
public function createNormalized($format, $time)
{
return $this->create($format, $time)->setTimezone($this->appTimezone);
}
}

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\Events\Component;
use CachetHQ\Cachet\Models\Component;
class ComponentWasAddedEvent
{
/**
* The component that was added.
*
* @var \CachetHQ\Cachet\Models\Component
*/
public $component;
/**
* Create a new component was added event instance.
*
* @return void
*/
public function __construct(Component $component)
{
$this->component = $component;
}
}

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\Events\Component;
use CachetHQ\Cachet\Models\Component;
class ComponentWasRemovedEvent
{
/**
* The component that was removed.
*
* @var \CachetHQ\Cachet\Models\Component
*/
public $component;
/**
* Create a new component was removed event instance.
*
* @return void
*/
public function __construct(Component $component)
{
$this->component = $component;
}
}

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\Events\Component;
use CachetHQ\Cachet\Models\Component;
class ComponentWasUpdatedEvent
{
/**
* The component that was updated.
*
* @var \CachetHQ\Cachet\Models\Component
*/
public $component;
/**
* Create a new component was updated event instance.
*
* @return void
*/
public function __construct(Component $component)
{
$this->component = $component;
}
}

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\Events\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
class ComponentGroupWasAddedEvent
{
/**
* The component group that was added.
*
* @var \CachetHQ\Cachet\Models\ComponentGroup
*/
public $group;
/**
* Create a new component group was added event instance.
*
* @return void
*/
public function __construct(ComponentGroup $group)
{
$this->group = $group;
}
}

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\Events\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
class ComponentGroupWasRemovedEvent
{
/**
* The component group that was removed.
*
* @var \CachetHQ\Cachet\Models\ComponentGroup
*/
public $group;
/**
* Create a new component group was removed event instance.
*
* @return void
*/
public function __construct(ComponentGroup $group)
{
$this->group = $group;
}
}

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\Events\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
class ComponentGroupWasUpdatedEvent
{
/**
* The component group that was updated.
*
* @var \CachetHQ\Cachet\Models\ComponentGroup
*/
public $group;
/**
* Create a new component group was updated event instance.
*
* @return void
*/
public function __construct(ComponentGroup $group)
{
$this->group = $group;
}
}

View File

@@ -0,0 +1,32 @@
<?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\Events\Incident;
use CachetHQ\Cachet\Models\Incident;
class IncidentWasRemovedEvent
{
/**
* The incident that has been removed.
*
* @var \CachetHQ\Cachet\Models\Incident
*/
public $incident;
/**
* Create a new incident was removed event instance.
*/
public function __construct(Incident $incident)
{
$this->incident = $incident;
}
}

View File

@@ -3,17 +3,17 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (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\Events;
namespace CachetHQ\Cachet\Events\Incident;
use CachetHQ\Cachet\Models\Incident;
class IncidentHasReportedEvent
class IncidentWasReportedEvent
{
/**
* The incident that has been reported.
@@ -24,6 +24,8 @@ class IncidentHasReportedEvent
/**
* Create a new incident has reported event instance.
*
* @return void
*/
public function __construct(Incident $incident)
{

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\Events\Incident;
use CachetHQ\Cachet\Models\Incident;
class IncidentWasUpdatedEvent
{
/**
* The incident that has been updated.
*
* @var \CachetHQ\Cachet\Models\Incident
*/
public $incident;
/**
* Create a new incident has updated event instance.
*
* @return void
*/
public function __construct(Incident $incident)
{
$this->incident = $incident;
}
}

View File

@@ -3,17 +3,17 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (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\Events;
namespace CachetHQ\Cachet\Events\Incident;
use CachetHQ\Cachet\Models\Incident;
class MaintenanceHasScheduledEvent
class MaintenanceWasScheduledEvent
{
/**
* The incident that has been reported.
@@ -24,6 +24,8 @@ class MaintenanceHasScheduledEvent
/**
* Create a new maintenance has scheduled event instance.
*
* @return void
*/
public function __construct(Incident $incident)
{

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\Events\Invite;
use CachetHQ\Cachet\Models\Invite;
final class InviteWasClaimed
{
/**
* 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

@@ -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\Events\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
class MetricPointWasAddedEvent
{
/**
* The metric point that was added.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $metric;
/**
* Create a new metric point was added event instance.
*
* @return void
*/
public function __construct(MetricPoint $metric)
{
$this->metric = $metric;
}
}

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\Events\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
class MetricPointWasRemovedEvent
{
/**
* The metric point that was removed.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $metricPoint;
/**
* Create a new metric point was removed event instance.
*
* @return void
*/
public function __construct(MetricPoint $metricPoint)
{
$this->metricPoint = $metricPoint;
}
}

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\Events\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
class MetricPointWasUpdatedEvent
{
/**
* The metric point that was updated.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $point;
/**
* Create a new metric point was updated event instance.
*
* @return void
*/
public function __construct(MetricPoint $point)
{
$this->point = $point;
}
}

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\Events\Metric;
use CachetHQ\Cachet\Models\Metric;
class MetricWasAddedEvent
{
/**
* The metric that was added.
*
* @var \CachetHQ\Cachet\Models\Metric
*/
public $metric;
/**
* Create a new metric was added event instance.
*
* @return void
*/
public function __construct(Metric $metric)
{
$this->metric = $metric;
}
}

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\Events\Metric;
use CachetHQ\Cachet\Models\Metric;
class MetricWasRemovedEvent
{
/**
* The metric that was removed.
*
* @var \CachetHQ\Cachet\Models\Metric
*/
public $metric;
/**
* Create a new metric was removed event instance.
*
* @return void
*/
public function __construct(Metric $metric)
{
$this->metric = $metric;
}
}

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\Events\Metric;
use CachetHQ\Cachet\Models\Metric;
class MetricWasUpdatedEvent
{
/**
* The metric that was updated.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $metric;
/**
* Create a new metric was updated event instance.
*
* @return void
*/
public function __construct(Metric $metric)
{
$this->metric = $metric;
}
}

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\Events\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
class SubscriberHasSubscribedEvent
{
/**
* The subscriber who has subscribed.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a new subscriber has subscribed event instance.
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{
$this->subscriber = $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\Events\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
class SubscriberHasUnsubscribedEvent
{
/**
* The subscriber who has unsubscribed.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a new subscriber has unsubscribed event instance.
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{
$this->subscriber = $subscriber;
}
}

View File

@@ -3,27 +3,29 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (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\Events;
namespace CachetHQ\Cachet\Events\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
class CustomerHasSubscribedEvent
class SubscriberHasVerifiedEvent
{
/**
* The customer who has subscribed.
* The subscriber who has verified.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a new customer has subscribed event instance.
* Create a new subscriber has subscribed event instance.
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{

View File

@@ -0,0 +1,17 @@
<?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\Events\User;
interface UserEventInterface
{
//
}

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\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.
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
}

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\Events\User;
use CachetHQ\Cachet\Models\Invite;
final class UserWasInvitedEvent
{
/**
* The invite that has been added.
*
* @var \CachetHQ\Cachet\Models\Invite
*/
public $invite;
/**
* Create a new user was invite event instance.
*
* @return void
*/
public function __construct(Invite $invite)
{
$this->invite = $invite;
}
}

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\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.
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
}

View File

@@ -0,0 +1,54 @@
<?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\Exceptions\Displayers;
use AltThree\Validator\ValidationException;
use Exception;
use GrahamCampbell\Exceptions\Displayers\DisplayerInterface;
use GrahamCampbell\Exceptions\Displayers\JsonDisplayer;
use Symfony\Component\HttpFoundation\JsonResponse;
class JsonValidationDisplayer extends JsonDisplayer implements DisplayerInterface
{
/**
* Get the error response associated with the given exception.
*
* @param \Exception $exception
* @param string $id
* @param int $code
* @param string[] $headers
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function display(Exception $exception, $id, $code, array $headers)
{
$info = $this->info->generate($exception, $id, 400);
$error = ['id' => $id, 'status' => $info['code'], 'title' => $info['name'], 'detail' => $info['detail'], 'meta' => ['details' => $exception->getMessageBag()->all()]];
return new JsonResponse(['errors' => [$error]], 400, array_merge($headers, ['Content-Type' => $this->contentType()]));
}
/**
* Can we display the exception?
*
* @param \Exception $original
* @param \Exception $transformed
* @param int $code
*
* @return bool
*/
public function canDisplay(Exception $original, Exception $transformed, $code)
{
return $transformed instanceof ValidationException;
}
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -29,6 +29,8 @@ class RedirectDisplayer implements DisplayerInterface
* Create a new redirect displayer instance.
*
* @param \Illuminate\Http\Request $request
*
* @return void
*/
public function __construct(Request $request)
{
@@ -39,12 +41,13 @@ class RedirectDisplayer implements DisplayerInterface
* Get the error response associated with the given exception.
*
* @param \Exception $exception
* @param string $id
* @param int $code
* @param string[] $headers
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function display(Exception $exception, $code, array $headers)
public function display(Exception $exception, $id, $code, array $headers)
{
return redirect()->guest('auth/login');
}
@@ -62,13 +65,15 @@ class RedirectDisplayer implements DisplayerInterface
/**
* Can we display the exception?
*
* @param \Exception $exception
* @param \Exception $original
* @param \Exception $transformed
* @param int $code
*
* @return bool
*/
public function canDisplay(Exception $exception)
public function canDisplay(Exception $original, Exception $transformed, $code)
{
$redirect = $exception instanceof HttpExceptionInterface && $exception->getStatusCode() === 401;
$redirect = $transformed instanceof HttpExceptionInterface && $transformed->getStatusCode() === 401;
return $redirect && !$this->request->is('api*');
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
@@ -27,6 +27,8 @@ class ApiFilter
* Create a new api filter instance.
*
* @param \Illuminate\Http\Request $request
*
* @return void
*/
public function __construct(Request $request)
{
@@ -37,11 +39,13 @@ class ApiFilter
* Filter and return the displayers.
*
* @param \GrahamCampbell\Exceptions\Displayers\DisplayerInterface[] $displayers
* @param \Exception $exception
* @param \Exception $original
* @param \Exception $transformed
* @param int $code
*
* @return \GrahamCampbell\Exceptions\Displayers\DisplayerInterface[]
*/
public function filter(array $displayers, Exception $exception)
public function filter(array $displayers, Exception $original, Exception $transformed, $code)
{
if ($this->request->is('api*')) {
foreach ($displayers as $index => $displayer) {

View File

@@ -1,47 +0,0 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Exceptions;
use Exception;
use GrahamCampbell\Exceptions\ExceptionHandler;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Response;
use Symfony\Component\HttpKernel\Exception\HttpNotFoundException;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that should not be reported.
*
* @var string[]
*/
protected $dontReport = [
HttpNotFoundException::class,
];
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
*
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $e)
{
if ($e instanceof ModelNotFoundException) {
$e = new HttpNotFoundException('Resource not found');
}
return parent::render($request, $e);
}
}

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\Exceptions\Transformers;
use Exception;
use GrahamCampbell\Exceptions\Transformers\TransformerInterface;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* This is the model not found transformer class.
*
* @author Graham Campbell <graham@alt-three.com>
*/
class ModelNotFoundTransformer implements TransformerInterface
{
/**
* Transform the provided exception.
*
* @param \Exception $exception
*
* @return \Exception
*/
public function transform(Exception $exception)
{
if ($exception instanceof ModelNotFoundException) {
$exception = new NotFoundHttpException('Resource not found');
}
return $exception;
}
}

View File

@@ -3,7 +3,7 @@
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.

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\Handlers\Commands\Component;
use CachetHQ\Cachet\Commands\Component\AddComponentCommand;
use CachetHQ\Cachet\Events\Component\ComponentWasAddedEvent;
use CachetHQ\Cachet\Models\Component;
class AddComponentCommandHandler
{
/**
* Handle the add component command.
*
* @param \CachetHQ\Cachet\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\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\Handlers\Commands\Component;
use CachetHQ\Cachet\Commands\Component\RemoveComponentCommand;
use CachetHQ\Cachet\Events\Component\ComponentWasRemovedEvent;
class RemoveComponentCommandHandler
{
/**
* Handle the remove component command.
*
* @param \CachetHQ\Cachet\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\Handlers\Commands\Component;
use CachetHQ\Cachet\Commands\Component\UpdateComponentCommand;
use CachetHQ\Cachet\Events\Component\ComponentWasUpdatedEvent;
use CachetHQ\Cachet\Models\Component;
class UpdateComponentCommandHandler
{
/**
* Handle the update component command.
*
* @param \CachetHQ\Cachet\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\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,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\Handlers\Commands\ComponentGroup;
use CachetHQ\Cachet\Commands\ComponentGroup\AddComponentGroupCommand;
use CachetHQ\Cachet\Events\ComponentGroup\ComponentGroupWasAddedEvent;
use CachetHQ\Cachet\Models\ComponentGroup;
class AddComponentGroupCommandHandler
{
/**
* Handle the add component group command.
*
* @param \CachetHQ\Cachet\Commands\ComponentGroup\AddComponentGroupCommand $command
*
* @return \CachetHQ\Cachet\Models\ComponentGroup
*/
public function handle(AddComponentGroupCommand $command)
{
$group = ComponentGroup::create([
'name' => $command->name,
'order' => $command->order,
]);
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\Handlers\Commands\ComponentGroup;
use CachetHQ\Cachet\Commands\ComponentGroup\RemoveComponentGroupCommand;
use CachetHQ\Cachet\Events\ComponentGroup\ComponentGroupWasRemovedEvent;
class RemoveComponentGroupCommandHandler
{
/**
* Handle the remove component group command.
*
* @param \CachetHQ\Cachet\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,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\Handlers\Commands\ComponentGroup;
use CachetHQ\Cachet\Commands\ComponentGroup\UpdateComponentGroupCommand;
use CachetHQ\Cachet\Events\ComponentGroup\ComponentGroupWasUpdatedEvent;
class UpdateComponentGroupCommandHandler
{
/**
* Handle the update component group command.
*
* @param \CachetHQ\Cachet\Commands\ComponentGroup\UpdateComponentGroupCommand $command
*
* @return \CachetHQ\Cachet\Models\ComponentGroup
*/
public function handle(UpdateComponentGroupCommand $command)
{
$group = $command->group;
$group->update([
'name' => $command->name,
'order' => $command->order,
]);
event(new ComponentGroupWasUpdatedEvent($group));
return $group;
}
}

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\Handlers\Commands\Incident;
use CachetHQ\Cachet\Commands\Incident\RemoveIncidentCommand;
use CachetHQ\Cachet\Events\Incident\IncidentWasRemovedEvent;
class RemoveIncidentCommandHandler
{
/**
* Handle the remove incident command.
*
* @param \CachetHQ\Cachet\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,109 @@
<?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\Handlers\Commands\Incident;
use CachetHQ\Cachet\Commands\Incident\ReportIncidentCommand;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Events\Incident\IncidentWasReportedEvent;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
use CachetHQ\Cachet\Models\IncidentTemplate;
use Twig_Loader_String;
use TwigBridge\Facade\Twig;
class ReportIncidentCommandHandler
{
/**
* The date factory instance.
*
* @var \CachetHQ\Cachet\Dates\DateFactory
*/
protected $dates;
/**
* Create a new report incident command handler instance.
*
* @param \CachetHQ\Cachet\Dates\DateFactory $dates
*
* @return void
*/
public function __construct(DateFactory $dates)
{
$this->dates = $dates;
}
/**
* Handle the report incident command.
*
* @param \CachetHQ\Cachet\Commands\Incident\ReportIncidentCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportIncidentCommand $command)
{
if ($command->template) {
$command->message = $this->parseIncidentTemplate($command->template, $command->template_vars);
}
$data = [
'name' => $command->name,
'status' => $command->status,
'message' => $command->message,
'visible' => $command->visible,
];
// 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->createNormalized('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)
{
Twig::setLoader(new Twig_Loader_String());
$template = IncidentTemplate::forSlug($templateSlug)->first();
return 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\Handlers\Commands\Incident;
use CachetHQ\Cachet\Commands\Incident\ReportMaintenanceCommand;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Events\Incident\MaintenanceWasScheduledEvent;
use CachetHQ\Cachet\Models\Incident;
class ReportMaintenanceCommandHandler
{
/**
* The date factory instance.
*
* @var \CachetHQ\Cachet\Dates\DateFactory
*/
protected $dates;
/**
* Create a new report maintanance 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\Commands\Incident\ReportMaintenanceCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportMaintenanceCommand $command)
{
$scheduledAt = $this->dates->createNormalized('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,121 @@
<?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\Handlers\Commands\Incident;
use CachetHQ\Cachet\Commands\Incident\UpdateIncidentCommand;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Events\Incident\IncidentWasUpdatedEvent;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
use CachetHQ\Cachet\Models\IncidentTemplate;
use Twig_Loader_String;
use TwigBridge\Facade\Twig;
class UpdateIncidentCommandHandler
{
/**
* The date factory instance.
*
* @var \CachetHQ\Cachet\Dates\DateFactory
*/
protected $dates;
/**
* Create a new update incident command handler instance.
*
* @param \CachetHQ\Cachet\Dates\DateFactory $dates
*
* @return void
*/
public function __construct(DateFactory $dates)
{
$this->dates = $dates;
}
/**
* Handle the update incident command.
*
* @param \CachetHQ\Cachet\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->createNormalized('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\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)
{
Twig::setLoader(new Twig_Loader_String());
$template = IncidentTemplate::forSlug($templateSlug)->first();
return 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\Handlers\Commands\Invite;
use CachetHQ\Cachet\Commands\Invite\ClaimInviteCommand;
use CachetHQ\Cachet\Events\Invite\InviteWasClaimed;
use Carbon\Carbon;
class ClaimInviteCommandHandler
{
/**
* Handle the claim invite command.
*
* @param \CachetHQ\Cachet\Commands\User\ClaimInviteCommand $command
*
* @return void
*/
public function handle(ClaimInviteCommand $command)
{
$invite = $command->invite;
$invite->claimed_at = Carbon::now();
$invite->save();
event(new InviteWasClaimed($invite));
}
}

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\Handlers\Commands\Metric;
use CachetHQ\Cachet\Commands\Metric\AddMetricCommand;
use CachetHQ\Cachet\Events\Metric\MetricWasAddedEvent;
use CachetHQ\Cachet\Models\Metric;
class AddMetricCommandHandler
{
/**
* Handle the add metric command.
*
* @param \CachetHQ\Cachet\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,
]);
event(new MetricWasAddedEvent($metric));
return $metric;
}
}

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\Handlers\Commands\Metric;
use CachetHQ\Cachet\Commands\Metric\AddMetricPointCommand;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Events\Metric\MetricPointWasAddedEvent;
use CachetHQ\Cachet\Models\MetricPoint;
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\Commands\Metric\AddMetricPointCommand $command
*
* @return \CachetHQ\Cachet\Models\MetricPoint
*/
public function handle(AddMetricPointCommand $command)
{
$metric = $command->metric;
$createdAt = $command->created_at;
$data = [
'metric_id' => $metric->id,
'value' => $command->value,
];
if ($createdAt) {
$data['created_at'] = $this->dates->create('U', $createdAt)->format('Y-m-d H:i:s');
}
$metricPoint = MetricPoint::create($data);
event(new MetricPointWasAddedEvent($metricPoint));
return $metricPoint;
}
}

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\Handlers\Commands\Metric;
use CachetHQ\Cachet\Commands\Metric\RemoveMetricCommand;
use CachetHQ\Cachet\Events\Metric\MetricWasRemovedEvent;
use CachetHQ\Cachet\Models\Metric;
class RemoveMetricCommandHandler
{
/**
* Handle the remove metric command.
*
* @param \CachetHQ\Cachet\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\Handlers\Commands\Metric;
use CachetHQ\Cachet\Commands\Metric\RemoveMetricPointCommand;
use CachetHQ\Cachet\Events\Metric\MetricPointWasRemovedEvent;
use CachetHQ\Cachet\Models\Metric;
class RemoveMetricPointCommandHandler
{
/**
* Handle the remove metric point command.
*
* @param \CachetHQ\Cachet\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,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\Handlers\Commands\Metric;
use CachetHQ\Cachet\Commands\Metric\UpdateMetricCommand;
use CachetHQ\Cachet\Events\Metric\MetricWasUpdatedEvent;
use CachetHQ\Cachet\Models\Metric;
class UpdateMetricCommandHandler
{
/**
* Handle the update metric command.
*
* @param \CachetHQ\Cachet\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\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,
];
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\Handlers\Commands\Metric;
use CachetHQ\Cachet\Commands\Metric\UpdateMetricPointCommand;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Events\Metric\MetricPointWasUpdatedEvent;
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\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' => $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,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\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Commands\Subscriber\SubscribeSubscriberCommand;
use CachetHQ\Cachet\Commands\Subscriber\VerifySubscriberCommand;
use CachetHQ\Cachet\Events\Subscriber\SubscriberHasSubscribedEvent;
use CachetHQ\Cachet\Models\Subscriber;
use Illuminate\Foundation\Bus\DispatchesJobs;
class SubscribeSubscriberCommandHandler
{
use DispatchesJobs;
/**
* Handle the subscribe subscriber command.
*
* @param \CachetHQ\Cachet\Commands\Subscriber\SubscribeSubscriberCommand $command
*
* @return \CachetHQ\Cachet\Models\Subscriber
*/
public function handle(SubscribeSubscriberCommand $command)
{
$subscriber = Subscriber::create(['email' => $command->email]);
if ($command->verified) {
$this->dispatch(new VerifySubscriberCommand($subscriber));
} else {
event(new SubscriberHasSubscribedEvent($subscriber));
}
return $subscriber;
}
}

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\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Commands\Subscriber\UnsubscribeSubscriberCommand;
use CachetHQ\Cachet\Events\Subscriber\SubscriberHasUnsubscribedEvent;
use CachetHQ\Cachet\Models\Subscriber;
class UnsubscribeSubscriberCommandHandler
{
/**
* Handle the subscribe customer command.
*
* @param \CachetHQ\Cachet\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,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\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Commands\Subscriber\VerifySubscriberCommand;
use CachetHQ\Cachet\Events\Subscriber\SubscriberHasVerifiedEvent;
use CachetHQ\Cachet\Models\Subscriber;
use Carbon\Carbon;
class VerifySubscriberCommandHandler
{
/**
* Handle the subscribe customer command.
*
* @param \CachetHQ\Cachet\Commands\Subscriber\VerifySubscriberCommand $command
*
* @return void
*/
public function handle(VerifySubscriberCommand $command)
{
$subscriber = $command->subscriber;
$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\Handlers\Commands\User;
use CachetHQ\Cachet\Commands\User\AddTeamMemberCommand;
use CachetHQ\Cachet\Events\User\UserWasAddedEvent;
use CachetHQ\Cachet\Models\User;
class AddTeamMemberCommandHandler
{
/**
* Handle the add team member command.
*
* @param \CachetHQ\Cachet\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\Handlers\Commands\User;
use CachetHQ\Cachet\Commands\User\GenerateApiTokenCommand;
use CachetHQ\Cachet\Models\User;
class GenerateApiTokenCommandHandler
{
/**
* Handle the generate api key command.
*
* @param \CachetHQ\Cachet\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));
}
}

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