├── VERSION ├── .cfignore ├── database ├── .gitignore ├── backups │ └── .gitignore ├── seeds │ └── DatabaseSeeder.php └── migrations │ ├── 2015_06_10_122229_AlterTableIncidentsDropUserIdColumn.php │ ├── 2015_06_10_122216_AlterTableComponentsDropUserIdColumn.php │ ├── 2015_01_09_083419_AlterTableUsersAdd2FA.php │ ├── 2015_01_05_201324_CreateComponentGroupsTable.php │ ├── 2016_06_05_091615_create_cache_table.php │ ├── 2015_01_05_203014_CreateSettingsTable.php │ ├── 2015_02_28_214642_UpdateIncidentsAddScheduledAt.php │ ├── 2015_05_19_214534_AlterTableComponentGroupsAddOrder.php │ ├── 2015_05_20_073041_AlterTableIncidentsAddVisibileColumn.php │ ├── 2015_08_02_120436_AlterTableSubscribersRemoveDeletedAt.php │ ├── 2015_01_16_083825_CreateTagsTable.php │ ├── 2016_06_02_075012_AlterTableMetricsAddOrderColumn.php │ ├── 2015_12_26_162258_AlterTableMetricsAddDefaultViewColumn.php │ ├── 2015_05_24_210948_create_failed_jobs_table.php │ ├── 2015_11_03_211049_AlterTableComponentsAddEnabledColumn.php │ ├── 2016_04_29_061916_AlterTableSubscribersAddGlobalColumn.php │ ├── 2016_02_18_085210_AlterTableMetricPointsChangeValueColumn.php │ ├── 2015_01_05_202730_CreateMetricPointsTable.php │ ├── 2015_08_13_214123_AlterTableMetricsAddDecimalPlacesColumn.php │ ├── 2015_01_16_084030_CreateComponentTagTable.php │ ├── 2016_01_29_154937_AlterTableComponentGroupsAddCollapsedColumn.php │ ├── 2016_01_09_141852_CreateSubscriptionsTable.php │ ├── 2015_01_05_202446_CreateIncidentTemplatesTable.php │ └── 2015_10_31_211944_CreateInvitesTable.php ├── storage ├── .gitignore ├── app │ └── .gitignore ├── logs │ └── .gitignore └── framework │ ├── cache │ └── .gitignore │ ├── views │ └── .gitignore │ ├── sessions │ └── .gitignore │ └── .gitignore ├── bootstrap ├── cache │ └── .gitignore └── cachet │ └── .gitignore ├── public ├── dist │ └── .gitignore ├── robots.txt ├── favicon.ico ├── img │ ├── favicon.ico │ ├── favicon.png │ ├── cachet-icon.png │ ├── cachet-logo.png │ ├── cachet-logo@2x.png │ ├── apple-touch-icon.png │ ├── favicon-high-alert.ico │ ├── favicon-high-alert.png │ ├── favicon-medium-alert.ico │ ├── favicon-medium-alert.png │ ├── apple-touch-icon-57x57.png │ ├── apple-touch-icon-72x72.png │ ├── apple-touch-icon-76x76.png │ ├── apple-touch-icon-114x114.png │ ├── apple-touch-icon-120x120.png │ ├── apple-touch-icon-144x144.png │ ├── apple-touch-icon-152x152.png │ └── button-email--dark-grey.png ├── fonts │ ├── ionicons.eot │ ├── ionicons.ttf │ └── ionicons.woff ├── build │ └── rev-manifest.json └── .htaccess ├── .gitignore ├── resources ├── assets │ └── sass │ │ ├── modules │ │ ├── _well.scss │ │ ├── _pager.scss │ │ ├── _panels.scss │ │ ├── _tabs.scss │ │ └── _alerts.scss │ │ ├── plugins │ │ ├── _sortable.scss │ │ ├── _animate.scss │ │ └── _password-strength.scss │ │ ├── partials │ │ └── _wrapper.scss │ │ ├── _helpers.scss │ │ ├── pages │ │ ├── _dashboard.scss │ │ └── _login.scss │ │ ├── _errors.scss │ │ └── _palette.scss ├── views │ ├── partials │ │ ├── about-app.blade.php │ │ ├── crowdin.blade.php │ │ ├── schedule.blade.php │ │ ├── banner.blade.php │ │ ├── component.blade.php │ │ └── incidents.blade.php │ ├── emails │ │ ├── users │ │ │ ├── invite-html.blade.php │ │ │ └── invite-text.blade.php │ │ ├── subscribers │ │ │ ├── verify-text.blade.php │ │ │ └── verify-html.blade.php │ │ ├── components │ │ │ ├── update-text.blade.php │ │ │ └── update-html.blade.php │ │ └── incidents │ │ │ ├── maintenance-text.blade.php │ │ │ └── new-text.blade.php │ ├── layout │ │ ├── clean.blade.php │ │ └── dashboard.blade.php │ ├── dashboard │ │ ├── partials │ │ │ ├── sub-sidebar.blade.php │ │ │ ├── _error.blade.php │ │ │ ├── errors.blade.php │ │ │ └── component.blade.php │ │ └── notifications │ │ │ └── index.blade.php │ ├── single-incident.blade.php │ └── subscribe │ │ └── subscribe.blade.php └── lang │ ├── zh-CN │ ├── setup.php │ └── pagination.php │ ├── zh-TW │ ├── setup.php │ └── pagination.php │ ├── ko │ ├── setup.php │ └── pagination.php │ ├── ja │ ├── setup.php │ └── pagination.php │ ├── he │ ├── setup.php │ └── pagination.php │ ├── ar │ ├── setup.php │ └── pagination.php │ ├── af │ ├── setup.php │ └── pagination.php │ ├── ca │ ├── setup.php │ └── pagination.php │ ├── en │ ├── setup.php │ └── pagination.php │ ├── fa │ ├── setup.php │ └── pagination.php │ ├── no │ ├── setup.php │ └── pagination.php │ ├── ro │ ├── setup.php │ └── pagination.php │ ├── sr │ ├── setup.php │ └── pagination.php │ ├── uk │ ├── setup.php │ └── pagination.php │ ├── sq │ ├── setup.php │ └── pagination.php │ ├── tr │ ├── setup.php │ └── pagination.php │ ├── da │ ├── setup.php │ └── pagination.php │ ├── fi │ ├── setup.php │ └── pagination.php │ ├── cs │ ├── setup.php │ └── pagination.php │ ├── nl │ ├── setup.php │ └── pagination.php │ ├── el │ ├── setup.php │ └── pagination.php │ ├── vi │ ├── setup.php │ └── pagination.php │ ├── pl │ ├── setup.php │ └── pagination.php │ ├── sv-SE │ ├── setup.php │ └── pagination.php │ ├── en-UD │ ├── setup.php │ └── pagination.php │ ├── hu │ ├── setup.php │ └── pagination.php │ ├── de │ ├── setup.php │ └── pagination.php │ ├── pt-PT │ ├── setup.php │ └── pagination.php │ ├── ru │ ├── pagination.php │ └── setup.php │ ├── es │ ├── pagination.php │ └── setup.php │ ├── fr │ ├── pagination.php │ └── setup.php │ ├── it │ ├── setup.php │ └── pagination.php │ ├── id │ ├── pagination.php │ └── setup.php │ └── pt-BR │ ├── pagination.php │ └── setup.php ├── .gitattributes ├── .editorconfig ├── config ├── mail.php ├── database.php ├── cachet.php ├── emoji.php ├── security.php ├── cors.php └── css-inliner.php ├── app ├── Bus │ ├── Events │ │ ├── EventInterface.php │ │ ├── User │ │ │ ├── UserEventInterface.php │ │ │ ├── UserWasAddedEvent.php │ │ │ ├── UserWasRemovedEvent.php │ │ │ └── UserWasInvitedEvent.php │ │ ├── Invite │ │ │ ├── InviteEventInterface.php │ │ │ └── InviteWasClaimedEvent.php │ │ ├── Metric │ │ │ ├── MetricEventInterface.php │ │ │ ├── MetricWasAddedEvent.php │ │ │ ├── MetricWasRemovedEvent.php │ │ │ ├── MetricWasUpdatedEvent.php │ │ │ ├── MetricPointWasAddedEvent.php │ │ │ ├── MetricPointWasRemovedEvent.php │ │ │ └── MetricPointWasUpdatedEvent.php │ │ ├── Incident │ │ │ ├── IncidentEventInterface.php │ │ │ ├── IncidentWasRemovedEvent.php │ │ │ ├── IncidentWasUpdatedEvent.php │ │ │ ├── IncidentWasReportedEvent.php │ │ │ └── MaintenanceWasScheduledEvent.php │ │ ├── Component │ │ │ ├── ComponentEventInterface.php │ │ │ ├── ComponentWasAddedEvent.php │ │ │ ├── ComponentWasRemovedEvent.php │ │ │ └── ComponentWasUpdatedEvent.php │ │ ├── Subscriber │ │ │ ├── SubscriberEventInterface.php │ │ │ ├── SubscriberHasVerifiedEvent.php │ │ │ ├── SubscriberHasSubscribedEvent.php │ │ │ ├── SubscriberHasUnsubscribedEvent.php │ │ │ └── SubscriberHasUpdatedSubscriptionsEvent.php │ │ └── ComponentGroup │ │ │ ├── ComponentGroupEventInterface.php │ │ │ ├── ComponentGroupWasAddedEvent.php │ │ │ ├── ComponentGroupWasRemovedEvent.php │ │ │ └── ComponentGroupWasUpdatedEvent.php │ ├── Exceptions │ │ └── ExceptionInterface.php │ ├── Commands │ │ ├── User │ │ │ ├── RemoveUserCommand.php │ │ │ ├── GenerateApiTokenCommand.php │ │ │ └── InviteTeamMemberCommand.php │ │ ├── Metric │ │ │ ├── RemoveMetricCommand.php │ │ │ └── RemoveMetricPointCommand.php │ │ ├── Invite │ │ │ └── ClaimInviteCommand.php │ │ ├── Incident │ │ │ └── RemoveIncidentCommand.php │ │ ├── Component │ │ │ └── RemoveComponentCommand.php │ │ ├── Subscriber │ │ │ ├── VerifySubscriberCommand.php │ │ │ ├── UnsubscribeSubscriberCommand.php │ │ │ └── UnsubscribeSubscriptionCommand.php │ │ └── ComponentGroup │ │ │ └── RemoveComponentGroupCommand.php │ ├── Handlers │ │ ├── Commands │ │ │ ├── User │ │ │ │ ├── RemoveUserCommandHandler.php │ │ │ │ ├── GenerateApiTokenCommandHandler.php │ │ │ │ ├── InviteTeamMemberCommandHandler.php │ │ │ │ ├── SignupUserCommandHandler.php │ │ │ │ └── AddTeamMemberCommandHandler.php │ │ │ ├── Incident │ │ │ │ └── RemoveIncidentCommandHandler.php │ │ │ ├── Metric │ │ │ │ ├── RemoveMetricCommandHandler.php │ │ │ │ └── RemoveMetricPointCommandHandler.php │ │ │ ├── Component │ │ │ │ └── RemoveComponentCommandHandler.php │ │ │ ├── Invite │ │ │ │ └── ClaimInviteCommandHandler.php │ │ │ └── Subscriber │ │ │ │ ├── UnsubscribeSubscriberCommandHandler.php │ │ │ │ ├── UnsubscribeSubscriptionCommandHandler.php │ │ │ │ └── VerifySubscriberCommandHandler.php │ │ └── Events │ │ │ └── Component │ │ │ └── CleanupComponentSubscriptionsHandler.php │ └── Middleware │ │ └── UseDatabaseTransactions.php ├── Composers │ ├── CurrentUserComposer.php │ ├── MetricsComposer.php │ └── DashboardComposer.php ├── Http │ ├── Middleware │ │ ├── SubscribersConfigured.php │ │ ├── SetupAlreadyCompleted.php │ │ ├── Acceptable.php │ │ └── ReadyForUse.php │ └── Routes │ │ ├── SetupRoutes.php │ │ └── SignupRoutes.php ├── Models │ ├── Setting.php │ └── Traits │ │ ├── SortableTrait.php │ │ └── SearchableTrait.php ├── Foundation │ ├── Providers │ │ └── ConsoleServiceProvider.php │ └── Exceptions │ │ └── Transformers │ │ └── BusTransformer.php ├── Console │ └── Kernel.php └── Presenters │ └── Traits │ └── TimestampsTrait.php ├── server.php ├── .bp-config └── options.json ├── manifest.yml ├── .env.example ├── package.json └── .travis.yml /VERSION: -------------------------------------------------------------------------------- 1 | 2.3.10 2 | -------------------------------------------------------------------------------- /.cfignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /tests -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /database/backups/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /storage/.gitignore: -------------------------------------------------------------------------------- 1 | database.sqlite 2 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /public/dist/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /bootstrap/cachet/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | node_modules 3 | phpunit.xml 4 | vendor 5 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /resources/assets/sass/modules/_well.scss: -------------------------------------------------------------------------------- 1 | .well { 2 | border-radius: 0; 3 | } 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/favicon.ico -------------------------------------------------------------------------------- /public/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/favicon.png -------------------------------------------------------------------------------- /public/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/fonts/ionicons.eot -------------------------------------------------------------------------------- /public/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/fonts/ionicons.ttf -------------------------------------------------------------------------------- /public/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/fonts/ionicons.woff -------------------------------------------------------------------------------- /public/img/cachet-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/cachet-icon.png -------------------------------------------------------------------------------- /public/img/cachet-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/cachet-logo.png -------------------------------------------------------------------------------- /public/img/cachet-logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/cachet-logo@2x.png -------------------------------------------------------------------------------- /public/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/apple-touch-icon.png -------------------------------------------------------------------------------- /public/img/favicon-high-alert.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/favicon-high-alert.ico -------------------------------------------------------------------------------- /public/img/favicon-high-alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/favicon-high-alert.png -------------------------------------------------------------------------------- /public/img/favicon-medium-alert.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/favicon-medium-alert.ico -------------------------------------------------------------------------------- /public/img/favicon-medium-alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/favicon-medium-alert.png -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | /.github export-ignore 5 | /tests export-ignore 6 | -------------------------------------------------------------------------------- /public/img/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /public/img/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /public/img/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /public/build/rev-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dist/css/all.css": "dist/css/all-2812406e36.css", 3 | "dist/js/all.js": "dist/js/all-b2c62d4294.js" 4 | } -------------------------------------------------------------------------------- /public/img/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /public/img/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /public/img/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /public/img/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /public/img/button-email--dark-grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry-community/Cachet-cf/HEAD/public/img/button-email--dark-grey.png -------------------------------------------------------------------------------- /resources/assets/sass/plugins/_sortable.scss: -------------------------------------------------------------------------------- 1 | .sortable-chosen { 2 | border: 1px solid $cachet-gray-light !important; 3 | background-color: $cachet-base-medium; 4 | } 5 | -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | compiled.php 4 | schedule-* 5 | services.php 6 | services.json 7 | events.scanned.php 8 | routes.scanned.php 9 | down 10 | -------------------------------------------------------------------------------- /resources/views/partials/about-app.blade.php: -------------------------------------------------------------------------------- 1 | @if($about_app) 2 |
3 |

