Compare commits

...

47 Commits

Author SHA1 Message Date
James Brooks
f5a9941903 Update deps again 2017-07-17 21:49:42 +01:00
James Brooks
52b7bf74b9 Update version 2017-07-17 21:46:30 +01:00
James Brooks
6a59d5ac4d Update deps 2017-07-17 21:44:45 +01:00
James Brooks
19b7b0c3b2 Require predis/predis. Fixes #2611 2017-07-17 21:44:43 +01:00
Graham Campbell
d4507e0722 Back to dev 2017-06-28 23:42:10 +01:00
Graham Campbell
47bc73f9e9 Release v2.3.12 2017-06-28 23:41:31 +01:00
Graham Campbell
81fc6479d5 Revert to original travis config 2017-06-28 22:53:06 +01:00
Graham Campbell
c9ca99990c Update .travis.yml 2017-06-28 22:49:07 +01:00
Graham Campbell
e0d35d6e64 Merge branch '2.3' of https://github.com/CachetHQ/Cachet into 2.3 2017-06-28 22:39:55 +01:00
Graham Campbell
813be34f25 Upgraded dependencies 2017-06-28 22:39:41 +01:00
Graham Campbell
900723105b Update .travis.yml 2017-06-28 22:38:44 +01:00
Graham Campbell
8012a201b9 Update .travis.yml 2017-06-28 22:00:28 +01:00
Graham Campbell
706e7765e1 Update .travis.yml 2017-06-28 21:52:45 +01:00
Guido Hendriks
bcff3d0730 Improve testCreateSubscriberWithSubscriptions test case (#2487) 2017-06-28 21:45:27 +01:00
James Brooks
db5bf005bc Apply fixes from StyleCI (#2606)
[ci skip] [skip ci]
2017-06-28 20:52:41 +01:00
James Brooks
dac88efce6 Merge pull request #2601 from Daniel15/2.3-with-patches
Backport API endpoint to get system status to v2.3
2017-06-28 20:52:08 +01:00
James Brooks
38ef2630ee Add system status to /status endpoint 2017-06-20 17:18:38 +10:00
James Brooks
c215ad4111 Implement the system status api endpoint. Closes #1936 2017-06-20 17:09:03 +10:00
James Brooks
c899839a7f Back to dev 2017-04-12 23:05:32 +01:00
James Brooks
2e5e8b1545 Bump version to 2.3.11 2017-04-12 23:05:09 +01:00
James Brooks
7e556d5dba Apply fixes from StyleCI (#2486)
[ci skip] [skip ci]
2017-04-12 23:04:21 +01:00
James Brooks
331e176fbc Updated deps 2017-03-25 11:42:25 +00:00
James Brooks
bde0abe472 Fix handling of individual component subscriptions via API 2016-09-21 18:35:58 +01:00
James Brooks
f2bf2eff68 Test creating a subscriber returns subscriptions 2016-09-21 18:17:22 +01:00
James Brooks
50ab96fc4f Load subscriptions when creating a subscriber 2016-09-21 18:16:08 +01:00
James Brooks
3cbee1302e Update deps 2016-09-21 18:08:56 +01:00
Graham Campbell
8d74923e3f Back to dev 2016-08-11 12:16:50 +01:00
Graham Campbell
dbf6fe528c Release v2.3.10 2016-08-11 12:16:14 +01:00
Graham Campbell
2a9d1b4897 Backport new command tests 2016-08-11 12:09:28 +01:00
Graham Campbell
c2192d7ef7 Backport readme changes 2016-08-11 12:03:28 +01:00
Graham Campbell
1b580360ac Updated deps 2016-08-10 21:04:17 +01:00
James Brooks
15407ad9a3 Remove dump and die 2016-08-10 20:28:32 +01:00
James Brooks
14127de3ca Back to dev 2016-08-07 22:05:34 +01:00
James Brooks
57988f0009 Release v2.3.9 2016-08-07 22:05:16 +01:00
Graham Campbell
7ac7344b5e Updated dep 2016-08-07 22:01:00 +01:00
James Brooks
472dcfe85a Merge pull request #2036 from CachetHQ/analysis-8KggM3
Applied fixes from StyleCI

[ci skip] [skip ci]
2016-08-07 21:10:17 +01:00
James Brooks
77409abc5a Applied fixes from StyleCI
[ci skip] [skip ci]
2016-08-07 16:10:12 -04:00
James Brooks
7548ae7e58 Disable fixedStepSize 2016-08-07 21:09:47 +01:00
James Brooks
074d3457c6 Fix Italian translation issues. Closes #2034 2016-08-07 19:45:13 +01:00
James Brooks
205748b182 Improve metric labels 2016-08-07 19:22:19 +01:00
James Brooks
1f4bee67d6 Back to dev 2016-08-05 07:52:10 +01:00
James Brooks
2f0df5ab7b Bump version 2016-08-05 07:51:44 +01:00
James Brooks
8fe75f7112 Update deps 2016-08-05 07:51:25 +01:00
Graham Campbell
b3ee389ca5 Merge pull request #2021 from CachetHQ/require-xml
Require the ext-xml extension
2016-08-02 11:13:29 +01:00
James Brooks
a40bfd12b7 Removed blank line 2016-08-02 11:02:31 +01:00
James Brooks
8d86c5e072 Ignore SQLite databases when backing up the db 2016-08-02 11:00:39 +01:00
James Brooks
20ca9ceade Require the ext-xml extension 2016-08-02 10:55:33 +01:00
98 changed files with 1164 additions and 814 deletions

View File

@@ -1,13 +1,18 @@
language: php
sudo: false
dist: trusty
php:
- 5.5.9
- 5.5
- 5.6
- 7.0
- 7.1
- hhvm
sudo: false
before_install: cp .env.example .env
install: travis_retry composer install --no-interaction --no-scripts --prefer-source

View File

@@ -1,18 +1,14 @@
# Cachet
[![StyleCI](https://styleci.io/repos/26730195/shield)](https://styleci.io/repos/26730195/)
[![Build Status](https://img.shields.io/travis/CachetHQ/Cachet/master.svg?style=flat-square)](https://travis-ci.org/CachetHQ/Cachet)
[![Build Status](https://img.shields.io/travis/CachetHQ/Cachet/2.3.svg?style=flat-square)](https://travis-ci.org/CachetHQ/Cachet)
[![Software License](https://img.shields.io/badge/license-BSD3-brightgreen.svg?style=flat-square)](LICENSE)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/cachet/localized.svg)](http://translate.cachethq.io/project/cachet)
[![Packagist](https://img.shields.io/packagist/v/cachethq/cachet.svg?style=flat-square)](https://packagist.org/packages/cachethq/cachet)
![Screenshot](https://cachethq.io/img/main-interface.jpg)
Cachet is a beautiful and powerful open source status page system, a free replacement to services such as StatusPage.io, Status.io and others.
## Supporting Cachet
Cachet is a BSD-3-licensed open source project. If you'd like to support future development, check out the [Cachet Patreon campaign](https://patreon.com/jbrooksuk).
Cachet is a beautiful and powerful open source status page system.
## Features
@@ -25,11 +21,7 @@ Cachet is a BSD-3-licensed open source project. If you'd like to support future
- Metrics
- Cross-database support: MySQL, PostgreSQL and SQLite
- Subscriber notifications via Email
- Two factor authentication, with Google Authenticator
## Usage in production
The `master` branch of this repository is a development branch and **should not** be used in production. Instead, please check out the latest tag release.
- Two factor authentication using Google Authenticator
## Requirements
@@ -37,15 +29,15 @@ The `master` branch of this repository is a development branch and **should not*
- Apache or Nginx server
- [Composer](https://getcomposer.org)
## How to contribute
## I'm looking to contribute to this awesome project!
We're always looking for contributions that improve Cachet. It's easy to get started and you don't even need to know how to write a single line of code!
Sweet, we're always looking for contributions that improve Cachet! It's easy to get started and you don't even need to know how to write a single line of code!
### Contributing as a non-developer/non-designer
If you're one of the more linguistically talented people in the world who can speak and write more than just English, we're always looking for new [translations](#translations).
We're always looking for new [translations](#translations).
Of course bug reports, feature requests and [documentation](https://docs.cachethq.io) are always being sought after.
Of course bug reports, feature requests and [documentation](https://docs.cachethq.io) are always appreciated.
### Contributing as a designer
@@ -56,26 +48,28 @@ You'll need to install Node.js, Bower and Gulp.
To get started you can do the following:
1. Install Node.js and our dev dependencies.
2. Modify the SCSS files in `./resources/assets/sass/`
2. Make your changes to the SCSS files in `./resources/assets/sass/`
3. Run `gulp`
If you're making a lot of changes, you'll find that running `gulp watch` will really help you out!
If you're making a lot of changes, you'll find that running `gulp watch` will make life easier for you!
### Contributing as a developer
Built using [Laravel](https://laravel.com), Cachet is very easy to jump into. Have a look around you'll find it surprisingly easy!
Built using [Laravel](https://laravel.com).
These extra dependencies are required to develop Cachet:
We use these extra dependencies to develop Cachet:
- Node.js
- Gulp
- Git
Once cloned to your local machine, you'll need some demo data! Simply run `php artisan cachet:seed` to get the demo installation on the go.
Once cloned to your local machine, you'll need some demo data! Run `php artisan cachet:seed` to get the demo installation ready for action.
## Installation, Upgrades and Documentation
You can now find our documentation at [https://docs.cachethq.io](https://docs.cachethq.io).
Documentation is found at [https://docs.cachethq.io](https://docs.cachethq.io).
Here are some useful quick links:
- [Installing Cachet](https://docs.cachethq.io/docs/installing-cachet)
- [Getting started with Docker](https://docs.cachethq.io/docs/get-started-with-docker)
@@ -84,25 +78,29 @@ You can now find our documentation at [https://docs.cachethq.io](https://docs.ca
To test out the demo, you may login to the [Dashboard](https://demo.cachethq.io/dashboard) with the following:
- **Username:** test or test@test.com
- **Password:** test123
- **Username:** `test` or `test@test.com`
- **Password:** `test123`
The demo is reset every half hour.
### Release Notes
All releases are listed on the [Releases page](https://github.com/CachetHQ/Cachet/releases) of the [Cachet GitHub repository](https://github.com/CachetHQ/Cachet). On the Releases page, you can also find the release notes for each release.
We list releases on the [Releases page](https://github.com/CachetHQ/Cachet/releases) of the [Cachet GitHub repository](https://github.com/CachetHQ/Cachet). On the Releases page, you can also find the release notes for each release.
## Translations
A special thank you to our [translators](https://crowdin.com/project/cachet/activity_stream), who have allowed us to share Cachet with the world. If you'd like to contribute translations, please check out our [CrowdIn project](https://crowdin.com/project/cachet).
If you'd like to contribute translations, please check out our [CrowdIn project](https://crowdin.com/project/cachet).
> Thank you to our [translators](https://crowdin.com/project/cachet/activity_stream), who have allowed us to share Cachet with the world!
## Show your support
Cachet is a BSD-3-licensed open source project. If you'd like to support future development, check out the [Patreon campaign](https://patreon.com/jbrooksuk).
## Professional Installation Service
We offer a professional installation service. To find out more, email us at [support@alt-three.com](mailto:support@alt-three.com?Cachet Installation)
## Security Vulnerabilities
If you discover a security vulnerability within Cachet, please send an e-mail to us at support@alt-three.com. All security vulnerabilities will be promptly addressed.
## Installations
We offer a paid installation service, which starts at $99 but is subject to change, dependant on your setup and infrastructure.
To find out more, email us at support@alt-three.com
If you discover a security vulnerability within Cachet, please send an e-mail to us at support@alt-three.com. We handle all security vulnerabilities on a case-by-case basis.

View File

@@ -1 +1 @@
2.3.8-dev
2.3.13

View File

@@ -44,17 +44,17 @@ class SubscribeSubscriberCommandHandler
// Decide what to subscribe the subscriber to.
if ($subscriptions = $command->subscriptions) {
$subscriptions = Component::whereIn('id', $subscriptions);
$components = Component::whereIn('id', $subscriptions)->get();
} else {
$subscriptions = Component::all();
$components = Component::all();
}
foreach ($subscriptions as $component) {
$components->map(function ($component) use ($subscriber) {
Subscription::create([
'subscriber_id' => $subscriber->id,
'component_id' => $component->id,
]);
}
});
if ($command->verified) {
dispatch(new VerifySubscriberCommand($subscriber));
@@ -62,6 +62,8 @@ class SubscribeSubscriberCommandHandler
event(new SubscriberHasSubscribedEvent($subscriber));
}
$subscriber->load('subscriptions');
return $subscriber;
}
}

View File

@@ -13,7 +13,6 @@ namespace CachetHQ\Cachet\Bus\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriberCommand;
use CachetHQ\Cachet\Bus\Events\Subscriber\SubscriberHasUnsubscribedEvent;
use CachetHQ\Cachet\Models\Subscriber;
class UnsubscribeSubscriberCommandHandler
{

View File

@@ -106,8 +106,8 @@ class SendIncidentEmailNotificationHandler
$component = AutoPresenter::decorate($event->incident->component);
$mail = [
'email' => $subscriber->email,
'subject' => trans('cachet.subscriber.email.incident.subject', [
'email' => $subscriber->email,
'subject' => trans('cachet.subscriber.email.incident.subject', [
'status' => $incident->human_status,
'name' => $incident->name,
]),

View File

@@ -106,9 +106,9 @@ class SendMaintenanceEmailNotificationHandler
$component = AutoPresenter::decorate($event->incident->component);
$mail = [
'email' => $subscriber->email,
'subject' => trans('cachet.subscriber.email.maintenance.subject', [
'name' => $incident->name,
'email' => $subscriber->email,
'subject' => trans('cachet.subscriber.email.maintenance.subject', [
'name' => $incident->name,
]),
'has_component' => ($event->incident->component) ? true : false,
'component_name' => $component ? $component->name : null,

View File

@@ -46,9 +46,9 @@ class SendSubscriberVerificationEmailHandler
public function handle(SubscriberHasSubscribedEvent $event)
{
$mail = [
'email' => $event->subscriber->email,
'subject' => 'Confirm your subscription.',
'link' => route('subscribe.verify', ['code' => $event->subscriber->verify_code]),
'email' => $event->subscriber->email,
'subject' => 'Confirm your subscription.',
'link' => route('subscribe.verify', ['code' => $event->subscriber->verify_code]),
];
$this->mailer->queue([

View File

@@ -46,9 +46,9 @@ class SendInviteUserEmailHandler
public function handle(UserWasInvitedEvent $event)
{
$mail = [
'email' => $event->invite->email,
'subject' => 'You have been invited.',
'link' => route('signup.invite', ['code' => $event->invite->code]),
'email' => $event->invite->email,
'subject' => 'You have been invited.',
'link' => route('signup.invite', ['code' => $event->invite->code]),
];
$this->mailer->queue([

View File

@@ -11,13 +11,38 @@
namespace CachetHQ\Cachet\Composers;
use CachetHQ\Cachet\Integrations\Core\System;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\ComponentGroup;
use CachetHQ\Cachet\Models\Incident;
use Illuminate\Contracts\View\View;
/**
* This is the status page composer.
*
* @author James Brooks <james@alt-three.com>
*/
class StatusPageComposer
{
/**
* The system instance.
*
* @var \CachetHQ\Cachet\Integrations\Contracts\System
*/
protected $system;
/**
* Create a new status page composer instance.
*
* @param \CachetHQ\Cachet\Integrations\Contracts\System $system
*
* @return void
*/
public function __construct(System $system)
{
$this->system = $system;
}
/**
* Index page view composer.
*
@@ -27,42 +52,7 @@ class StatusPageComposer
*/
public function compose(View $view)
{
$totalComponents = Component::enabled()->count();
$majorOutages = Component::enabled()->status(4)->count();
$isMajorOutage = $totalComponents ? ($majorOutages / $totalComponents) >= 0.5 : false;
// Default data
$withData = [
'system_status' => 'info',
'system_message' => trans_choice('cachet.service.bad', $totalComponents),
'favicon' => 'favicon-high-alert',
];
if ($isMajorOutage) {
$withData = [
'system_status' => 'danger',
'system_message' => trans_choice('cachet.service.major', $totalComponents),
'favicon' => 'favicon-high-alert',
];
} elseif (Component::enabled()->notStatus(1)->count() === 0) {
// If all our components are ok, do we have any non-fixed incidents?
$incidents = Incident::notScheduled()->orderBy('created_at', 'desc')->get()->filter(function ($incident) {
return $incident->status > 0;
});
$incidentCount = $incidents->count();
if ($incidentCount === 0 || ($incidentCount >= 1 && (int) $incidents->first()->status === 4)) {
$withData = [
'system_status' => 'success',
'system_message' => trans_choice('cachet.service.good', $totalComponents),
'favicon' => 'favicon',
];
}
} else {
if (Component::enabled()->whereIn('status', [2, 3])->count() > 0) {
$withData['favicon'] = 'favicon-medium-alert';
}
}
$status = $this->system->getStatus();
// Scheduled maintenance code.
$scheduledMaintenance = Incident::scheduled()->orderBy('scheduled_at')->get();
@@ -72,7 +62,7 @@ class StatusPageComposer
$componentGroups = ComponentGroup::whereIn('id', $usedComponentGroups)->orderBy('order')->get();
$ungroupedComponents = Component::enabled()->where('group_id', 0)->orderBy('order')->orderBy('created_at')->get();
$view->with($withData)
$view->with($status)
->withComponentGroups($componentGroups)
->withUngroupedComponents($ungroupedComponents)
->withScheduledMaintenance($scheduledMaintenance);

View File

@@ -0,0 +1,47 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Foundation\Providers;
use CachetHQ\Cachet\Integrations\Contracts\System as SystemContract;
use CachetHQ\Cachet\Integrations\Core\System;
use Illuminate\Contracts\Container\Container;
use Illuminate\Support\ServiceProvider;
/**
* This is the integration service provider.
*
* @author James Brooks <james@alt-three.com>
*/
class IntegrationServiceProvider extends ServiceProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->registerSystem();
}
/**
* Register the system class.
*
* @return void
*/
protected function registerSystem()
{
$this->app->singleton(SystemContract::class, function (Container $app) {
return new System();
});
}
}

View File

@@ -11,6 +11,7 @@
namespace CachetHQ\Cachet\Http\Controllers\Api;
use CachetHQ\Cachet\Integrations\Contracts\System;
use CachetHQ\Cachet\Integrations\Releases;
/**
@@ -44,4 +45,19 @@ class GeneralController extends AbstractApiController
'latest' => $latest,
])->item(CACHET_VERSION);
}
/**
* Get the system status message.
*
* @return \Illuminate\Http\JsonResponse
*/
public function status()
{
$system = app()->make(System::class)->getStatus();
return $this->item([
'status' => $system['system_status'],
'message' => $system['system_message'],
]);
}
}

View File

@@ -48,11 +48,11 @@ class SetupController extends Controller
* @var string[]
*/
protected $mailDrivers = [
'smtp' => 'SMTP',
'mail' => 'Mail',
'sendmail' => 'Sendmail',
'mailgun' => 'Mailgun',
'mandrill' => 'Mandrill',
'smtp' => 'SMTP',
'mail' => 'Mail',
'sendmail' => 'Sendmail',
'mailgun' => 'Mailgun',
'mandrill' => 'Mandrill',
// 'ses' => 'Amazon SES', this will be available only if aws/aws-sdk-php is installed
'sparkpost' => 'SparkPost',
'log' => 'Log (Testing)',

View File

@@ -180,8 +180,6 @@ class SubscribeController extends Controller
try {
dispatch(new UpdateSubscriberSubscriptionCommand($subscriber, Binput::get('subscriptions')));
} catch (ValidationException $e) {
dd($e->getMessageBag());
return Redirect::route('subscribe.manage', $subscriber->verify_code)
->withInput(Binput::all())
->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('cachet.subscriber.email.failure')))

View File

@@ -33,6 +33,7 @@ class ApiRoutes
$router->group(['middleware' => ['auth.api']], function (Registrar $router) {
$router->get('ping', 'GeneralController@ping');
$router->get('version', 'GeneralController@version');
$router->get('status', 'GeneralController@status');
$router->get('components', 'ComponentController@getComponents');
$router->get('components/groups', 'ComponentGroupController@getGroups');

View File

@@ -131,7 +131,7 @@ class DashboardRoutes
$router->delete('{incident_template}/delete', 'IncidentController@deleteTemplateAction');
});
$router->group(['as' => 'subscribers.', 'prefix' => 'subscribers'], function (Registrar $router) {
$router->group(['as' => 'subscribers.', 'prefix' => 'subscribers'], function (Registrar $router) {
$router->get('/', [
'as' => 'index',
'uses' => 'SubscriberController@showSubscribers',
@@ -144,7 +144,7 @@ class DashboardRoutes
$router->delete('{subscriber}/delete', 'SubscriberController@deleteSubscriberAction');
});
$router->group(['as' => 'metrics.', 'prefix' => 'metrics'], function (Registrar $router) {
$router->group(['as' => 'metrics.', 'prefix' => 'metrics'], function (Registrar $router) {
$router->get('/', [
'as' => 'index',
'uses' => 'MetricController@showMetrics',

View File

@@ -0,0 +1,27 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Integrations\Contracts;
/**
* This is the system interface.
*
* @author James Brooks <james@alt-three.com>
*/
interface System
{
/**
* Get the entire system status.
*
* @return array
*/
public function getStatus();
}

View File

@@ -0,0 +1,70 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Integrations\Core;
use CachetHQ\Cachet\Integrations\Contracts\System as SystemContract;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
/**
* This is the core system class.
*
* @author James Brooks <james@alt-three.com>
*/
class System implements SystemContract
{
/**
* Get the entire system status.
*
* @return array
*/
public function getStatus()
{
$enabledScope = Component::enabled();
$totalComponents = Component::enabled()->count();
$majorOutages = Component::enabled()->status(4)->count();
$isMajorOutage = $totalComponents ? ($majorOutages / $totalComponents) >= 0.5 : false;
// Default data
$status = [
'system_status' => 'info',
'system_message' => trans_choice('cachet.service.bad', $totalComponents),
'favicon' => 'favicon-high-alert',
];
if ($isMajorOutage) {
$status = [
'system_status' => 'danger',
'system_message' => trans_choice('cachet.service.major', $totalComponents),
'favicon' => 'favicon-high-alert',
];
} elseif (Component::enabled()->notStatus(1)->count() === 0) {
// If all our components are ok, do we have any non-fixed incidents?
$incidents = Incident::notScheduled()->orderBy('created_at', 'desc')->get()->filter(function ($incident) {
return $incident->status > 0;
});
$incidentCount = $incidents->count();
if ($incidentCount === 0 || ($incidentCount >= 1 && (int) $incidents->first()->status === 4)) {
$status = [
'system_status' => 'success',
'system_message' => trans_choice('cachet.service.good', $totalComponents),
'favicon' => 'favicon',
];
}
} elseif (Component::enabled()->whereIn('status', [2, 3])->count() > 0) {
$status['favicon'] = 'favicon-medium-alert';
}
return $status;
}
}

View File

@@ -83,6 +83,13 @@ class CommandSubscriber
$command->line('Settings cache cleared!');
// SQLite does not backup.
if ($this->config->get('database.default') === 'sqlite') {
$command->line('Backup skipped: SQLite is not supported.');
return;
}
$command->line('Backing up database...');
try {

View File

@@ -14,7 +14,6 @@ use Illuminate\Support\Facades\Request;
use Jenssegers\Date\Date;
if (!function_exists('set_active')) {
/**
* Set active class if request is in path.
*

View File

@@ -20,14 +20,14 @@
],
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.39",
"ext-xml": "*",
"alt-three/badger": "^3.1",
"alt-three/bus": "^1.1",
"alt-three/emoji": "^3.1",
"alt-three/throttle": "^1.0",
"alt-three/validator": "^1.5",
"aws/aws-sdk-php": "^3.7",
"backup-manager/laravel": "^1.1",
"backup-manager/laravel": "dev-master#df53f9c9d8c6be5d7a2638f45d54b8fb7bc51e2b",
"barryvdh/laravel-cors": "^0.8",
"doctrine/dbal": "^2.5",
"fedeisas/laravel-mail-css-inliner": "^1.5",
@@ -38,8 +38,10 @@
"graham-campbell/markdown": "^6.1",
"guzzlehttp/guzzle": "^6.2.1",
"jenssegers/date": "^3.2",
"laravel/framework": "5.2.39",
"mccool/laravel-auto-presenter": "^4.3",
"pragmarx/google2fa": "^0.7.1",
"predis/predis": "^1.1",
"rcrowe/twigbridge": "^0.9.2",
"roumen/feed": "^2.10.4"
},
@@ -48,7 +50,7 @@
"filp/whoops": "^2.1",
"fzaninotto/faker": "^1.6",
"graham-campbell/testbench-core": "^1.1",
"mockery/mockery": "0.9.5",
"mockery/mockery": "0.9.9",
"phpunit/phpunit": "4.8.21",
"symfony/css-selector": "^3.0",
"symfony/dom-crawler": "^3.0"

1014
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -184,6 +184,7 @@ return [
'CachetHQ\Cachet\Foundation\Providers\ComposerServiceProvider',
'CachetHQ\Cachet\Foundation\Providers\ConsoleServiceProvider',
'CachetHQ\Cachet\Foundation\Providers\ConfigServiceProvider',
'CachetHQ\Cachet\Foundation\Providers\IntegrationServiceProvider',
'CachetHQ\Cachet\Foundation\Providers\EventServiceProvider',
'CachetHQ\Cachet\Foundation\Providers\RepositoryServiceProvider',
'CachetHQ\Cachet\Foundation\Providers\RouteServiceProvider',
@@ -233,8 +234,8 @@ return [
'Validator' => 'Illuminate\Support\Facades\Validator',
'View' => 'Illuminate\Support\Facades\View',
'Binput' => 'GrahamCampbell\Binput\Facades\Binput',
'Str' => 'Illuminate\Support\Str',
'Binput' => 'GrahamCampbell\Binput\Facades\Binput',
'Str' => 'Illuminate\Support\Str',
],

View File

@@ -76,25 +76,25 @@ return [
],
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', null),
'database' => env('DB_DATABASE', null),
'username' => env('DB_USERNAME', null),
'password' => env('DB_PASSWORD', null),
'port' => env('DB_PORT', '5432'),
'charset' => 'utf8',
'prefix' => env('DB_PREFIX', null),
'schema' => env('DB_SCHEMA', 'public'),
'driver' => 'pgsql',
'host' => env('DB_HOST', null),
'database' => env('DB_DATABASE', null),
'username' => env('DB_USERNAME', null),
'password' => env('DB_PASSWORD', null),
'port' => env('DB_PORT', '5432'),
'charset' => 'utf8',
'prefix' => env('DB_PREFIX', null),
'schema' => env('DB_SCHEMA', 'public'),
],
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', null),
'database' => env('DB_DATABASE', null),
'username' => env('DB_USERNAME', null),
'password' => env('DB_PASSWORD', null),
'port' => env('DB_PORT', null),
'prefix' => env('DB_PREFIX', null),
'driver' => 'sqlsrv',
'host' => env('DB_HOST', null),
'database' => env('DB_DATABASE', null),
'username' => env('DB_USERNAME', null),
'password' => env('DB_PASSWORD', null),
'port' => env('DB_PORT', null),
'prefix' => env('DB_PREFIX', null),
],
],

View File

@@ -11,35 +11,35 @@
return [
// Enabled langs
'af' => [
'af' => [
'name' => 'Afrikaans',
'subset' => 'latin',
],
'ar' => [
'ar' => [
'name' => 'Arabic',
'subset' => 'latin',
],
'ca' => [
'ca' => [
'name' => 'Catalan',
'subset' => 'latin',
],
'cs' => [
'cs' => [
'name' => 'Czech',
'subset' => 'latin,latin-ext',
],
'da' => [
'da' => [
'name' => 'Danish',
'subset' => 'latin,latin-ext',
],
'de' => [
'de' => [
'name' => 'Deutsch',
'subset' => 'latin,latin-ext',
],
'el' => [
'el' => [
'name' => 'Greek',
'subset' => 'greek,greek-ext',
],
'en' => [
'en' => [
'name' => 'English',
'subset' => 'latin',
],
@@ -47,55 +47,55 @@ return [
'name' => 'CrowdIn - InContext Localization',
'subset' => 'latin',
],
'es' => [
'es' => [
'name' => 'Español',
'subset' => 'latin,latin-ext',
],
'fa' => [
'fa' => [
'name' => 'Persian',
'subset' => 'latin',
],
'fi' => [
'fi' => [
'name' => 'Finnish',
'subset' => 'latin,latin-ext',
],
'fr' => [
'fr' => [
'name' => 'Français',
'subset' => 'latin,latin-ext',
],
'he' => [
'he' => [
'name' => 'Hebrew',
'subset' => 'latin',
],
'hu' => [
'hu' => [
'name' => 'Hungarian',
'subset' => 'latin,latin-ext',
],
'id' => [
'id' => [
'name' => 'Indonesian',
'subset' => 'latin',
],
'it' => [
'it' => [
'name' => 'Italiano',
'subset' => 'latin,latin-ext',
],
'ja' => [
'ja' => [
'name' => 'Japanese',
'subset' => 'latin',
],
'ko' => [
'ko' => [
'name' => '한글',
'subset' => 'latin',
],
'nl' => [
'nl' => [
'name' => 'Nederlands',
'subset' => 'latin,latin-ext',
],
'no' => [
'no' => [
'name' => 'Norwegian',
'subset' => 'latin,latin-ext',
],
'pl' => [
'pl' => [
'name' => 'Polski',
'subset' => 'latin,latin-ext',
],
@@ -107,19 +107,19 @@ return [
'name' => 'Portuguese, Portugal',
'subset' => 'latin,latin-ext',
],
'ro' => [
'ro' => [
'name' => 'Romanian',
'subset' => 'latin,latin-ext',
],
'ru' => [
'ru' => [
'name' => 'Русский',
'subset' => 'latin,cyrillic',
],
'sq' => [
'sq' => [
'name' => 'Albanian',
'subset' => 'latin,latin-ext',
],
'sr' => [
'sr' => [
'name' => 'Sebrian (Cyrillic)',
'subset' => 'latin,cyrillic,cyrillic-ext',
],
@@ -127,15 +127,15 @@ return [
'name' => 'Swedish',
'subset' => 'latin,latin-ext',
],
'tr' => [
'tr' => [
'name' => 'Turkish',
'subset' => 'latin,latin-ext',
],
'uk' => [
'uk' => [
'name' => 'Ukranian',
'subset' => 'latin,cyrillic-ext',
],
'vi' => [
'vi' => [
'name' => 'Vietnamese',
'subset' => 'latin,vietnamese',
],

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Identificador de lloc del Piwik',
],
'localization' => [
'site-timezone' => 'Seleccioneu el fus horari',
'site-locale' => 'Idioma del lloc',
'date-format' => 'Format de la data',
'incident-date-format' => 'Format del fus horari dels incidents',
'site-timezone' => 'Seleccioneu el fus horari',
'site-locale' => 'Idioma del lloc',
'date-format' => 'Format de la data',
'incident-date-format' => 'Format del fus horari dels incidents',
],
'security' => [
'allowed-domains' => 'Dominis permesos',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Du er blevet inviteret til :app_name status status side, Klik på linket for at oprette dig.\n:link\nTak, :app_name",
'html' => '<p>Du er blevet inviteret til :app_name status side, Klik på linket for at oprette dig.</p><p><a href=":link">:link</a></p><p>Tak, :app_name</p>',
'text' => "Du er blevet inviteret til :app_name status status side, Klik på linket for at oprette dig.\n:link\nTak, :app_name",
'html' => '<p>Du er blevet inviteret til :app_name status side, Klik på linket for at oprette dig.</p><p><a href=":link">:link</a></p><p>Tak, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Tidszone',
'site-locale' => 'Sprog på siden',
'date-format' => 'Datoformat',
'incident-date-format' => 'Datoformat for hændelser',
'site-timezone' => 'Tidszone',
'site-locale' => 'Sprog på siden',
'date-format' => 'Datoformat',
'incident-date-format' => 'Datoformat for hændelser',
],
'security' => [
'allowed-domains' => 'Tilladte domæner',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Du wurdest in das Team :app_name Status Seite eingeladen. Um dich zu registrieren klicke den Link.\n:link\nDanke, :app_name",
'html' => '<p>Du wurdest in das Team :app_name Status Seite eingeladen. Um dich zu registrieren klicke den Link.</p><p><a href=":link">:link</a></p><p>Danke, :app_name</p>',
'text' => "Du wurdest in das Team :app_name Status Seite eingeladen. Um dich zu registrieren klicke den Link.\n:link\nDanke, :app_name",
'html' => '<p>Du wurdest in das Team :app_name Status Seite eingeladen. Um dich zu registrieren klicke den Link.</p><p><a href=":link">:link</a></p><p>Danke, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s Seiten-ID',
],
'localization' => [
'site-timezone' => 'Zeitzone ihrer Seite',
'site-locale' => 'Sprache ihrer Seite',
'date-format' => 'Datumsformat',
'incident-date-format' => 'Vorfall Zeitstempel-Format',
'site-timezone' => 'Zeitzone ihrer Seite',
'site-locale' => 'Sprache ihrer Seite',
'date-format' => 'Datumsformat',
'incident-date-format' => 'Vorfall Zeitstempel-Format',
],
'security' => [
'allowed-domains' => 'Erlaubte Domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Έχετε προσκληθεί στη σελίδα ενημερώσεων της ομάδας :app_name, εγγραφείτε στον παρακάτω σύνδεσμο.\n:link\nΕυχαριστούμε, :app_name",
'html' => '<p>Έχετε προσκληθεί στη σελίδα ενημερώσεων της ομάδας :app_name, εγγραφείτε στον παρακάτω σύνδεσμο.</p><p><a href=":link">:link</a></p><p>Ευχαριστούμε, :app_name</p>',
'text' => "Έχετε προσκληθεί στη σελίδα ενημερώσεων της ομάδας :app_name, εγγραφείτε στον παρακάτω σύνδεσμο.\n:link\nΕυχαριστούμε, :app_name",
'html' => '<p>Έχετε προσκληθεί στη σελίδα ενημερώσεων της ομάδας :app_name, εγγραφείτε στον παρακάτω σύνδεσμο.</p><p><a href=":link">:link</a></p><p>Ευχαριστούμε, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => 'crwdns553:0crwdne553:0',
'html' => 'crwdns555:0crwdne555:0',
'text' => 'crwdns553:0crwdne553:0',
'html' => 'crwdns555:0crwdne555:0',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'crwdns594:0crwdne594:0',
],
'localization' => [
'site-timezone' => 'crwdns595:0crwdne595:0',
'site-locale' => 'crwdns596:0crwdne596:0',
'date-format' => 'crwdns597:0crwdne597:0',
'incident-date-format' => 'crwdns598:0crwdne598:0',
'site-timezone' => 'crwdns595:0crwdne595:0',
'site-locale' => 'crwdns596:0crwdne596:0',
'date-format' => 'crwdns597:0crwdne597:0',
'incident-date-format' => 'crwdns598:0crwdne598:0',
],
'security' => [
'allowed-domains' => 'crwdns599:0crwdne599:0',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -123,10 +123,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Te han invitado a la página de estado del equipo de :app_name, para registrarte sigue este enlace.\n:link\nGracias, :app_name",
'html' => '<p>Has sido invitado a la página de estado del equipo :app_name, para inscribirte sigue el siguiente enlace.</p><p><a href=":link">:link</a></p><p>Gracias, :app_name</p>',
'text' => "Te han invitado a la página de estado del equipo de :app_name, para registrarte sigue este enlace.\n:link\nGracias, :app_name",
'html' => '<p>Has sido invitado a la página de estado del equipo :app_name, para inscribirte sigue el siguiente enlace.</p><p><a href=":link">:link</a></p><p>Gracias, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Id de tu sitio Piwik',
],
'localization' => [
'site-timezone' => 'Zona horaria del sitio',
'site-locale' => 'Idioma del sitio',
'date-format' => 'Formato de la fecha',
'incident-date-format' => 'Formato de fecha de incidente',
'site-timezone' => 'Zona horaria del sitio',
'site-locale' => 'Idioma del sitio',
'date-format' => 'Formato de la fecha',
'incident-date-format' => 'Formato de fecha de incidente',
],
'security' => [
'allowed-domains' => 'Dominios permitidos',

View File

@@ -92,8 +92,8 @@ return [
'subject' => '[New Incident] :status: :name',
],
'component' => [
'subject' => 'به‌روزرسانی وضعیت کامپوننت',
'text' => 'کامپوننت :component یک تغییر وضعیت دارد. این کامپوننت هم‌اکنون در حالت :component_human_status قرار دارد.\n
'subject' => 'به‌روزرسانی وضعیت کامپوننت',
'text' => 'کامپوننت :component یک تغییر وضعیت دارد. این کامپوننت هم‌اکنون در حالت :component_human_status قرار دارد.\n
با تشکر، :app_name',
'html' => '<p> کامپوننت با نام :component_name یک تغییر وضعیت دارد. کامپوننت هم‌اکنون در حالت :component_human_status قرار دارد. </p><p> با تشکر :app_name </p>',
'tooltip-title' => 'Subscribe to notifications for :component_name.',
@@ -104,8 +104,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Sinut on kutsuttu ryhmään :app_name tila sivulle, rekisteröi tästä: \n:link\n. Kiitos, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "Sinut on kutsuttu ryhmään :app_name tila sivulle, rekisteröi tästä: \n:link\n. Kiitos, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik sivun tunnus',
],
'localization' => [
'site-timezone' => 'Sivuston aikavyöhyke',
'site-locale' => 'Sivuston kieli',
'date-format' => 'Päivämäärän muoto',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Sivuston aikavyöhyke',
'site-locale' => 'Sivuston kieli',
'date-format' => 'Päivämäärän muoto',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Sallittu toimialueet',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Vous avez été invité à la page de statut de l'équipe :app_name , veuillez suivre le lien suivant pour vous inscire \n:link\nMerci, :app_name",
'html' => '<p>Vous avez été invité à la page de statut de l\'équipe :app_name, veuillez suivre le lien suivant pour vous inscrire.</p><p><a href=":link">:link</a></p><p>Merci, :app_name</p>',
'text' => "Vous avez été invité à la page de statut de l'équipe :app_name , veuillez suivre le lien suivant pour vous inscire \n:link\nMerci, :app_name",
'html' => '<p>Vous avez été invité à la page de statut de l\'équipe :app_name, veuillez suivre le lien suivant pour vous inscrire.</p><p><a href=":link">:link</a></p><p>Merci, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Id du site de Piwik',
],
'localization' => [
'site-timezone' => 'Fuseau horaire du site',
'site-locale' => 'Langue du site',
'date-format' => 'Format de la date',
'incident-date-format' => 'Format de la date de l\'incident',
'site-timezone' => 'Fuseau horaire du site',
'site-locale' => 'Langue du site',
'date-format' => 'Format de la date',
'incident-date-format' => 'Format de la date de l\'incident',
],
'security' => [
'allowed-domains' => 'Domaines autorisés',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Anda diundang dalam tim Halaman Status :app_name, untuk mendaftar silakan klik tautan berikut \n:link\nTerima kasih, :app_name",
'html' => '<p>Anda diundang dalam tim Halaman Status :app_name, untuk mendaftar silakan klik tautan berikut. </p><p><a href=":link">:link</a></p><p>Terima kasih, :app_name</p>',
'text' => "Anda diundang dalam tim Halaman Status :app_name, untuk mendaftar silakan klik tautan berikut \n:link\nTerima kasih, :app_name",
'html' => '<p>Anda diundang dalam tim Halaman Status :app_name, untuk mendaftar silakan klik tautan berikut. </p><p><a href=":link">:link</a></p><p>Terima kasih, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'ID situs Piwik',
],
'localization' => [
'site-timezone' => 'Zona Waktu',
'site-locale' => 'Bahasa',
'date-format' => 'Format Tanggal',
'incident-date-format' => 'Format Waktu Insiden',
'site-timezone' => 'Zona Waktu',
'site-locale' => 'Bahasa',
'date-format' => 'Format Tanggal',
'incident-date-format' => 'Format Waktu Insiden',
],
'security' => [
'allowed-domains' => 'Domain yang dibolehkan',

View File

@@ -81,8 +81,8 @@ return [
'failure' => 'Qualcosa è andato storto con l\'iscrizione.',
'already-subscribed' => 'Non è possibile iscrivere :email perchè risulta già iscritto.',
'verify' => [
'text' => "Please confirm your email subscription to :app_name status updates.\n:link",
'html' => '<p>Please confirm your email subscription to :app_name status updates.</p>',
'text' => "Conferma l'iscrizione a :app_name. \n:link",
'html' => 'Per favore conferma la tua iscrizione tramite email su :app_name',
'button' => 'Conferma iscrizione',
],
'maintenance' => [
@@ -93,8 +93,8 @@ return [
],
'component' => [
'subject' => 'Aggiornamento di stato del componente',
'text' => 'Lo stato del componente: nome_componente è cambiato. Il nuovo stato del componente è :component_human_status.\nGrazie,: app_name',
'html' => '<p>Lo stato del componente: nome_componente è cambiato. Il nuovo stato del componente è :component_human_status.</p><p>Grazie, :app_name</p>',
'text' => 'Lo stato del componente: :component_name è cambiato. Il nuovo stato del componente è :component_human_status.\nGrazie, :app_name',
'html' => '<p>Lo stato del componente :component_name è cambiato. Il nuovo stato del componente è :component_human_status.</p><p>Grazie, :app_name</p>',
'tooltip-title' => 'Iscriviti alle notifiche di :component_name.',
],
],
@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Sei stato invitato nel team :app_name status page, per iscriverti segui il prossimo link.\n:link\nGrazie, :app_name",
'html' => '<p>Sei stato invitato nel team :app_name status page, per iscriverti segui il prossimo link.</p><p><a href=":link">:link</a></p><p>Grazie, :app_name</p>',
'text' => "Sei stato invitato nel team :app_name status page, per iscriverti segui il prossimo link.\n:link\nGrazie, :app_name",
'html' => '<p>Sei stato invitato nel team :app_name status page, per iscriverti segui il prossimo link.</p><p><a href=":link">:link</a></p><p>Grazie, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Id del sito Piwik',
],
'localization' => [
'site-timezone' => 'Fuso orario del sito',
'site-locale' => 'Lingua del sito',
'date-format' => 'Formato della data',
'incident-date-format' => 'Formato timestamp della segnalazione',
'site-timezone' => 'Fuso orario del sito',
'site-locale' => 'Lingua del sito',
'date-format' => 'Formato della data',
'incident-date-format' => 'Formato timestamp della segnalazione',
],
'security' => [
'allowed-domains' => 'Domini consentiti',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => ":app_name 팀의 상태페이지에 초대되었습니다. 가입하시려면 다음 링크를 눌러주세요.\n:link\n감사합니다, :app_name",
'html' => '<p>:app_name 팀의 상태페이지에 초대되었습니다. 가입하시려면 다음 링크를 눌러주세요.</p>
'text' => ":app_name 팀의 상태페이지에 초대되었습니다. 가입하시려면 다음 링크를 눌러주세요.\n:link\n감사합니다, :app_name",
'html' => '<p>:app_name 팀의 상태페이지에 초대되었습니다. 가입하시려면 다음 링크를 눌러주세요.</p>
<p><a href=":link">:link</a></p><p>감사합니다, :app_name</p>',
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik 사이트 id',
],
'localization' => [
'site-timezone' => '사이트 시간대',
'site-locale' => '사이트 언어',
'date-format' => '날짜 형식',
'incident-date-format' => '문제 Timestamp 형식',
'site-timezone' => '사이트 시간대',
'site-locale' => '사이트 언어',
'date-format' => '날짜 형식',
'incident-date-format' => '문제 Timestamp 형식',
],
'security' => [
'allowed-domains' => '허용된 도메인',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "U bent uitgenodigd voor team :app_name status pagina, om u in te schrijven klik op de volgende link.\n:link\nBedankt, :app_name",
'html' => '<p>U bent uitgenodigd voor team :app_name status pagina, om u in te schrijven klik op de volgende link.</p><p><a href=":link">:link</a></p><p>Bedankt, :app_name</p>',
'text' => "U bent uitgenodigd voor team :app_name status pagina, om u in te schrijven klik op de volgende link.\n:link\nBedankt, :app_name",
'html' => '<p>U bent uitgenodigd voor team :app_name status pagina, om u in te schrijven klik op de volgende link.</p><p><a href=":link">:link</a></p><p>Bedankt, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Site-id van Piwik',
],
'localization' => [
'site-timezone' => 'Website tijdzone',
'site-locale' => 'Taal van de site',
'date-format' => 'Datum formaat',
'incident-date-format' => 'Incident tijdsaanduiding',
'site-timezone' => 'Website tijdzone',
'site-locale' => 'Taal van de site',
'date-format' => 'Datum formaat',
'incident-date-format' => 'Incident tijdsaanduiding',
],
'security' => [
'allowed-domains' => 'Toegestane domeinen',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Zostałeś zaproszony do strony statusowej zespołu :app_name. Aby się zapisać, kliknij na link umieszczony dalej.\n:link\nDziękujemy, :app_name",
'html' => '<p>Zostałeś zaproszony do strony statusowej zespołu :app_name. Aby się zapisać, kliknij na link umieszczony dalej.</p><p><a href=":link">:link</a></p><p>Dziękujemy, :app_name</p>',
'text' => "Zostałeś zaproszony do strony statusowej zespołu :app_name. Aby się zapisać, kliknij na link umieszczony dalej.\n:link\nDziękujemy, :app_name",
'html' => '<p>Zostałeś zaproszony do strony statusowej zespołu :app_name. Aby się zapisać, kliknij na link umieszczony dalej.</p><p><a href=":link">:link</a></p><p>Dziękujemy, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s Seiten-ID',
],
'localization' => [
'site-timezone' => 'Zeitzone ihrer Seite',
'site-locale' => 'Sprache ihrer Seite',
'date-format' => 'Datumsformat',
'incident-date-format' => 'Vorfall Zeitstempel-Format',
'site-timezone' => 'Zeitzone ihrer Seite',
'site-locale' => 'Sprache ihrer Seite',
'date-format' => 'Datumsformat',
'incident-date-format' => 'Vorfall Zeitstempel-Format',
],
'security' => [
'allowed-domains' => 'Erlaubte Domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Você foi convidado para a página de status da equipe :app_name, para se inscrever siga o próximo link.\n:link\nObrigado,: app_name",
'html' => '<p>Você foi convidado para a página de status da equipe :app_name, para se inscrever siga o seguinte link.</p> <p><a href=":link">:link</a></p> <p>Obrigado, :app_name</p>',
'text' => "Você foi convidado para a página de status da equipe :app_name, para se inscrever siga o próximo link.\n:link\nObrigado,: app_name",
'html' => '<p>Você foi convidado para a página de status da equipe :app_name, para se inscrever siga o seguinte link.</p> <p><a href=":link">:link</a></p> <p>Obrigado, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Id do site no Piwik',
],
'localization' => [
'site-timezone' => 'Fuso horário do site',
'site-locale' => 'Idioma do site',
'date-format' => 'Formato da data',
'incident-date-format' => 'Formato de Hora do Incidente',
'site-timezone' => 'Fuso horário do site',
'site-locale' => 'Idioma do site',
'date-format' => 'Formato da data',
'incident-date-format' => 'Formato de Hora do Incidente',
],
'security' => [
'allowed-domains' => 'Domínios permitidos',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Você foi convidado para a equipa :app_name página de status, para se inscrever siga o próximo link.\n:link\nObrigado, :app_name",
'html' => '<p>Foi convidado para a equipa :app_name página de status, para se inscrever siga o seguinte link.</p> <p><a href=":link">:link</a></p> <p>Obrigado, :app_name</p>',
'text' => "Você foi convidado para a equipa :app_name página de status, para se inscrever siga o próximo link.\n:link\nObrigado, :app_name",
'html' => '<p>Foi convidado para a equipa :app_name página de status, para se inscrever siga o seguinte link.</p> <p><a href=":link">:link</a></p> <p>Obrigado, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'ID do site Piwik',
],
'localization' => [
'site-timezone' => 'Fuso horário do site',
'site-locale' => 'Idioma do site',
'date-format' => 'Formato da Data',
'incident-date-format' => 'Formato da Hora do Incidente',
'site-timezone' => 'Fuso horário do site',
'site-locale' => 'Idioma do site',
'date-format' => 'Formato da Data',
'incident-date-format' => 'Formato da Hora do Incidente',
],
'security' => [
'allowed-domains' => 'Domínios permitidos',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Вас пригласили в команду управления статусной страницей :app_name, перейдите по следующей ссылке, чтобы зарегистрироваться.\n:link\nБлагодарим за внимание, :app_name",
'html' => '<p>Вас пригласили в команду управления статусной страницей :app_name, перейдите по следующей ссылке, чтобы зарегистрироваться.</p><p><a href=":link">:link</a></p><p>Благодарим за внимание, :app_name</p>',
'text' => "Вас пригласили в команду управления статусной страницей :app_name, перейдите по следующей ссылке, чтобы зарегистрироваться.\n:link\nБлагодарим за внимание, :app_name",
'html' => '<p>Вас пригласили в команду управления статусной страницей :app_name, перейдите по следующей ссылке, чтобы зарегистрироваться.</p><p><a href=":link">:link</a></p><p>Благодарим за внимание, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Идентификатор сайта в Piwik',
],
'localization' => [
'site-timezone' => 'Часовой пояс сайта',
'site-locale' => 'Язык сайта',
'date-format' => 'Формат даты',
'incident-date-format' => 'Формат даты и времени для инцидента',
'site-timezone' => 'Часовой пояс сайта',
'site-locale' => 'Язык сайта',
'date-format' => 'Формат даты',
'incident-date-format' => 'Формат даты и времени для инцидента',
],
'security' => [
'allowed-domains' => 'Разрешённые домены',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "Du har blivit inbjuden till teamet för :app_names statussida, registrera dig genom att trycka på länken.\n:link\nTack, :app_name",
'html' => '<p>Du har blivit inbjuden till teamet :app_names statussida. Registrera dig genom att trycka på <a href=":link"> den här länken</a></p> <p>Tack, :app_name</p>',
'text' => "Du har blivit inbjuden till teamet för :app_names statussida, registrera dig genom att trycka på länken.\n:link\nTack, :app_name",
'html' => '<p>Du har blivit inbjuden till teamet :app_names statussida. Registrera dig genom att trycka på <a href=":link"> den här länken</a></p> <p>Tack, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s sajt-id',
],
'localization' => [
'site-timezone' => 'Webbplatsens tidszon',
'site-locale' => 'Webbplatsspråk',
'date-format' => 'Datumformat',
'incident-date-format' => 'Händelsens tidsstämpelformat',
'site-timezone' => 'Webbplatsens tidszon',
'site-locale' => 'Webbplatsspråk',
'date-format' => 'Datumformat',
'incident-date-format' => 'Händelsens tidsstämpelformat',
],
'security' => [
'allowed-domains' => 'Tillåtna domäner',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Site timezone',
'site-locale' => 'Site language',
'date-format' => 'Date format',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'id сайту Piwik',
],
'localization' => [
'site-timezone' => 'Часовий пояс сайту',
'site-locale' => 'Мова сайту',
'date-format' => 'формат дати',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Часовий пояс сайту',
'site-locale' => 'Мова сайту',
'date-format' => 'формат дати',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
'text' => "You have been invited to the team :app_name status page, to sign up follow the next link.\n:link\nThank you, :app_name",
'html' => '<p>You have been invited to the team :app_name status page, to sign up follow the next link.</p><p><a href=":link">:link</a></p><p>Thank you, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik\'s site id',
],
'localization' => [
'site-timezone' => 'Múi giờ',
'site-locale' => 'Ngôn ngữ',
'date-format' => 'Định dạng ngày',
'incident-date-format' => 'Incident timestamp format',
'site-timezone' => 'Múi giờ',
'site-locale' => 'Ngôn ngữ',
'date-format' => 'Định dạng ngày',
'incident-date-format' => 'Incident timestamp format',
],
'security' => [
'allowed-domains' => 'Allowed domains',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "您已被邀请加入 :app_name 团队的状态页, 请点击以下链接进行注册。\n:link\n谢谢, :app_name",
'html' => '<p>您已被邀请加入 :app_name 团队的状态页, 请点击以下链接进行注册。</p><p><a href=":link">:link</a></p><p>谢谢, :app_name</p>',
'text' => "您已被邀请加入 :app_name 团队的状态页, 请点击以下链接进行注册。\n:link\n谢谢, :app_name",
'html' => '<p>您已被邀请加入 :app_name 团队的状态页, 请点击以下链接进行注册。</p><p><a href=":link">:link</a></p><p>谢谢, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik 的站点 id',
],
'localization' => [
'site-timezone' => '系统时区',
'site-locale' => '系统语言',
'date-format' => '日期格式',
'incident-date-format' => '故障的时间显示格式',
'site-timezone' => '系统时区',
'site-locale' => '系统语言',
'date-format' => '日期格式',
'incident-date-format' => '故障的时间显示格式',
],
'security' => [
'allowed-domains' => '允许的域',

View File

@@ -103,8 +103,8 @@ return [
'users' => [
'email' => [
'invite' => [
'text' => "您已被邀請加入 :app_name 團隊的狀態頁, 請點擊以下鏈接進行註冊。\n:link\n謝謝, :app_name",
'html' => '<p>您已被邀請加入 :app_name 團隊的狀態頁, 請點擊以下鏈接進行註冊。</p><p><a href=":link">:link</a></p><p>謝謝, :app_name</p>',
'text' => "您已被邀請加入 :app_name 團隊的狀態頁, 請點擊以下鏈接進行註冊。\n:link\n謝謝, :app_name",
'html' => '<p>您已被邀請加入 :app_name 團隊的狀態頁, 請點擊以下鏈接進行註冊。</p><p><a href=":link">:link</a></p><p>謝謝, :app_name</p>',
],
],
],

View File

@@ -118,10 +118,10 @@ return [
'analytics_piwik_siteid' => 'Piwik 的站點 id',
],
'localization' => [
'site-timezone' => '站點時區',
'site-locale' => '站點語言',
'date-format' => '日期格式',
'incident-date-format' => '事件的時間戳格式',
'site-timezone' => '站點時區',
'site-locale' => '站點語言',
'date-format' => '日期格式',
'incident-date-format' => '事件的時間戳格式',
],
'security' => [
'allowed-domains' => '允許的域',

View File

@@ -81,7 +81,6 @@
data: {
labels: _.keys(data),
datasets: [{
label: result.data.metric.name,
data: _.values(data),
backgroundColor: "{{ $theme_metrics }}",
borderColor: "{{ color_darken($theme_metrics, -0.1) }}",
@@ -97,7 +96,7 @@
ticks: {
beginAtZero: true,
suggestedMax: 0.1,
fixedStepSize: result.data.metric.places,
// fixedStepSize: result.data.metric.places,
callback: function(tickValue, index, ticks) {
var delta = ticks[1] - ticks[0];
@@ -126,8 +125,8 @@
},
tooltips: {
callbacks: {
afterLabel: function(tooltipItem, data) {
return " " + result.data.metric.suffix;
label: function(tooltipItem, data) {
return tooltipItem.yLabel + ' ' + result.data.metric.suffix;
}
}
}

View File

@@ -73,15 +73,20 @@ class SubscriberTest extends AbstractApiTestCase
$this->post('/api/v1/subscribers', [
'email' => 'support@alt-three.com',
'verify' => true,
'subscriptions' => [
'components' => [
1,
2,
3,
],
]);
$this->assertResponseOk();
$this->seeHeader('Content-Type', 'application/json');
$this->seeJson(['email' => 'support@alt-three.com']);
$this->seeJsonStructure(['data' => ['subscriptions' => []]]);
$data = $this->decodeResponseJson();
$this->assertCount(2, $data['data']['subscriptions']);
$this->assertEquals(1, $data['data']['subscriptions'][0]['component_id']);
$this->assertEquals(3, $data['data']['subscriptions'][1]['component_id']);
}
public function testDeleteSubscriber()

View File

@@ -0,0 +1,31 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Tests\Cachet\Foundation\Providers;
use AltThree\TestBench\ServiceProviderTrait;
use CachetHQ\Cachet\Integrations\Contracts\System;
use CachetHQ\Tests\Cachet\AbstractTestCase;
/**
* This is the integration service provider test class.
*
* @author James Brooks <james@alt-three.com>
*/
class IntegrationServiceProviderTest extends AbstractTestCase
{
use ServiceProviderTrait;
public function testSystemIsInjectable()
{
$this->assertIsInjectable(System::class);
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Tests\Cachet\Functional;
use CachetHQ\Tests\Cachet\AbstractTestCase;
use Illuminate\Contracts\Console\Kernel;
/**
* This is the app command test class.
*
* @author Graham Campbell <graham@alt-three.com>
* @author James Brooks <james@alt-three.com>
*/
class AppCommandTest extends AbstractTestCase
{
public function testInstall()
{
$this->assertSame(0, $this->app->make(Kernel::class)->call('app:install'));
}
public function testReset()
{
$this->assertSame(0, $this->app->make(Kernel::class)->call('app:reset'));
}
public function testUpdate()
{
$this->assertSame(0, $this->app->make(Kernel::class)->call('app:reset'));
}
}

View File

@@ -16,12 +16,12 @@ use Illuminate\Contracts\Console\Kernel;
use Illuminate\Foundation\Testing\DatabaseMigrations;
/**
* This is the command test class.
* This is the artisan command test class.
*
* @author Graham Campbell <graham@alt-three.com>
* @author James Brooks <james@alt-three.com>
*/
class CommandTest extends AbstractTestCase
class ArtisanCommandTest extends AbstractTestCase
{
use DatabaseMigrations;