{{ trans('cachet.about_this_site') }}

4 | {!! $about_app !!} 5 |
6 | @endif 7 | 8 | -------------------------------------------------------------------------------- /resources/assets/sass/partials/_wrapper.scss: -------------------------------------------------------------------------------- 1 | body.dashboard { 2 | .wrapper { 3 | width: 100%; 4 | display: table; 5 | height: 100%; 6 | table-layout: fixed; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /resources/views/emails/users/invite-html.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layout.emails') 2 | 3 | @section('content') 4 | {!! trans('cachet.users.email.invite.html', ['app_name' => $app_name, 'link' => $link]) !!} 5 | @stop 6 | -------------------------------------------------------------------------------- /resources/assets/sass/_helpers.scss: -------------------------------------------------------------------------------- 1 | .uppercase { 2 | text-transform: uppercase; 3 | } 4 | 5 | .margin-top { 6 | margin-top: 20px; 7 | } 8 | 9 | .margin-bottom { 10 | margin-bottom: 20px; 11 | } 12 | -------------------------------------------------------------------------------- /resources/views/emails/users/invite-text.blade.php: -------------------------------------------------------------------------------- 1 | {{ trans('cachet.users.email.invite.text', ['app_name' => $app_name, 'link' => $link]) }} 2 | 3 | @if($show_support) 4 | {!! trans('cachet.powered_by', ['app' => $app_name]) !!} 5 | @endif 6 | -------------------------------------------------------------------------------- /resources/views/emails/subscribers/verify-text.blade.php: -------------------------------------------------------------------------------- 1 | {{ trans('cachet.subscriber.email.verify.text', ['app_name' => $app_name, 'link' => $link]) }} 2 | 3 | @if($show_support) 4 | {!! trans('cachet.powered_by', ['app' => $app_name]) !!} 5 | @endif 6 | -------------------------------------------------------------------------------- /resources/assets/sass/modules/_pager.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | li { 8 | > a, > span { 9 | border-radius: 3px; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /resources/views/layout/clean.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | @include('dashboard.partials.head') 4 | 5 | 6 |
7 | @yield('content') 8 |
9 | 10 | 11 | -------------------------------------------------------------------------------- /resources/views/partials/crowdin.blade.php: -------------------------------------------------------------------------------- 1 | @if($app_locale === 'en-UD') 2 | 6 | 7 | @endif 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | insert_final_newline = true 10 | indent_style = space 11 | indent_size = 4 12 | trim_trailing_whitespace = true 13 | -------------------------------------------------------------------------------- /config/mail.php: -------------------------------------------------------------------------------- 1 | getConfig(); 14 | -------------------------------------------------------------------------------- /config/database.php: -------------------------------------------------------------------------------- 1 | getConfig(); 13 | -------------------------------------------------------------------------------- /resources/views/layout/dashboard.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | @include('dashboard.partials.head') 4 | 5 | 6 |
7 | @include('dashboard.partials.sidebar') 8 |
9 | @yield('content') 10 |
11 |
12 | @yield('js') 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/Bus/Events/EventInterface.php: -------------------------------------------------------------------------------- 1 | $component_name, 'component_human_status' => $component_human_status, 'app_name' => $app_name]) !!} 2 | 3 | {!! trans('cachet.subscriber.email.manage') !!} {{ $manage_link }} 4 | 5 | @if($show_support) 6 | {!! trans('cachet.powered_by', ['app' => $app_name]) !!} 7 | @endif 8 | -------------------------------------------------------------------------------- /resources/assets/sass/pages/_dashboard.scss: -------------------------------------------------------------------------------- 1 | .component-inline-update { 2 | @extend .text-right; 3 | padding-top: 8px; 4 | label { 5 | display: initial; 6 | font-weight: normal; 7 | } 8 | } 9 | 10 | .component-group-name{ 11 | font-size: 18px; 12 | padding-left: 10px; 13 | } 14 | 15 | .component-group-other{ 16 | font-size: 18px; 17 | } 18 | 19 | @import "modules/stats"; 20 | -------------------------------------------------------------------------------- /resources/views/emails/incidents/maintenance-text.blade.php: -------------------------------------------------------------------------------- 1 | {!! $name !!} 2 | 3 | {!! $status !!} 4 | {!! $text_content !!} 5 | {!! $timestamp !!} 6 | 7 | @if($has_component) 8 | ({{ $component_name }}) 9 | @endif 10 | {!! trans('cachet.subscriber.email.manage') !!} {{ $manage_link }} 11 | 12 | {!! trans('cachet.subscriber.email.unsubscribe') !!} {{ $unsubscribe_link }} 13 | 14 | @if($show_support) 15 | {!! trans('cachet.powered_by', ['app' => $app_name]) !!} 16 | @endif 17 | -------------------------------------------------------------------------------- /resources/views/emails/incidents/new-text.blade.php: -------------------------------------------------------------------------------- 1 | {!! $name !!} 2 | 3 | {!! $status !!} 4 | {!! $text_content !!} 5 | {!! $timestamp !!} 6 | 7 | @if($has_component) 8 | ({{ $component_name }}) 9 | @endif 10 | 11 | {!! trans('cachet.subscriber.email.manage') !!} {{ $manage_link }} 12 | 13 | {!! trans('cachet.subscriber.email.unsuscribe') !!} {{ $unsubscribe_link }} 14 | 15 | @if($show_support) 16 | {!! trans('cachet.powered_by', ['app' => $app_name]) !!} 17 | @endif 18 | -------------------------------------------------------------------------------- /resources/assets/sass/plugins/_animate.scss: -------------------------------------------------------------------------------- 1 | @import "./node_modules/animate-sass/animate"; 2 | 3 | body { 4 | -webkit-backface-visibility: hidden; // Addresses a small issue in webkit: http://bit.ly/NEdoDq 5 | } 6 | .animated { 7 | @include animate-prefixer(animation-duration, $base-duration); 8 | @include animate-prefixer(animation-fill-mode, both); 9 | 10 | &.hinge { 11 | @include animate-prefixer(animation-duration, $base-duration * 2); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/Bus/Events/User/UserEventInterface.php: -------------------------------------------------------------------------------- 1 | 2 | 5 |

{{ $sub_title }}

6 | 11 | 12 | -------------------------------------------------------------------------------- /app/Bus/Events/Subscriber/SubscriberEventInterface.php: -------------------------------------------------------------------------------- 1 | 5 | 8 | {{ trans('dashboard.notifications.notifications') }} 9 | 10 |
11 |
12 |

{{ trans('dashboard.notifications.notifications') }}

13 |
14 |
15 | @stop 16 | -------------------------------------------------------------------------------- /app/Bus/Exceptions/ExceptionInterface.php: -------------------------------------------------------------------------------- 1 | 18 | * @author James Brooks 19 | */ 20 | interface ExceptionInterface 21 | { 22 | // 23 | } 24 | -------------------------------------------------------------------------------- /manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: cachet 3 | env: 4 | APP_KEY: W0CUoZdiYX3I0ysuvPTw2dFC9QQ0n6lC # please change it 5 | APP_DEBUG: true 6 | APP_NAME: cachet 7 | DEFAULT_ADMIN_USERNAME: admin 8 | DEFAULT_ADMIN_PASSWORD: p@ssw0rd 9 | DEFAULT_ADMIN_EMAIL: admin@admin.com 10 | DEFAULT_ADMIN_API_KEY: YWRtaW5wQHNzdzByZGFkbWlucGFzc3dvcmQ= # please change it 11 | APP_TIMEZONE: Europe/Paris 12 | APP_LOCALE: en 13 | MAIL_ADDRESS: support@mydomain.com # set the `from` mail address 14 | USE_SSL: false # to enforce https on your app 15 | buildpack: php_buildpack 16 | services: 17 | - mysql-cachet 18 | - redis-cachet 19 | 20 | -------------------------------------------------------------------------------- /resources/views/dashboard/partials/_error.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 15 |
16 | -------------------------------------------------------------------------------- /config/cachet.php: -------------------------------------------------------------------------------- 1 | 'UTC', 24 | 25 | ]; 26 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes If Not A Folder... 9 | RewriteCond %{REQUEST_FILENAME} !-d 10 | RewriteRule ^(.*)/$ /$1 [L,R=301] 11 | 12 | # Handle Front Controller... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_FILENAME} !-f 15 | RewriteRule ^ index.php [L] 16 | 17 | # Handle Authorization Header 18 | RewriteCond %{HTTP:Authorization} . 19 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 20 | 21 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_ENV=production 2 | APP_DEBUG=false 3 | APP_URL=http://localhost 4 | APP_KEY=SomeRandomString 5 | APP_NAME=cachet 6 | 7 | DB_DRIVER=mysql 8 | DB_HOST=localhost 9 | DB_DATABASE=cachet 10 | DB_USERNAME=homestead 11 | DB_PASSWORD=secret 12 | DB_PORT=null 13 | DB_PREFIX=null 14 | 15 | CACHE_DRIVER=file 16 | SESSION_DRIVER=file 17 | QUEUE_DRIVER=sync 18 | CACHET_EMOJI=false 19 | 20 | MAIL_DRIVER=smtp 21 | MAIL_HOST=mailtrap.io 22 | MAIL_PORT=2525 23 | MAIL_USERNAME=null 24 | MAIL_PASSWORD=null 25 | MAIL_ADDRESS=null 26 | MAIL_NAME=null 27 | MAIL_ENCRYPTION=tls 28 | 29 | REDIS_HOST=null 30 | REDIS_DATABASE=null 31 | REDIS_PORT=null 32 | 33 | GITHUB_TOKEN=null 34 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/setup.php: -------------------------------------------------------------------------------- 1 | '设置', 14 | 'title' => '安装 Cachet', 15 | 'service_details' => '服务细节', 16 | 'env_setup' => '环境设置', 17 | 'status_page_setup' => '状态页面设置', 18 | 'show_support' => '您想支持Cachet么?', 19 | 'admin_account' => '管理员帐户', 20 | 'complete_setup' => '设置完成', 21 | 'completed' => 'Cachet已成功配置!', 22 | 'finish_setup' => '前往控制面板', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/zh-TW/setup.php: -------------------------------------------------------------------------------- 1 | '安裝', 14 | 'title' => '安裝 Cachet', 15 | 'service_details' => '服務詳細信息', 16 | 'env_setup' => '环境设置', 17 | 'status_page_setup' => '設置狀態頁面', 18 | 'show_support' => '您想支持Cachet么?', 19 | 'admin_account' => '管理員帳戶', 20 | 'complete_setup' => '完成安裝', 21 | 'completed' => '成功安裝 Cachet !', 22 | 'finish_setup' => '前往儀表板', 23 | ]; 24 | -------------------------------------------------------------------------------- /config/emoji.php: -------------------------------------------------------------------------------- 1 | env('GITHUB_TOKEN', null), 25 | 26 | ]; 27 | -------------------------------------------------------------------------------- /resources/lang/ko/setup.php: -------------------------------------------------------------------------------- 1 | '설치', 14 | 'title' => 'Cachet 설치', 15 | 'service_details' => '서비스 상세정보', 16 | 'env_setup' => '환경 설정', 17 | 'status_page_setup' => '상태 페이지 설정', 18 | 'show_support' => 'Cachet 에 대한 지원을 표시', 19 | 'admin_account' => '관리자 계정', 20 | 'complete_setup' => '설치 완료', 21 | 'completed' => 'Cachet 이 성공적으로 설정되었습니다.', 22 | 'finish_setup' => '대시보드로 이동', 23 | ]; 24 | -------------------------------------------------------------------------------- /app/Composers/CurrentUserComposer.php: -------------------------------------------------------------------------------- 1 | withCurrentUser(Auth::user()); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /resources/views/dashboard/partials/errors.blade.php: -------------------------------------------------------------------------------- 1 | @if ($errors->any()) 2 | @include('dashboard.partials._error', ['level' => 'danger', 'title' => Session::get('title'), 'message' => $errors->all(':message')]) 3 | @endif 4 | 5 | @if ($message = Session::get('success')) 6 | @include('dashboard.partials._error', ['level' => 'success', 'title' => Session::get('title'), 'message' => $message]) 7 | @endif 8 | 9 | @if ($message = Session::get('warning')) 10 | @include('dashboard.partials._error', ['level' => 'warning', 'title' => Session::get('title'), 'message' => $message]) 11 | @endif 12 | 13 | @if ($message = Session::get('info')) 14 | @include('dashboard.partials._error', ['level' => 'info', 'title' => Session::get('title'), 'message' => $message]) 15 | @endif 16 | -------------------------------------------------------------------------------- /resources/assets/sass/modules/_tabs.scss: -------------------------------------------------------------------------------- 1 | div[role=tabpanel] { 2 | ul.nav-tabs { 3 | border-bottom: 1px solid #d5d8d7; 4 | li { 5 | a { 6 | font-weight: 400; 7 | display: inline-block; 8 | padding: 10px 25px; 9 | border-radius: 0; 10 | font-size: 0.9em; 11 | letter-spacing: 0.01em; 12 | } 13 | } 14 | } 15 | 16 | .tab-content { 17 | border: { 18 | left: 1px solid #d5d8d7; 19 | bottom: 1px solid #d5d8d7; 20 | right: 1px solid #d5d8d7; 21 | } 22 | background-color: white; 23 | .tab-pane { 24 | padding: 10px; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /config/security.php: -------------------------------------------------------------------------------- 1 | ['(? 'セットアップ', 14 | 'title' => 'Cachetのセットアップ', 15 | 'service_details' => 'サービスの詳細情報', 16 | 'env_setup' => '環境設定', 17 | 'status_page_setup' => 'ステータスページのセットアップ', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => '管理者アカウント', 20 | 'complete_setup' => 'セットアップの完了', 21 | 'completed' => 'Cachetの設定が正常に終わりました!', 22 | 'finish_setup' => 'ダッシュボード画面に移動', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/he/setup.php: -------------------------------------------------------------------------------- 1 | 'הגדרות', 14 | 'title' => 'התקנת Cachet', 15 | 'service_details' => 'פרטי שרות', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'הגדרת עמוד מצב', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'חשבון מנהל המערכת', 20 | 'complete_setup' => 'התקנה הסתיימה', 21 | 'completed' => 'Cachet הוגדר בהצלחה!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/views/partials/schedule.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | {{ trans('cachet.incidents.scheduled') }} 5 |
6 |
7 | @foreach($scheduled_maintenance as $schedule) 8 |
9 | {{ $schedule->name }} 10 | {!! $schedule->formattedMessage !!} 11 |
12 | @endforeach 13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /resources/lang/ar/setup.php: -------------------------------------------------------------------------------- 1 | 'تنصيب', 14 | 'title' => 'إعداد Cachet', 15 | 'service_details' => 'تفاصيل الخدمة', 16 | 'env_setup' => 'إعداد البيئة', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'حساب المدير', 20 | 'complete_setup' => 'إكمال الإعداد', 21 | 'completed' => 'تم إعداد Cachet بنجاح!', 22 | 'finish_setup' => 'انتقل إلى لوحة التحكم', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/af/setup.php: -------------------------------------------------------------------------------- 1 | 'Setup', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/ca/setup.php: -------------------------------------------------------------------------------- 1 | 'Setup', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/en/setup.php: -------------------------------------------------------------------------------- 1 | 'Setup', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/fa/setup.php: -------------------------------------------------------------------------------- 1 | 'Setup', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/no/setup.php: -------------------------------------------------------------------------------- 1 | 'Setup', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Vis at du støtter Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/ro/setup.php: -------------------------------------------------------------------------------- 1 | 'Setup', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/sr/setup.php: -------------------------------------------------------------------------------- 1 | 'Setup', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/uk/setup.php: -------------------------------------------------------------------------------- 1 | 'Setup', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/views/partials/banner.blade.php: -------------------------------------------------------------------------------- 1 | @if($app_header) 2 | {!! $app_header !!} 3 | @else 4 | @if($app_banner) 5 |
6 |
7 |
8 |
9 | @if($app_domain) 10 | 11 | @else 12 | 13 | @endif 14 |
15 |
16 |
17 |
18 | @endif 19 | @endif 20 | -------------------------------------------------------------------------------- /resources/lang/sq/setup.php: -------------------------------------------------------------------------------- 1 | 'Instalimi', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator i llogarisë', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Shko tek paneli', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/tr/setup.php: -------------------------------------------------------------------------------- 1 | 'Kurulum', 14 | 'title' => 'Cachet\'i Kur', 15 | 'service_details' => 'Hizmet detayları', 16 | 'env_setup' => 'Ortam kurulumu', 17 | 'status_page_setup' => 'Durum sayfası kurulumu', 18 | 'show_support' => 'Cachet için destek ister misiniz?', 19 | 'admin_account' => 'Yönetici Hesabı', 20 | 'complete_setup' => 'Kurulumu tamamla', 21 | 'completed' => 'Cachet başarı ile ayarlandı!', 22 | 'finish_setup' => 'Gösterge paneline git', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/views/partials/component.blade.php: -------------------------------------------------------------------------------- 1 |
  • 2 | @if($component->link) 3 | {{ $component->name }} 4 | @else 5 | {{ $component->name }} 6 | @endif 7 | 8 | @if($component->description) 9 | 10 | @endif 11 | 12 |
    13 | {{ $component->human_status }} 14 |
    15 |
  • 16 | -------------------------------------------------------------------------------- /resources/lang/da/setup.php: -------------------------------------------------------------------------------- 1 | 'Opsætning', 14 | 'title' => 'Indstil Cachet', 15 | 'service_details' => 'Tjenestesdetaljer', 16 | 'env_setup' => 'Opsætning af miljø', 17 | 'status_page_setup' => 'Status side opsætning', 18 | 'show_support' => 'Vis støtte til Cachet?', 19 | 'admin_account' => 'Administratorkonto', 20 | 'complete_setup' => 'Gennemfør opsætning', 21 | 'completed' => 'Cachet er nu sat op og er klar til brug!', 22 | 'finish_setup' => 'Gå til oversigtssiden', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/fi/setup.php: -------------------------------------------------------------------------------- 1 | 'Asetukset', 14 | 'title' => 'Setup Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Sivun asetukset', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Järjestelmänvalvojantili', 20 | 'complete_setup' => 'Complete Setup', 21 | 'completed' => 'Välimuisti on konfiguroitu onnistuneesti!', 22 | 'finish_setup' => 'Siirry hallintapaneeliin', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/cs/setup.php: -------------------------------------------------------------------------------- 1 | 'Instalace', 14 | 'title' => 'Instalace Cachet', 15 | 'service_details' => 'Podrobnosti o službě', 16 | 'env_setup' => 'Nastavení prostředí', 17 | 'status_page_setup' => 'Nastavení Stavové stránky', 18 | 'show_support' => 'Zobrazit podporu pro Cachet?', 19 | 'admin_account' => 'Účet správce', 20 | 'complete_setup' => 'Dokončení instalace', 21 | 'completed' => 'Cachet byl úspěšně nakonfigurován!', 22 | 'finish_setup' => 'Přejít na řídící panel', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/nl/setup.php: -------------------------------------------------------------------------------- 1 | 'Installatie', 14 | 'title' => 'Installeer Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Omgevingsconfiguratie', 17 | 'status_page_setup' => 'Installatie statuspagina', 18 | 'show_support' => 'Steun voor Cachet tonen?', 19 | 'admin_account' => 'Beheerdersaccount', 20 | 'complete_setup' => 'Voltooi Installatie', 21 | 'completed' => 'Cachet is succesvol geconfigureerd!', 22 | 'finish_setup' => 'Ga naar het dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/el/setup.php: -------------------------------------------------------------------------------- 1 | 'Εγκατάσταση', 14 | 'title' => 'Εγκατάσταση του Cachet', 15 | 'service_details' => 'Service Details', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Status Page Setup', 18 | 'show_support' => 'Show support for Cachet?', 19 | 'admin_account' => 'Administrator Account', 20 | 'complete_setup' => 'Ολοκλήρωση εγκατάστασης', 21 | 'completed' => 'Cachet has been configured successfully!', 22 | 'finish_setup' => 'Go to dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/vi/setup.php: -------------------------------------------------------------------------------- 1 | 'Cài đặt', 14 | 'title' => 'Cài đặt Cachet', 15 | 'service_details' => 'Chi tiết DỊch vụ', 16 | 'env_setup' => 'Thiết lập môi trường', 17 | 'status_page_setup' => 'Cài đặt Trang Trạng thái', 18 | 'show_support' => 'Hiển thị hỗ trợ cho Cachet?', 19 | 'admin_account' => 'Tài khoản người quản trị', 20 | 'complete_setup' => 'Hoàn tất cài đặt', 21 | 'completed' => 'Cachet đã được cấu hình thành công!', 22 | 'finish_setup' => 'Đi đến bảng điều khiển', 23 | ]; 24 | -------------------------------------------------------------------------------- /app/Bus/Commands/User/RemoveUserCommand.php: -------------------------------------------------------------------------------- 1 | user = $user; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /resources/lang/he/pagination.php: -------------------------------------------------------------------------------- 1 | 'קודם', 26 | 'next' => 'הבא', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/pl/setup.php: -------------------------------------------------------------------------------- 1 | 'Instalacja', 14 | 'title' => 'Skonfiguruj Cachet', 15 | 'service_details' => 'Szczegóły usługi', 16 | 'env_setup' => 'Konfiguracja środowiska', 17 | 'status_page_setup' => 'Skonfiguruj stronę statusu', 18 | 'show_support' => 'Pokazać wsparcie dla Cachet?', 19 | 'admin_account' => 'Konto Administratora', 20 | 'complete_setup' => 'Zakończ instalację', 21 | 'completed' => 'Cachet został pomyślnie skonfigurowany!', 22 | 'finish_setup' => 'Przejdź do pulpitu', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/sv-SE/setup.php: -------------------------------------------------------------------------------- 1 | 'Installation', 14 | 'title' => 'Installera Cachet', 15 | 'service_details' => 'Servicedetaljer', 16 | 'env_setup' => 'Miljöinställningar', 17 | 'status_page_setup' => 'Inställningar för statussida', 18 | 'show_support' => 'Visa ditt stöd för Cachet?', 19 | 'admin_account' => 'Administrationskonto', 20 | 'complete_setup' => 'Färdigställ installationen', 21 | 'completed' => 'Cachet är färdigkonfigurerat!', 22 | 'finish_setup' => 'Gå till intrumentpanelen', 23 | ]; 24 | -------------------------------------------------------------------------------- /app/Bus/Events/Invite/InviteWasClaimedEvent.php: -------------------------------------------------------------------------------- 1 | invite = $invite; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /resources/lang/en-UD/setup.php: -------------------------------------------------------------------------------- 1 | 'crwdns258:0crwdne258:0', 14 | 'title' => 'crwdns259:0crwdne259:0', 15 | 'service_details' => 'crwdns260:0crwdne260:0', 16 | 'env_setup' => 'crwdns514:0crwdne514:0', 17 | 'status_page_setup' => 'crwdns261:0crwdne261:0', 18 | 'show_support' => 'crwdns488:0crwdne488:0', 19 | 'admin_account' => 'crwdns263:0crwdne263:0', 20 | 'complete_setup' => 'crwdns264:0crwdne264:0', 21 | 'completed' => 'crwdns291:0crwdne291:0', 22 | 'finish_setup' => 'crwdns292:0crwdne292:0', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/hu/setup.php: -------------------------------------------------------------------------------- 1 | 'Telepítés', 14 | 'title' => 'Cachet telepítése', 15 | 'service_details' => 'A szolgáltatás részletei', 16 | 'env_setup' => 'Environment Setup', 17 | 'status_page_setup' => 'Állapotoldal beállítás', 18 | 'show_support' => 'Cachet támogató link megjelenítése?', 19 | 'admin_account' => 'Adminisztrátori fiók', 20 | 'complete_setup' => 'Telepítés befejezése', 21 | 'completed' => 'A Cachet telepítése sikeresen befejeződött!', 22 | 'finish_setup' => 'Használat megkezdése', 23 | ]; 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cachet", 3 | "devDependencies": { 4 | "gulp": "~3.9.1", 5 | "laravel-elixir": "~6.0.0-9", 6 | "animate-sass": "git+https://github.com/tgdev/animate-sass.git", 7 | "autosize": "^3.0.15", 8 | "bootstrap-sass": "^3.3.6", 9 | "chart.js": "^2.2.0", 10 | "eonasdan-bootstrap-datetimepicker": "~3.1", 11 | "github-markdown-css": "^2.3.0", 12 | "ionicons": "~2.0", 13 | "jquery-minicolors": "^2.1.10", 14 | "jquery-serializeobject": "^1.0.0", 15 | "jquery-sparkline": "^2.3.2", 16 | "jquery": "~2.2", 17 | "livestamp": "git+https://github.com/mattbradley/livestampjs.git#develop", 18 | "lodash": "^4.12.0", 19 | "messenger": "git+https://github.com/HubSpot/messenger.git", 20 | "moment": "^2.13.0", 21 | "sortablejs": "^1.4.2", 22 | "sweetalert": "^1.1.3" 23 | }, 24 | "private": true 25 | } 26 | -------------------------------------------------------------------------------- /resources/lang/de/setup.php: -------------------------------------------------------------------------------- 1 | 'Installation', 14 | 'title' => 'Cachet installieren', 15 | 'service_details' => 'Servicedetails', 16 | 'env_setup' => 'Einrichtung der Systemumgebung', 17 | 'status_page_setup' => 'Statusseite einrichten', 18 | 'show_support' => 'Möchten Sie Cachet unterstützen?', 19 | 'admin_account' => 'Administrator Konto', 20 | 'complete_setup' => 'Installation abschließen', 21 | 'completed' => 'Cachet wurde erfolgreich konfiguriert!', 22 | 'finish_setup' => 'Zum Dashboard wechseln', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/ja/pagination.php: -------------------------------------------------------------------------------- 1 | '« 前へ', 26 | 'next' => '次へ »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/ko/pagination.php: -------------------------------------------------------------------------------- 1 | '« 이전', 26 | 'next' => '다음 »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/af/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 26 | 'next' => 'Next »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/da/pagination.php: -------------------------------------------------------------------------------- 1 | '« Forrige', 26 | 'next' => 'Næste »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/de/pagination.php: -------------------------------------------------------------------------------- 1 | '« Zurück', 26 | 'next' => 'Vor »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 26 | 'next' => 'Next »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/fa/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 26 | 'next' => 'Next »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/no/pagination.php: -------------------------------------------------------------------------------- 1 | '« Forrige', 26 | 'next' => 'Neste »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/pt-PT/setup.php: -------------------------------------------------------------------------------- 1 | 'Configuração', 14 | 'title' => 'Configurar o Cachet', 15 | 'service_details' => 'Detalhes do serviço', 16 | 'env_setup' => 'Configuração de Ambiente', 17 | 'status_page_setup' => 'Configuração da página de status', 18 | 'show_support' => 'Mostrar apoio ao Cachet?', 19 | 'admin_account' => 'Conta de administrador', 20 | 'complete_setup' => 'Configuração completa', 21 | 'completed' => 'Cachet foi configurado com sucesso!', 22 | 'finish_setup' => 'Ir para o painel de controle', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/ru/pagination.php: -------------------------------------------------------------------------------- 1 | '« Назад', 26 | 'next' => 'Вперёд »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/sq/pagination.php: -------------------------------------------------------------------------------- 1 | '« Mbrapa', 26 | 'next' => 'Para »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/sr/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 26 | 'next' => 'Next »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/uk/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 26 | 'next' => 'Next »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/pagination.php: -------------------------------------------------------------------------------- 1 | '« 上一个', 26 | 'next' => '下一个 »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/zh-TW/pagination.php: -------------------------------------------------------------------------------- 1 | '« 上一頁', 26 | 'next' => '下一頁 »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/ar/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 26 | 'next' => 'التالي »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/ca/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 26 | 'next' => 'Següent »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/es/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 26 | 'next' => 'Siguiente »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/fi/pagination.php: -------------------------------------------------------------------------------- 1 | '« Edellinen', 26 | 'next' => 'Seuraava »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/fr/pagination.php: -------------------------------------------------------------------------------- 1 | '« Précédent', 26 | 'next' => 'Suivant »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/hu/pagination.php: -------------------------------------------------------------------------------- 1 | '«Előző', 26 | 'next' => 'Következő »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/it/setup.php: -------------------------------------------------------------------------------- 1 | 'Installazione', 14 | 'title' => 'Installa Cachet', 15 | 'service_details' => 'Dettagli del Servizio', 16 | 'env_setup' => 'Configurazione dell\'Ambiente', 17 | 'status_page_setup' => 'Installazione della Pagina di Stato', 18 | 'show_support' => 'Mostrare supporto per Cachet?', 19 | 'admin_account' => 'Account Amministratore', 20 | 'complete_setup' => 'Installazione Completata', 21 | 'completed' => 'Cachet è stato configurato con successo!', 22 | 'finish_setup' => 'Vai alla bacheca', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/nl/pagination.php: -------------------------------------------------------------------------------- 1 | '« Vorige', 26 | 'next' => 'Volgende »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/ro/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 26 | 'next' => 'Următorul »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/tr/pagination.php: -------------------------------------------------------------------------------- 1 | '« Önceki', 26 | 'next' => 'Sonraki »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/vi/pagination.php: -------------------------------------------------------------------------------- 1 | '« Trước', 26 | 'next' => 'Tiếp theo »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /app/Bus/Commands/Metric/RemoveMetricCommand.php: -------------------------------------------------------------------------------- 1 | metric = $metric; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Commands/User/GenerateApiTokenCommand.php: -------------------------------------------------------------------------------- 1 | user = $user; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /resources/lang/cs/pagination.php: -------------------------------------------------------------------------------- 1 | '« Předchozí', 26 | 'next' => 'Následuující »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/el/pagination.php: -------------------------------------------------------------------------------- 1 | '« Προηγούμενο', 26 | 'next' => 'Επόμενο »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/es/setup.php: -------------------------------------------------------------------------------- 1 | 'Configurar', 14 | 'title' => 'Configurar Cachet', 15 | 'service_details' => 'Detalles del servicio', 16 | 'env_setup' => 'Configuracion de entorno', 17 | 'status_page_setup' => 'Configuración de la página de estado', 18 | 'show_support' => '¿Deseas mostrar tu apoyo a Cachet?', 19 | 'admin_account' => 'Cuenta de administrador', 20 | 'complete_setup' => 'Completar configuración', 21 | 'completed' => '¡Cachet se ha configurado correctamente!', 22 | 'finish_setup' => 'Ir a Panel de control', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/id/pagination.php: -------------------------------------------------------------------------------- 1 | '« Sebelumnya', 26 | 'next' => 'Selanjutnya »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/it/pagination.php: -------------------------------------------------------------------------------- 1 | '« Precedente', 26 | 'next' => 'Successiva »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/pl/pagination.php: -------------------------------------------------------------------------------- 1 | '« Poprzednia', 26 | 'next' => 'Następna »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/pt-BR/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 26 | 'next' => 'Próximo »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/pt-PT/pagination.php: -------------------------------------------------------------------------------- 1 | '« Anterior', 26 | 'next' => 'Próximo »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/ru/setup.php: -------------------------------------------------------------------------------- 1 | 'Установка', 14 | 'title' => 'Установка Cachet', 15 | 'service_details' => 'Параметры сервиса', 16 | 'env_setup' => 'Настройка окружения', 17 | 'status_page_setup' => 'Настройки статусной страницы', 18 | 'show_support' => 'Показывать, что статусная страница создана на Cachet?', 19 | 'admin_account' => 'Учетная запись администратора', 20 | 'complete_setup' => 'Завершить установку', 21 | 'completed' => 'Вы успешно настроили Cachet!', 22 | 'finish_setup' => 'Перейти в панель управления', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/sv-SE/pagination.php: -------------------------------------------------------------------------------- 1 | '« Föregående', 26 | 'next' => 'Nästa »', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /app/Bus/Commands/Invite/ClaimInviteCommand.php: -------------------------------------------------------------------------------- 1 | invite = $invite; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/User/UserWasAddedEvent.php: -------------------------------------------------------------------------------- 1 | user = $user; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /resources/lang/en-UD/pagination.php: -------------------------------------------------------------------------------- 1 | 'crwdns89:0crwdne89:0', 26 | 'next' => 'crwdns90:0crwdne90:0', 27 | 28 | ]; 29 | -------------------------------------------------------------------------------- /resources/lang/pt-BR/setup.php: -------------------------------------------------------------------------------- 1 | 'Configuração', 14 | 'title' => 'Configurar o Cachet', 15 | 'service_details' => 'Detalhes do serviço', 16 | 'env_setup' => 'Configurações do Ambiente', 17 | 'status_page_setup' => 'Configuração da página de status', 18 | 'show_support' => 'Exibir mensagem de "Feito por Cachet"?', 19 | 'admin_account' => 'Conta de administrador', 20 | 'complete_setup' => 'Configuração completa', 21 | 'completed' => 'Cachet foi configurado com sucesso!', 22 | 'finish_setup' => 'Ir para o painel de controle', 23 | ]; 24 | -------------------------------------------------------------------------------- /resources/lang/fr/setup.php: -------------------------------------------------------------------------------- 1 | 'Installation', 14 | 'title' => 'Configuration de Cachet', 15 | 'service_details' => 'Détails du service', 16 | 'env_setup' => 'Configuration de l\'environnement', 17 | 'status_page_setup' => 'Configuration de la page de statut', 18 | 'show_support' => 'Afficher votre soutien à Cachet ?', 19 | 'admin_account' => 'Compte administrateur', 20 | 'complete_setup' => 'Terminer la configuration', 21 | 'completed' => 'Cachet a été configuré avec succès !', 22 | 'finish_setup' => 'Aller au tableau de bord', 23 | ]; 24 | -------------------------------------------------------------------------------- /app/Bus/Events/User/UserWasRemovedEvent.php: -------------------------------------------------------------------------------- 1 | user = $user; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /resources/lang/id/setup.php: -------------------------------------------------------------------------------- 1 | 'Instalasi', 14 | 'title' => 'Instalasi Cachet', 15 | 'service_details' => 'Detail Layanan', 16 | 'env_setup' => 'Setup lingkungan', 17 | 'status_page_setup' => 'Penyiapan Halaman Status', 18 | 'show_support' => 'Tunjukkan dukungan untuk Cachet? Tampilkan catatan di bawah halaman yang bertaut ke situs Cachet.', 19 | 'admin_account' => 'Akun Administrator', 20 | 'complete_setup' => 'Selesaikan Instalasi', 21 | 'completed' => 'Cachet berhasil dikonfigurasi!', 22 | 'finish_setup' => 'Ke dashboard', 23 | ]; 24 | -------------------------------------------------------------------------------- /app/Bus/Commands/Incident/RemoveIncidentCommand.php: -------------------------------------------------------------------------------- 1 | incident = $incident; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/User/UserWasInvitedEvent.php: -------------------------------------------------------------------------------- 1 | invite = $invite; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /database/migrations/2015_06_10_122229_AlterTableIncidentsDropUserIdColumn.php: -------------------------------------------------------------------------------- 1 | dropColumn('user_id'); 25 | }); 26 | } 27 | 28 | /** 29 | * Reverse the migrations. 30 | */ 31 | public function down() 32 | { 33 | // 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Bus/Events/Metric/MetricWasAddedEvent.php: -------------------------------------------------------------------------------- 1 | metric = $metric; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /database/migrations/2015_06_10_122216_AlterTableComponentsDropUserIdColumn.php: -------------------------------------------------------------------------------- 1 | dropColumn('user_id'); 25 | }); 26 | } 27 | 28 | /** 29 | * Reverse the migrations. 30 | */ 31 | public function down() 32 | { 33 | // 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Bus/Events/Metric/MetricWasRemovedEvent.php: -------------------------------------------------------------------------------- 1 | metric = $metric; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /config/cors.php: -------------------------------------------------------------------------------- 1 | false, 23 | 'allowedOrigins' => ['*'], 24 | 'allowedHeaders' => ['X-Cachet-Token'], 25 | 'allowedMethods' => ['*'], 26 | 'exposedHeaders' => [], 27 | 'maxAge' => 3600, 28 | 'hosts' => [], 29 | ]; 30 | -------------------------------------------------------------------------------- /app/Bus/Commands/Component/RemoveComponentCommand.php: -------------------------------------------------------------------------------- 1 | component = $component; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Metric/MetricWasUpdatedEvent.php: -------------------------------------------------------------------------------- 1 | metric = $metric; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /resources/assets/sass/modules/_alerts.scss: -------------------------------------------------------------------------------- 1 | .alert { 2 | border-radius: 4px; 3 | background: $cachet_yellow; 4 | border: solid 2px $cachet_dark-yellow; 5 | 6 | &.alert-success { 7 | background-color: $cachet_green; 8 | border: solid 2px $cachet_dark-green; 9 | color: white; 10 | 11 | a { 12 | color: white; 13 | font-weight: bold; 14 | } 15 | } 16 | 17 | &.alert-info { 18 | background: $cachet_blue; 19 | border: solid 2px $cachet_dark-blue; 20 | color: white; 21 | 22 | a { 23 | color: white; 24 | font-weight: bold; 25 | } 26 | } 27 | 28 | &.alert-danger { 29 | background: $cachet_red; 30 | border: solid 2px $cachet_dark-red; 31 | color: white; 32 | 33 | a { 34 | color: white; 35 | font-weight: bold; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Bus/Commands/Subscriber/VerifySubscriberCommand.php: -------------------------------------------------------------------------------- 1 | subscriber = $subscriber; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Http/Middleware/SubscribersConfigured.php: -------------------------------------------------------------------------------- 1 | metricPoint = $metricPoint; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Commands/ComponentGroup/RemoveComponentGroupCommand.php: -------------------------------------------------------------------------------- 1 | group = $group; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Commands/Subscriber/UnsubscribeSubscriberCommand.php: -------------------------------------------------------------------------------- 1 | subscriber = $subscriber; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Component/ComponentWasAddedEvent.php: -------------------------------------------------------------------------------- 1 | component = $component; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Incident/IncidentWasRemovedEvent.php: -------------------------------------------------------------------------------- 1 | incident = $incident; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Incident/IncidentWasUpdatedEvent.php: -------------------------------------------------------------------------------- 1 | incident = $incident; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Incident/IncidentWasReportedEvent.php: -------------------------------------------------------------------------------- 1 | incident = $incident; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Models/Setting.php: -------------------------------------------------------------------------------- 1 | 'string', 25 | 'value' => 'string', 26 | ]; 27 | 28 | /** 29 | * The fillable properties. 30 | * 31 | * @var string[] 32 | */ 33 | protected $fillable = ['name', 'value']; 34 | 35 | /** 36 | * List of attributes that have default values. 37 | * 38 | * @var string[] 39 | */ 40 | protected $attributes = ['value' => '']; 41 | } 42 | -------------------------------------------------------------------------------- /app/Bus/Events/Component/ComponentWasRemovedEvent.php: -------------------------------------------------------------------------------- 1 | component = $component; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Component/ComponentWasUpdatedEvent.php: -------------------------------------------------------------------------------- 1 | component = $component; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Incident/MaintenanceWasScheduledEvent.php: -------------------------------------------------------------------------------- 1 | incident = $incident; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Commands/Subscriber/UnsubscribeSubscriptionCommand.php: -------------------------------------------------------------------------------- 1 | subscription = $subscription; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Metric/MetricPointWasAddedEvent.php: -------------------------------------------------------------------------------- 1 | metricPoint = $metricPoint; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/User/RemoveUserCommandHandler.php: -------------------------------------------------------------------------------- 1 | user; 30 | 31 | event(new UserWasRemovedEvent($user)); 32 | 33 | $user->delete(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Bus/Commands/User/InviteTeamMemberCommand.php: -------------------------------------------------------------------------------- 1 | 'required|array|email', 30 | ]; 31 | 32 | /** 33 | * Create a new invite team member command instance. 34 | * 35 | * @param string[] $emails 36 | * 37 | * @return void 38 | */ 39 | public function __construct(array $emails) 40 | { 41 | $this->emails = $emails; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/Http/Middleware/SetupAlreadyCompleted.php: -------------------------------------------------------------------------------- 1 | metricPoint = $metricPoint; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Metric/MetricPointWasUpdatedEvent.php: -------------------------------------------------------------------------------- 1 | metricPoint = $metricPoint; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Subscriber/SubscriberHasVerifiedEvent.php: -------------------------------------------------------------------------------- 1 | subscriber = $subscriber; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Middleware/UseDatabaseTransactions.php: -------------------------------------------------------------------------------- 1 | 21 | */ 22 | class UseDatabaseTransactions 23 | { 24 | /** 25 | * Handle the current command in the pipeline. 26 | * 27 | * @param mixed $command 28 | * @param \Closure $next 29 | * 30 | * @return bool 31 | */ 32 | public function handle($command, Closure $next) 33 | { 34 | return DB::transaction(function () use ($command, $next) { 35 | return $next($command); 36 | }); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Bus/Events/Subscriber/SubscriberHasSubscribedEvent.php: -------------------------------------------------------------------------------- 1 | subscriber = $subscriber; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/ComponentGroup/ComponentGroupWasAddedEvent.php: -------------------------------------------------------------------------------- 1 | group = $group; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/ComponentGroup/ComponentGroupWasRemovedEvent.php: -------------------------------------------------------------------------------- 1 | group = $group; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/ComponentGroup/ComponentGroupWasUpdatedEvent.php: -------------------------------------------------------------------------------- 1 | group = $group; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Events/Subscriber/SubscriberHasUnsubscribedEvent.php: -------------------------------------------------------------------------------- 1 | subscriber = $subscriber; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/Incident/RemoveIncidentCommandHandler.php: -------------------------------------------------------------------------------- 1 | incident; 29 | 30 | event(new IncidentWasRemovedEvent($incident)); 31 | 32 | $incident->delete(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/User/GenerateApiTokenCommandHandler.php: -------------------------------------------------------------------------------- 1 | user; 29 | 30 | $user->api_key = User::generateApiKey(); 31 | $user->save(); 32 | 33 | //event(new GeneratedApiTokenEvent($user)); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/Metric/RemoveMetricCommandHandler.php: -------------------------------------------------------------------------------- 1 | metric; 30 | 31 | event(new MetricWasRemovedEvent($metric)); 32 | 33 | $metric->delete(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/Component/RemoveComponentCommandHandler.php: -------------------------------------------------------------------------------- 1 | component; 29 | 30 | event(new ComponentWasRemovedEvent($component)); 31 | 32 | $component->delete(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/Composers/MetricsComposer.php: -------------------------------------------------------------------------------- 1 | orderBy('order')->orderBy('id')->get(); 32 | } 33 | 34 | $view->withDisplayMetrics($displayMetrics) 35 | ->withMetrics($metrics); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Http/Middleware/Acceptable.php: -------------------------------------------------------------------------------- 1 | accepts($type ?: 'application/json')) { 32 | throw new NotAcceptableHttpException(); 33 | } 34 | 35 | return $next($request); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/Invite/ClaimInviteCommandHandler.php: -------------------------------------------------------------------------------- 1 | invite; 30 | 31 | $invite->claimed_at = Carbon::now(); 32 | $invite->save(); 33 | 34 | event(new InviteWasClaimedEvent($invite)); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /resources/views/single-incident.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layout.master') 2 | 3 | @section('bodyClass', 'no-padding') 4 | 5 | @section('outer-content') 6 | @include('partials.nav') 7 | @stop 8 | 9 | @section('content') 10 |

    {{ formatted_date($incident->created_at) }}

    11 | 12 |
    13 |
    14 |
    15 |
    16 |
    17 |
    18 | 19 |
    20 |
    21 |
    22 | @include('partials.incident', ['incident' => $incident, 'with_link' => false]) 23 |
    24 |
    25 |
    26 |
    27 |
    28 | @stop 29 | -------------------------------------------------------------------------------- /database/migrations/2015_01_09_083419_AlterTableUsersAdd2FA.php: -------------------------------------------------------------------------------- 1 | string('google_2fa_secret')->nullable()->after('remember_token'); 25 | }); 26 | } 27 | 28 | /** 29 | * Reverse the migrations. 30 | */ 31 | public function down() 32 | { 33 | Schema::table('users', function (Blueprint $table) { 34 | $table->dropColumn('google_2fa_secret'); 35 | }); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /database/migrations/2015_01_05_201324_CreateComponentGroupsTable.php: -------------------------------------------------------------------------------- 1 | engine = 'InnoDB'; 25 | 26 | $table->increments('id'); 27 | $table->string('name'); 28 | $table->timestamps(); 29 | }); 30 | } 31 | 32 | /** 33 | * Reverse the migrations. 34 | */ 35 | public function down() 36 | { 37 | Schema::drop('component_groups'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /database/migrations/2016_06_05_091615_create_cache_table.php: -------------------------------------------------------------------------------- 1 | string('key')->unique(); 27 | $table->text('value'); 28 | $table->integer('expiration'); 29 | }); 30 | } 31 | 32 | /** 33 | * Reverse the migrations. 34 | * 35 | * @return void 36 | */ 37 | public function down() 38 | { 39 | Schema::drop('cache'); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /database/migrations/2015_01_05_203014_CreateSettingsTable.php: -------------------------------------------------------------------------------- 1 | engine = 'InnoDB'; 25 | 26 | $table->increments('id'); 27 | $table->string('name'); 28 | $table->longText('value'); 29 | $table->timestamps(); 30 | }); 31 | } 32 | 33 | /** 34 | * Reverse the migrations. 35 | */ 36 | public function down() 37 | { 38 | Schema::drop('settings'); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /database/migrations/2015_02_28_214642_UpdateIncidentsAddScheduledAt.php: -------------------------------------------------------------------------------- 1 | timestamp('scheduled_at')->after('user_id')->nullable()->default(null); 25 | }); 26 | } 27 | 28 | /** 29 | * Reverse the migrations. 30 | */ 31 | public function down() 32 | { 33 | Schema::table('incidents', function (Blueprint $table) { 34 | $table->dropColumn('scheduled_at'); 35 | }); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/Metric/RemoveMetricPointCommandHandler.php: -------------------------------------------------------------------------------- 1 | metricPoint; 30 | 31 | event(new MetricPointWasRemovedEvent($metricPoint)); 32 | 33 | $metricPoint->delete(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /resources/views/emails/subscribers/verify-html.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layout.emails') 2 | 3 | @section('content') 4 | {!! trans('cachet.subscriber.email.verify.html', ['app_name' => $app_name]) !!} 5 | 6 | 7 | 8 | 18 | 19 |
    9 | 17 |
    20 | @stop 21 | -------------------------------------------------------------------------------- /resources/assets/sass/_palette.scss: -------------------------------------------------------------------------------- 1 | // Theme colours. 2 | $cachet-base-light: #fff; 3 | $cachet-base-medium: #f0f3f4; 4 | $cachet-base-dark: #333; 5 | 6 | $cachet-primary: #7ED321; 7 | $cachet-secondary: #6DB81C; 8 | 9 | $cachet-link: #7ed321; 10 | $cachet-link-hover: #01579b; 11 | 12 | $cachet-gray-light: #e8e8e8; 13 | $cachet-gray: #999; 14 | $cachet-gray-darker: #666; 15 | 16 | $cachet-icons: #5e5e5e; 17 | 18 | // Statuses 19 | $cachet-green: $cachet-primary; 20 | $cachet-dark-green: darken($cachet-green, 10%); 21 | 22 | $cachet-blue: #3498db; 23 | $cachet-dark-blue: darken($cachet-blue, 10%); 24 | 25 | $cachet-red: #ff6f6f; 26 | $cachet-dark-red: darken($cachet-red, 10%); 27 | 28 | $cachet-teal: #0dccc0; 29 | $cachet-dark-teal: darken($cachet-teal, 10%); 30 | 31 | $cachet-yellow: #F7CA18; 32 | $cachet-dark-yellow: darken($cachet-yellow, 10%); 33 | 34 | $cachet-pink: #b23f73; 35 | $cachet-dark-pink: darken($cachet-pink, 10%); 36 | 37 | $cachet-grey: #ecf0f1; 38 | $cachet-dark-grey: darken($cachet-grey, 10%); 39 | 40 | $cachet-orange: #FF8800; 41 | $dark-orange: darken($cachet-orange, 10%); 42 | -------------------------------------------------------------------------------- /app/Composers/DashboardComposer.php: -------------------------------------------------------------------------------- 1 | withIncidentCount(Incident::notScheduled()->count()); 32 | $view->withIncidentTemplateCount(IncidentTemplate::count()); 33 | $view->withComponentCount(Component::all()->count()); 34 | $view->withSubscriberCount(Subscriber::isVerified()->count()); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /database/migrations/2015_05_19_214534_AlterTableComponentGroupsAddOrder.php: -------------------------------------------------------------------------------- 1 | integer('order')->after('name')->default(0); 25 | $table->index('order'); 26 | }); 27 | } 28 | 29 | /** 30 | * Reverse the migrations. 31 | */ 32 | public function down() 33 | { 34 | Schema::table('component_groups', function (Blueprint $table) { 35 | $table->dropColumn('order'); 36 | }); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /database/migrations/2015_05_20_073041_AlterTableIncidentsAddVisibileColumn.php: -------------------------------------------------------------------------------- 1 | boolean('visible')->after('status')->default(1); 25 | 26 | $table->index('visible'); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | */ 33 | public function down() 34 | { 35 | Schema::table('incidents', function (Blueprint $table) { 36 | $table->dropColumn('visible'); 37 | }); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /database/migrations/2015_08_02_120436_AlterTableSubscribersRemoveDeletedAt.php: -------------------------------------------------------------------------------- 1 | dropColumn('deleted_at'); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::table('subscribers', function (Blueprint $table) { 38 | $table->softDeletes(); 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/Foundation/Providers/ConsoleServiceProvider.php: -------------------------------------------------------------------------------- 1 | 21 | */ 22 | class ConsoleServiceProvider extends ServiceProvider 23 | { 24 | /** 25 | * Boot the service provider. 26 | * 27 | * @return void 28 | */ 29 | public function boot() 30 | { 31 | $subscriber = $this->app->make(CommandSubscriber::class); 32 | 33 | $this->app->events->subscribe($subscriber); 34 | } 35 | 36 | /** 37 | * Register the service provider. 38 | * 39 | * @return void 40 | */ 41 | public function register() 42 | { 43 | // 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /database/migrations/2015_01_16_083825_CreateTagsTable.php: -------------------------------------------------------------------------------- 1 | engine = 'InnoDB'; 25 | 26 | $table->increments('id'); 27 | $table->string('name'); 28 | $table->string('slug'); 29 | $table->timestamps(); 30 | 31 | $table->unique(['name', 'slug']); 32 | }); 33 | } 34 | 35 | /** 36 | * Reverse the migrations. 37 | */ 38 | public function down() 39 | { 40 | Schema::drop('tags'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/Http/Middleware/ReadyForUse.php: -------------------------------------------------------------------------------- 1 | 20 | */ 21 | trait SortableTrait 22 | { 23 | /** 24 | * Adds a sort scope. 25 | * 26 | * @param \Illuminate\Database\Eloquent\Builder $query 27 | * @param string $column 28 | * @param string $direction 29 | * 30 | * @return \Illuminate\Database\Eloquent\Builder 31 | */ 32 | public function scopeSort(Builder $query, $column, $direction) 33 | { 34 | if (!in_array($column, $this->sortable)) { 35 | return $query; 36 | } 37 | 38 | return $query->orderBy($column, $direction); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /database/migrations/2016_06_02_075012_AlterTableMetricsAddOrderColumn.php: -------------------------------------------------------------------------------- 1 | tinyInteger('order')->after('threshold')->default(0); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::table('metrics', function (Blueprint $table) { 38 | $table->dropColumn('order'); 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/Subscriber/UnsubscribeSubscriberCommandHandler.php: -------------------------------------------------------------------------------- 1 | subscriber; 30 | 31 | event(new SubscriberHasUnsubscribedEvent($subscriber)); 32 | 33 | $subscriber->delete(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/User/InviteTeamMemberCommandHandler.php: -------------------------------------------------------------------------------- 1 | emails as $email) { 30 | $invite = Invite::create([ 31 | 'email' => $email, 32 | ]); 33 | 34 | event(new UserWasInvitedEvent($invite)); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /database/migrations/2015_12_26_162258_AlterTableMetricsAddDefaultViewColumn.php: -------------------------------------------------------------------------------- 1 | tinyInteger('default_view')->unsigned()->default(1)->after('places'); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::table('metrics', function (Blueprint $table) { 38 | // 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /database/migrations/2015_05_24_210948_create_failed_jobs_table.php: -------------------------------------------------------------------------------- 1 | engine = 'InnoDB'; 25 | 26 | $table->increments('id'); 27 | $table->text('connection'); 28 | $table->text('queue'); 29 | $table->text('payload'); 30 | $table->timestamp('failed_at'); 31 | }); 32 | } 33 | 34 | /** 35 | * Reverse the migrations. 36 | */ 37 | public function down() 38 | { 39 | Schema::drop('failed_jobs'); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /resources/assets/sass/plugins/_password-strength.scss: -------------------------------------------------------------------------------- 1 | .strengthify-wrapper > * { 2 | -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 3 | filter: alpha(opacity=0); 4 | opacity: 0; 5 | -webkit-transition:all .5s ease-in-out; 6 | -moz-transition:all .5s ease-in-out; 7 | transition:all .5s ease-in-out; 8 | } 9 | 10 | .strengthify-wrapper { 11 | position: relative; 12 | } 13 | 14 | .strengthify-bg, .strengthify-container, .strengthify-wrapper, .strengthify-separator { 15 | height: 8px; 16 | } 17 | 18 | .strengthify-bg, .strengthify-container { 19 | display: block; 20 | position: absolute; 21 | width: 100%; 22 | } 23 | 24 | .strengthify-bg { 25 | background-color: #eeeeee; 26 | } 27 | 28 | .strengthify-separator { 29 | display: inline-block; 30 | position: absolute; 31 | background-color: #ffffff; 32 | width: 2px; 33 | z-index: 10; 34 | } 35 | 36 | .password-bad { 37 | background-color: $cachet-red; 38 | } 39 | 40 | .password-medium { 41 | background-color: $cachet-yellow; 42 | } 43 | 44 | .password-good { 45 | background-color: $cachet-green; 46 | } 47 | -------------------------------------------------------------------------------- /database/migrations/2015_11_03_211049_AlterTableComponentsAddEnabledColumn.php: -------------------------------------------------------------------------------- 1 | boolean('enabled')->after('group_id')->default(true); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::table('components', function (Blueprint $table) { 38 | $table->dropColumn('enabled'); 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /database/migrations/2016_04_29_061916_AlterTableSubscribersAddGlobalColumn.php: -------------------------------------------------------------------------------- 1 | boolean('global')->after('verified_at')->default(1); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::table('subscribers', function (Blueprint $table) { 38 | $table->dropColumn('global'); 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /database/migrations/2016_02_18_085210_AlterTableMetricPointsChangeValueColumn.php: -------------------------------------------------------------------------------- 1 | decimal('value', 15, 3)->change(); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::table('metric_points', function (Blueprint $table) { 38 | $table->decimal('value', 10, 3)->change(); 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/Bus/Events/Subscriber/SubscriberHasUpdatedSubscriptionsEvent.php: -------------------------------------------------------------------------------- 1 | 20 | */ 21 | final class SubscriberHasUpdatedSubscriptionsEvent implements SubscriberEventInterface 22 | { 23 | /** 24 | * The subscriber. 25 | * 26 | * @var \CachetHQ\Cachet\Models\Subscriber 27 | */ 28 | public $subscriber; 29 | 30 | /** 31 | * Create a new subscriber has updated subscriptions event instance. 32 | * 33 | * @param \CachetHQ\Cachet\Models\Subscriber $subscriber 34 | * 35 | * @return void 36 | */ 37 | public function __construct(Subscriber $subscriber) 38 | { 39 | $this->subscriber = $subscriber; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/Models/Traits/SearchableTrait.php: -------------------------------------------------------------------------------- 1 | 20 | */ 21 | trait SearchableTrait 22 | { 23 | /** 24 | * Adds a search scope. 25 | * 26 | * @param \Illuminate\Database\Eloquent\Builder $query 27 | * @param array $search 28 | * 29 | * @return \Illuminate\Database\Eloquent\Builder 30 | */ 31 | public function scopeSearch(Builder $query, array $search = []) 32 | { 33 | if (empty($search)) { 34 | return $query; 35 | } 36 | 37 | if (!array_intersect(array_keys($search), $this->searchable)) { 38 | return $query; 39 | } 40 | 41 | return $query->where($search); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /database/migrations/2015_01_05_202730_CreateMetricPointsTable.php: -------------------------------------------------------------------------------- 1 | engine = 'InnoDB'; 25 | 26 | $table->increments('id'); 27 | $table->integer('metric_id'); 28 | $table->decimal('value', 10, 3); 29 | $table->timestamps(); 30 | 31 | $table->index('metric_id'); 32 | }); 33 | } 34 | 35 | /** 36 | * Reverse the migrations. 37 | */ 38 | public function down() 39 | { 40 | Schema::drop('metric_points'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /database/migrations/2015_08_13_214123_AlterTableMetricsAddDecimalPlacesColumn.php: -------------------------------------------------------------------------------- 1 | integer('places')->unsigned()->default(2)->after('display_chart'); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::table('metrics', function (Blueprint $table) { 38 | $table->dropColumn('places'); 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /database/migrations/2015_01_16_084030_CreateComponentTagTable.php: -------------------------------------------------------------------------------- 1 | engine = 'InnoDB'; 25 | 26 | $table->increments('id'); 27 | $table->integer('component_id'); 28 | $table->integer('tag_id'); 29 | 30 | $table->index('component_id'); 31 | $table->index('tag_id'); 32 | }); 33 | } 34 | 35 | /** 36 | * Reverse the migrations. 37 | */ 38 | public function down() 39 | { 40 | Schema::drop('component_tag'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /resources/views/dashboard/partials/component.blade.php: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 |
    4 |
    5 |
    {{ $component->name }}
    6 |
    7 |
    8 | @foreach(trans('cachet.components.status') as $statusID => $status) 9 |
    10 | 14 |
    15 | @endforeach 16 |
    17 |
    18 | 19 |
    20 |
  • 21 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/Subscriber/UnsubscribeSubscriptionCommandHandler.php: -------------------------------------------------------------------------------- 1 | subscription; 30 | 31 | event(new SubscriberHasUnsubscribedEvent($subscription->subscriber)); 32 | 33 | $subscription->delete(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /database/migrations/2016_01_29_154937_AlterTableComponentGroupsAddCollapsedColumn.php: -------------------------------------------------------------------------------- 1 | boolean('collapsed')->after('order')->default(false); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::table('component_groups', function (Blueprint $table) { 38 | $table->dropColumn('collapsed'); 39 | }); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /resources/assets/sass/pages/_login.scss: -------------------------------------------------------------------------------- 1 | body.login { 2 | .form-bg { 3 | border-radius: 10px; 4 | margin: auto; 5 | margin-top: 60px; 6 | padding: 30px; 7 | width: 320px; 8 | border: 1px solid rgba(0,0,0,.1); 9 | box-shadow: 0 20px 30px rgba(0,0,0,.2); 10 | background-color: white; 11 | } 12 | 13 | .logo { 14 | margin-bottom: 30px; 15 | 16 | img { 17 | margin: 0 auto; 18 | } 19 | } 20 | 21 | .login-input { 22 | height: 45px; 23 | } 24 | 25 | i { 26 | font-size: 22px; 27 | } 28 | 29 | .btn { 30 | &.btn-white { 31 | background-color: white; 32 | transition: background-color 0.5s ease; 33 | 34 | &.btn-trans { 35 | background-color: transparent; 36 | border: 1px solid white; 37 | border-radius: 4px; 38 | color: white; 39 | 40 | &:hover { 41 | background-color: white; 42 | color: $cachet-green; 43 | } 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | php: 3 | - 7.0 4 | sudo: false 5 | install: 6 | - composer config --global github-oauth.github.com $GITHUB_TOKEN_COMPOSER 7 | - travis_retry composer install --no-interaction --no-scripts 8 | script: 9 | - echo "no script" 10 | after_success: 11 | - composer update --no-dev 12 | - zip -r cachet-cf-bundled ./* .bp-config 13 | deploy: 14 | provider: releases 15 | api_key: 16 | secure: AFC79rRSVQcC1rWNNJd3ylBxqRmZxA3rgKnZdibC9405OGOnvckZy3kOBRYhFdlIRI0mdeo414TuxQXxrMaZQC8iI67S7NdAGdc4CBhdhdIEb1kFbDcD2U4fpDH6p3QIBmQfhEoO0mqS39O9R5iNH/qS4ahFwBFedMLzTv6HyAijUlt79kogQHjKi3k0y5JJZi4mFoh67rfl/y38HJIOS16P2NEjUeLmA2gWMOGXj0QmQNPZ/0b909MP0dZzuhSreDGsaVP+byaI4SDeDX/oFkbcHntVIZYLRvkus7t+EsUgswYe3tqrxkRiQmvdrMmR0jIsv9OI9FtE9/O464+qAYizc8JxmIh5dfX/nM0y8KRI9D+uaQ8+YqQ5Q3BNe6xNWz//jLIogWi9g8yKzPMndg/zwtYvb2baXqsMuVjKCmqWMfVn64YX/pOVJJRNxhfc1mEaFOtFXN4/1xELd2/nZ1b6ZIh9IHybxvou2wtpmGpvhHwoaNMxsp4q3nYU/BNjohyLWo+lLIn9g8kqUFtyEYkKrpYQJW6TkHJhU/ABRdMMMq9U3rdxmGm1prnTtmLcEOtCRrfM/UPwJ0+pLpYECbVWeewy6VQ2xDfUBpL6Io2hj9xLKFPqz0QlrgzWCi6YsZHZ2HsmFIcizWWq1vnHrXER8ECDkVcaAl7WrC97M0Q= 17 | file: cachet-cf-bundled.zip 18 | on: 19 | tags: true 20 | all_branches: true 21 | -------------------------------------------------------------------------------- /resources/views/partials/incidents.blade.php: -------------------------------------------------------------------------------- 1 |

    {{ formatted_date($date) }}

    2 |
    3 |
    4 | @forelse($incidents as $incidentID => $incident) 5 |
    6 |
    7 |
    8 |
    9 | 10 |
    11 |
    12 |
    13 | @include('partials.incident', ['incident' => $incident, 'with_link' => true]) 14 |
    15 |
    16 |
    17 | @empty 18 |
    19 |
    20 |

    {{ trans('cachet.incidents.none') }}

    21 |
    22 |
    23 | @endforelse 24 |
    25 |
    26 | -------------------------------------------------------------------------------- /database/migrations/2016_01_09_141852_CreateSubscriptionsTable.php: -------------------------------------------------------------------------------- 1 | increments('id'); 27 | $table->integer('subscriber_id')->unsigned()->index(); 28 | $table->integer('component_id')->unsigned()->index(); 29 | $table->timestamps(); 30 | }); 31 | } 32 | 33 | /** 34 | * Reverse the migrations. 35 | * 36 | * @return void 37 | */ 38 | public function down() 39 | { 40 | Schema::drop('subscriptions'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /resources/views/emails/components/update-html.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layout.emails') 2 | 3 | @section('content') 4 | {!! trans('cachet.subscriber.email.component.html', ['component_name' => $component_name, 'component_human_status' => $component_human_status, 'app_name' => $app_name]) !!} 5 | 6 | 7 | 8 | 18 | 19 |
    9 | 17 |
    20 | @stop 21 | -------------------------------------------------------------------------------- /database/migrations/2015_01_05_202446_CreateIncidentTemplatesTable.php: -------------------------------------------------------------------------------- 1 | engine = 'InnoDB'; 25 | 26 | $table->increments('id'); 27 | $table->string('name'); 28 | $table->string('slug'); 29 | $table->longText('template'); 30 | $table->timestamps(); 31 | $table->softDeletes(); 32 | }); 33 | } 34 | 35 | /** 36 | * Reverse the migrations. 37 | */ 38 | public function down() 39 | { 40 | Schema::drop('incident_templates'); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /resources/views/subscribe/subscribe.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layout.master') 2 | 3 | @section('content') 4 |
    5 |

    6 |
    7 | 8 |
    9 | 10 | @include('dashboard.partials.errors') 11 | 12 |
    13 |
    14 |
    15 |
    16 |

    {{ trans('cachet.subscriber.subscribe') }}

    17 |
    18 |
    19 |
    20 | 21 |
    22 | 23 |
    24 | 25 |
    26 |
    27 |
    28 |
    29 |
    30 | @stop 31 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/User/SignupUserCommandHandler.php: -------------------------------------------------------------------------------- 1 | $command->username, 31 | 'password' => $command->password, 32 | 'email' => $command->email, 33 | 'level' => User::LEVEL_USER, 34 | ]); 35 | 36 | event(new UserWasAddedEvent($user)); 37 | 38 | return $user; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /database/migrations/2015_10_31_211944_CreateInvitesTable.php: -------------------------------------------------------------------------------- 1 | engine = 'InnoDB'; 27 | 28 | $table->increments('id'); 29 | $table->string('code')->unique(); 30 | $table->string('email'); 31 | $table->timestamp('claimed_at')->nullable(); 32 | $table->timestamps(); 33 | }); 34 | } 35 | 36 | /** 37 | * Reverse the migrations. 38 | * 39 | * @return void 40 | */ 41 | public function down() 42 | { 43 | Schema::drop('invites'); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/Subscriber/VerifySubscriberCommandHandler.php: -------------------------------------------------------------------------------- 1 | subscriber; 31 | 32 | // Mark the subscriber as verified. 33 | $subscriber->verified_at = Carbon::now(); 34 | $subscriber->save(); 35 | 36 | event(new SubscriberHasVerifiedEvent($subscriber)); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Events/Component/CleanupComponentSubscriptionsHandler.php: -------------------------------------------------------------------------------- 1 | 22 | */ 23 | class CleanupComponentSubscriptionsHandler 24 | { 25 | /** 26 | * Handle the event. 27 | * 28 | * @param \CachetHQ\Cachet\Bus\Events\Component\ComponentWasRemovedEvent $event 29 | * 30 | * @return void 31 | */ 32 | public function handle(ComponentWasRemovedEvent $event) 33 | { 34 | $component = $event->component; 35 | $subscription = Subscription::forComponent($component->id); 36 | 37 | // Cleanup the subscriptions. 38 | $subscription->delete(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('queue:work --sleep=3 --tries=3')->everyMinute(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/Foundation/Exceptions/Transformers/BusTransformer.php: -------------------------------------------------------------------------------- 1 | 23 | */ 24 | class BusTransformer implements TransformerInterface 25 | { 26 | /** 27 | * Transform the provided exception. 28 | * 29 | * @param \Exception $exception 30 | * 31 | * @return \Exception 32 | */ 33 | public function transform(Exception $exception) 34 | { 35 | if ($exception instanceof ExceptionInterface) { 36 | $exception = new BadRequestHttpException($exception->getMessage()); 37 | } 38 | 39 | return $exception; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/Http/Routes/SetupRoutes.php: -------------------------------------------------------------------------------- 1 | 20 | * @author Graham Campbell 21 | */ 22 | class SetupRoutes 23 | { 24 | /** 25 | * Define the setup routes. 26 | * 27 | * @param \Illuminate\Contracts\Routing\Registrar $router 28 | * 29 | * @return void 30 | */ 31 | public function map(Registrar $router) 32 | { 33 | $router->group(['middleware' => ['web', 'setup']], function (Registrar $router) { 34 | $router->get('setup', 'SetupController@getIndex'); 35 | $router->post('setup/step1', 'SetupController@postStep1'); 36 | $router->post('setup/step2', 'SetupController@postStep2'); 37 | $router->post('setup/step3', 'SetupController@postStep3'); 38 | }); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/Bus/Handlers/Commands/User/AddTeamMemberCommandHandler.php: -------------------------------------------------------------------------------- 1 | $command->username, 31 | 'password' => $command->password, 32 | 'email' => $command->email, 33 | 'level' => $command->level, 34 | ]); 35 | 36 | event(new UserWasAddedEvent($user)); 37 | 38 | return $user; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/Http/Routes/SignupRoutes.php: -------------------------------------------------------------------------------- 1 | 20 | */ 21 | class SignupRoutes 22 | { 23 | /** 24 | * Define the signup routes. 25 | * 26 | * @param \Illuminate\Contracts\Routing\Registrar $router 27 | * 28 | * @return void 29 | */ 30 | public function map(Registrar $router) 31 | { 32 | $router->group(['middleware' => ['web', 'ready', 'guest'], 'as' => 'signup.'], function (Registrar $router) { 33 | $router->get('signup/invite/{code}', [ 34 | 'as' => 'invite', 35 | 'uses' => 'SignupController@getSignup', 36 | ]); 37 | 38 | $router->post('signup/invite/{code}', [ 39 | 'uses' => 'SignupController@postSignup', 40 | ]); 41 | }); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/Presenters/Traits/TimestampsTrait.php: -------------------------------------------------------------------------------- 1 | make($this->wrappedObject->created_at)->toDateTimeString(); 26 | } 27 | 28 | /** 29 | * Present formatted date time. 30 | * 31 | * @return string 32 | */ 33 | public function updated_at() 34 | { 35 | return app(DateFactory::class)->make($this->wrappedObject->updated_at)->toDateTimeString(); 36 | } 37 | 38 | /** 39 | * Present formatted date time. 40 | * 41 | * @return string 42 | */ 43 | public function deleted_at() 44 | { 45 | return app(DateFactory::class)->make($this->wrappedObject->deleted_at)->toDateTimeString(); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /config/css-inliner.php: -------------------------------------------------------------------------------- 1 | true, 28 | 29 | /* 30 | |-------------------------------------------------------------------------- 31 | | Remove classes 32 | |-------------------------------------------------------------------------- 33 | | 34 | | Settings this to false disables the removal of class attributes from 35 | | your html elements (do not enable this if you use media queries) 36 | | 37 | */ 38 | 39 | 'strip-classes' => true, 40 | 41 | ]; 42 | --------------------------------------------------------------------------------