Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
387818dbb2 | ||
|
|
5d70d244ce | ||
|
|
ddc846d959 | ||
|
|
6fb6641499 | ||
|
|
d5eb087eca | ||
|
|
fd25edb2f0 | ||
|
|
5879a2cb1a | ||
|
|
df5b9b89e6 | ||
|
|
47a5569f02 | ||
|
|
ca4a72c518 | ||
|
|
6e45b5ae88 | ||
|
|
99dbc2cd6c | ||
|
|
2f2ed53b58 | ||
|
|
7e1ead91ed | ||
|
|
28578474b9 | ||
|
|
d4e332bf55 | ||
|
|
13f0f67a7b | ||
|
|
709cac9332 | ||
|
|
e17196d4c9 | ||
|
|
80be140c1f | ||
|
|
4f9af8bca0 | ||
|
|
af3b7836ff | ||
|
|
cc4a960ea6 | ||
|
|
467d29ca11 | ||
|
|
ac1355771c | ||
|
|
c41adc1019 | ||
|
|
5b74b2d625 | ||
|
|
d7835f68ed | ||
|
|
a1f1a2b969 | ||
|
|
77394995e4 | ||
|
|
9953557497 | ||
|
|
4dc175b2be | ||
|
|
4a2fe00c89 | ||
|
|
db55283b85 | ||
|
|
5c6440e890 | ||
|
|
6b299b0a90 | ||
|
|
9b5d4aa7c4 | ||
|
|
1fdda03199 | ||
|
|
7c846d06ff | ||
|
|
e34e4381d4 | ||
|
|
b255f71958 | ||
|
|
9560b2a0dc | ||
|
|
f8491ceead |
19
.github/ISSUE_TEMPLATE
vendored
@@ -1,16 +1,8 @@
|
||||
Before submitting your issue, please make sure that you've checked all of the checkboxes below.
|
||||
Before submitting your issue, please make sure that you've checked the checkboxes below.
|
||||
|
||||
- [ ] You're running the [latest release](https://github.com/CachetHQ/Cachet/releases/latest) version of Cachet.
|
||||
- [ ] Ensure that you're running at least PHP 5.5.9, you can check this by running `php -v`
|
||||
- [ ] You've ran `rm -rf bootstrap/cache/*` from the root of your Cachet installation.
|
||||
|
||||
To help us better understand your issue, please answer the following — cheers!
|
||||
|
||||
### Your setup
|
||||
|
||||
- *What version of Cachet?*
|
||||
- *What database driver? MySQL? Postgres? SQLite?*
|
||||
- *What version of PHP?*
|
||||
- [ ] I am running the [latest release](https://github.com/CachetHQ/Cachet/releases/latest) version of Cachet.
|
||||
- [ ] I am running at least PHP 5.5.9. *You can check this by running `php -v`.*
|
||||
- [ ] I have ran `rm -rf bootstrap/cache/*`.
|
||||
|
||||
### Expected behaviour
|
||||
|
||||
@@ -23,3 +15,6 @@ To help us better understand your issue, please answer the following — cheers!
|
||||
### Steps to reproduce
|
||||
|
||||
*If your issue requires any specific steps to reproduce, please outline them here.*
|
||||
|
||||
1. First step
|
||||
2. Second step
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
[](https://styleci.io/repos/26730195/)
|
||||
[](https://travis-ci.org/CachetHQ/Cachet)
|
||||
[](LICENSE)
|
||||
[](http://translate.cachethq.io/project/cachet)
|
||||
[](http://translate.cachethq.io/project/cachet)
|
||||
[](https://packagist.org/packages/cachethq/cachet)
|
||||
|
||||

|
||||
|
||||
@@ -42,7 +42,7 @@ final class AddMetricPointCommand
|
||||
* @var string[]
|
||||
*/
|
||||
public $rules = [
|
||||
'value' => 'int',
|
||||
'value' => 'numeric',
|
||||
'created_at' => 'string',
|
||||
];
|
||||
|
||||
|
||||
@@ -46,7 +46,9 @@ class StatusPageComposer
|
||||
];
|
||||
} 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();
|
||||
$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)) {
|
||||
|
||||
@@ -16,6 +16,7 @@ use CachetHQ\Cachet\Settings\Cache;
|
||||
use CachetHQ\Cachet\Settings\Repository;
|
||||
use Exception;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Jenssegers\Date\Date;
|
||||
|
||||
/**
|
||||
* This is the config service provider class.
|
||||
@@ -34,9 +35,10 @@ class ConfigServiceProvider extends ServiceProvider
|
||||
public function boot()
|
||||
{
|
||||
$env = $this->app->environment();
|
||||
$cli = $this->app->runningInConsole();
|
||||
$repo = $this->app->make(Repository::class);
|
||||
$cache = $this->app->make(Cache::class);
|
||||
$loaded = $cache->load($env);
|
||||
$loaded = $cli ? false : $cache->load($env);
|
||||
|
||||
$this->app->terminating(function () use ($repo, $cache) {
|
||||
if ($repo->stale()) {
|
||||
@@ -45,7 +47,7 @@ class ConfigServiceProvider extends ServiceProvider
|
||||
});
|
||||
|
||||
try {
|
||||
if ($loaded === false) {
|
||||
if ($cli === false && $loaded === false) {
|
||||
$loaded = $repo->all();
|
||||
$cache->store($env, $loaded);
|
||||
}
|
||||
@@ -64,6 +66,7 @@ class ConfigServiceProvider extends ServiceProvider
|
||||
if ($appLocale = $this->app->config->get('setting.app_locale')) {
|
||||
$this->app->config->set('app.locale', $appLocale);
|
||||
$this->app->translator->setLocale($appLocale);
|
||||
Date::setLocale($appLocale);
|
||||
}
|
||||
|
||||
if ($appTimezone = $this->app->config->get('setting.app_timezone')) {
|
||||
|
||||
@@ -16,8 +16,15 @@ use CachetHQ\Cachet\Repositories\Metric\MetricRepository;
|
||||
use CachetHQ\Cachet\Repositories\Metric\MySqlRepository as MetricMySqlRepository;
|
||||
use CachetHQ\Cachet\Repositories\Metric\PgSqlRepository as MetricPgSqlRepository;
|
||||
use CachetHQ\Cachet\Repositories\Metric\SqliteRepository as MetricSqliteRepository;
|
||||
use Illuminate\Contracts\Config\Repository as ConfigRepository;
|
||||
use Illuminate\Contracts\Container\Container;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
/**
|
||||
* This is the repository service provider.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class RepositoryServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
@@ -37,15 +44,16 @@ class RepositoryServiceProvider extends ServiceProvider
|
||||
*/
|
||||
protected function registerMetricRepository()
|
||||
{
|
||||
$this->app->singleton(MetricRepository::class, function ($app) {
|
||||
$dbDriver = $app['config']->get('database.default');
|
||||
$this->app->singleton(MetricRepository::class, function (Container $app) {
|
||||
$config = $app->make(ConfigRepository::class);
|
||||
$driver = $config->get('database.default');
|
||||
|
||||
if ($dbDriver == 'mysql') {
|
||||
$repository = new MetricMySqlRepository();
|
||||
} elseif ($dbDriver == 'pgsql') {
|
||||
$repository = new MetricPgSqlRepository();
|
||||
} elseif ($dbDriver == 'sqlite') {
|
||||
$repository = new MetricSqliteRepository();
|
||||
if ($driver == 'mysql') {
|
||||
$repository = new MetricMySqlRepository($config);
|
||||
} elseif ($driver == 'pgsql') {
|
||||
$repository = new MetricPgSqlRepository($config);
|
||||
} elseif ($driver == 'sqlite') {
|
||||
$repository = new MetricSqliteRepository($config);
|
||||
}
|
||||
|
||||
$dates = $app->make(DateFactory::class);
|
||||
|
||||
@@ -11,32 +11,46 @@
|
||||
|
||||
namespace CachetHQ\Cachet\Http\Controllers\Dashboard;
|
||||
|
||||
use CachetHQ\Cachet\Bus\Commands\Component\UpdateComponentCommand;
|
||||
use CachetHQ\Cachet\Bus\Commands\ComponentGroup\UpdateComponentGroupCommand;
|
||||
use CachetHQ\Cachet\Http\Controllers\Api\AbstractApiController;
|
||||
use CachetHQ\Cachet\Models\Component;
|
||||
use CachetHQ\Cachet\Models\ComponentGroup;
|
||||
use CachetHQ\Cachet\Models\IncidentTemplate;
|
||||
use Exception;
|
||||
use GrahamCampbell\Binput\Facades\Binput;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
|
||||
|
||||
class ApiController extends Controller
|
||||
class ApiController extends AbstractApiController
|
||||
{
|
||||
/**
|
||||
* Updates a component with the entered info.
|
||||
*
|
||||
* @param \CachetHQ\Cachet\Models\Component $component
|
||||
*
|
||||
* @throws \Exception
|
||||
* @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException
|
||||
*
|
||||
* @return \CachetHQ\Cachet\Models\Component
|
||||
*/
|
||||
public function postUpdateComponent(Component $component)
|
||||
{
|
||||
if (!$component->update(Binput::except(['_token']))) {
|
||||
throw new Exception(trans('dashboard.components.edit.failure'));
|
||||
try {
|
||||
dispatch(new UpdateComponentCommand(
|
||||
$component,
|
||||
null,
|
||||
null,
|
||||
Binput::get('status'),
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
));
|
||||
} catch (QueryException $e) {
|
||||
throw new BadRequestHttpException();
|
||||
}
|
||||
|
||||
return $component;
|
||||
return $this->item($component);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -49,11 +63,23 @@ class ApiController extends Controller
|
||||
$componentData = Binput::get('ids');
|
||||
|
||||
foreach ($componentData as $order => $componentId) {
|
||||
// Ordering should be 1-based, data comes in 0-based
|
||||
Component::find($componentId)->update(['order' => $order + 1]);
|
||||
try {
|
||||
dispatch(new UpdateComponentCommand(
|
||||
Component::find($componentId),
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$order + 1,
|
||||
null,
|
||||
null
|
||||
));
|
||||
} catch (QueryException $e) {
|
||||
throw new BadRequestHttpException();
|
||||
}
|
||||
}
|
||||
|
||||
return $componentData;
|
||||
return $this->collection(Component::query()->orderBy('order')->get());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -66,10 +92,15 @@ class ApiController extends Controller
|
||||
$groupData = Binput::get('ids');
|
||||
|
||||
foreach ($groupData as $order => $groupId) {
|
||||
ComponentGroup::find($groupId)->update(['order' => $order + 1]);
|
||||
dispatch(new UpdateComponentGroupCommand(
|
||||
ComponentGroup::find($groupId),
|
||||
null,
|
||||
$order + 1,
|
||||
null
|
||||
));
|
||||
}
|
||||
|
||||
return $groupData;
|
||||
return $this->collection(ComponentGroup::query()->orderBy('order')->get());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -250,10 +250,11 @@ class SetupController extends Controller
|
||||
try {
|
||||
(new Dotenv($dir, $file))->load();
|
||||
|
||||
$envValue = env(strtoupper($key)) ?: 'null';
|
||||
$envKey = strtoupper($key);
|
||||
$envValue = env($envKey) ?: 'null';
|
||||
|
||||
file_put_contents($path, str_replace(
|
||||
$envValue, $value, file_get_contents($path)
|
||||
$envKey.'='.$envValue, $envKey.'='.$value, file_get_contents($path)
|
||||
));
|
||||
} catch (InvalidPathException $e) {
|
||||
//
|
||||
|
||||
@@ -47,7 +47,7 @@ class SignupController extends Controller
|
||||
return View::make('signup')
|
||||
->withCode($invite->code)
|
||||
->withUsername(Binput::old('username'))
|
||||
->withEmail(Binput::old('emai', $invite->email));
|
||||
->withEmail(Binput::old('email', $invite->email));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,6 +16,7 @@ use CachetHQ\Cachet\Models\Traits\SearchableTrait;
|
||||
use CachetHQ\Cachet\Models\Traits\SortableTrait;
|
||||
use CachetHQ\Cachet\Presenters\IncidentPresenter;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use McCool\LaravelAutoPresenter\HasPresenter;
|
||||
@@ -97,7 +98,7 @@ class Incident extends Model implements HasPresenter
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function scopeVisible($query)
|
||||
public function scopeVisible(Builder $query)
|
||||
{
|
||||
return $query->where('visible', 1);
|
||||
}
|
||||
@@ -109,9 +110,9 @@ class Incident extends Model implements HasPresenter
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function scopeScheduled($query)
|
||||
public function scopeScheduled(Builder $query)
|
||||
{
|
||||
return $query->where('status', 0)->where('scheduled_at', '>=', Carbon::now());
|
||||
return $query->where('status', 0)->where('scheduled_at', '>=', Carbon::now()->toDateTimeString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -121,10 +122,12 @@ class Incident extends Model implements HasPresenter
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function scopeNotScheduled($query)
|
||||
public function scopeNotScheduled(Builder $query)
|
||||
{
|
||||
return $query->where(function ($query) {
|
||||
return $query->whereNull('scheduled_at')->orWhere('scheduled_at', '<=', Carbon::now());
|
||||
return $query->where('status', '>', 0)->orWhere(function ($query) {
|
||||
$query->where('status', 0)->where(function ($query) {
|
||||
$query->whereNull('scheduled_at')->orWhere('scheduled_at', '<=', Carbon::now()->toDateTimeString());
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
63
app/Repositories/Metric/AbstractMetricRepository.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?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\Repositories\Metric;
|
||||
|
||||
use CachetHQ\Cachet\Models\Metric;
|
||||
use Illuminate\Contracts\Config\Repository;
|
||||
|
||||
/**
|
||||
* This is the abstract metric repository class.
|
||||
*
|
||||
* @author Jams Brooks <james@alt-three.com>
|
||||
*/
|
||||
abstract class AbstractMetricRepository
|
||||
{
|
||||
/**
|
||||
* The illuminate config repository.
|
||||
*
|
||||
* @var \Illuminate\Contracts\Config\Repository
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* The name of the metrics table.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $tableName;
|
||||
|
||||
/**
|
||||
* Create a new abstract metric repository instance.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Config\Repository $config
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Repository $config)
|
||||
{
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the metrics table name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getTableName()
|
||||
{
|
||||
$driver = $this->config->get('database.default');
|
||||
$connection = $this->config->get('database.connections.'.$driver);
|
||||
$prefix = $connection['prefix'];
|
||||
|
||||
return $prefix.'metrics';
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,12 @@ use DateInterval;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Jenssegers\Date\Date;
|
||||
|
||||
class MySqlRepository implements MetricInterface
|
||||
/**
|
||||
* This is the mysql repository class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class MySqlRepository extends AbstractMetricRepository implements MetricInterface
|
||||
{
|
||||
/**
|
||||
* Returns metrics for the last hour.
|
||||
@@ -40,7 +45,7 @@ class MySqlRepository implements MetricInterface
|
||||
|
||||
$value = 0;
|
||||
|
||||
$points = DB::select("SELECT {$queryType} FROM metrics m INNER JOIN metric_points mp ON m.id = mp.metric_id WHERE m.id = :metricId AND DATE_FORMAT(mp.`created_at`, '%Y%m%d%H%i') = :timeInterval GROUP BY HOUR(mp.`created_at`), MINUTE(mp.`created_at`)", [
|
||||
$points = DB::select("SELECT {$queryType} FROM {$this->getTableName()} m INNER JOIN metric_points mp ON m.id = mp.metric_id WHERE m.id = :metricId AND DATE_FORMAT(mp.`created_at`, '%Y%m%d%H%i') = :timeInterval GROUP BY HOUR(mp.`created_at`), MINUTE(mp.`created_at`)", [
|
||||
'metricId' => $metric->id,
|
||||
'timeInterval' => $timeInterval,
|
||||
]);
|
||||
@@ -77,7 +82,7 @@ class MySqlRepository implements MetricInterface
|
||||
|
||||
$value = 0;
|
||||
|
||||
$points = DB::select("SELECT {$queryType} FROM metrics m INNER JOIN metric_points mp ON m.id = mp.metric_id WHERE m.id = :metricId AND DATE_FORMAT(mp.`created_at`, '%Y%m%d%H') = :hourInterval GROUP BY HOUR(mp.`created_at`)", [
|
||||
$points = DB::select("SELECT {$queryType} FROM {$this->getTableName()} m INNER JOIN metric_points mp ON m.id = mp.metric_id WHERE m.id = :metricId AND DATE_FORMAT(mp.`created_at`, '%Y%m%d%H') = :hourInterval GROUP BY HOUR(mp.`created_at`)", [
|
||||
'metricId' => $metric->id,
|
||||
'hourInterval' => $hourInterval,
|
||||
]);
|
||||
@@ -112,7 +117,7 @@ class MySqlRepository implements MetricInterface
|
||||
|
||||
$value = 0;
|
||||
|
||||
$points = DB::select("SELECT {$queryType} FROM metrics m INNER JOIN metric_points mp ON m.id = mp.metric_id WHERE m.id = :metricId AND mp.`created_at` BETWEEN DATE_SUB(mp.`created_at`, INTERVAL 1 WEEK) AND DATE_ADD(NOW(), INTERVAL 1 DAY) AND DATE_FORMAT(mp.`created_at`, '%Y%m%d') = :timeInterval GROUP BY DATE_FORMAT(mp.`created_at`, '%Y%m%d')", [
|
||||
$points = DB::select("SELECT {$queryType} FROM {$this->getTableName()} m INNER JOIN metric_points mp ON m.id = mp.metric_id WHERE m.id = :metricId AND mp.`created_at` BETWEEN DATE_SUB(mp.`created_at`, INTERVAL 1 WEEK) AND DATE_ADD(NOW(), INTERVAL 1 DAY) AND DATE_FORMAT(mp.`created_at`, '%Y%m%d') = :timeInterval GROUP BY DATE_FORMAT(mp.`created_at`, '%Y%m%d')", [
|
||||
'metricId' => $metric->id,
|
||||
'timeInterval' => $dateTime->format('Ymd'),
|
||||
]);
|
||||
|
||||
@@ -16,7 +16,12 @@ use DateInterval;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Jenssegers\Date\Date;
|
||||
|
||||
class PgSqlRepository implements MetricInterface
|
||||
/**
|
||||
* This is the pgsql repository class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class PgSqlRepository extends AbstractMetricRepository implements MetricInterface
|
||||
{
|
||||
/**
|
||||
* Returns metrics for the last hour.
|
||||
@@ -41,7 +46,7 @@ class PgSqlRepository implements MetricInterface
|
||||
}
|
||||
|
||||
$value = 0;
|
||||
$query = DB::select("select {$queryType} as value FROM metrics JOIN metric_points ON metric_points.metric_id = metrics.id WHERE metrics.id = :metricId AND to_char(metric_points.created_at, 'YYYYMMDDHH24MI') = :timeInterval GROUP BY to_char(metric_points.created_at, 'HHMI')", [
|
||||
$query = DB::select("select {$queryType} as value FROM {$this->getTableName()} m JOIN metric_points ON metric_points.metric_id = m.id WHERE m.id = :metricId AND to_char(metric_points.created_at, 'YYYYMMDDHH24MI') = :timeInterval GROUP BY to_char(metric_points.created_at, 'HHMI')", [
|
||||
'metricId' => $metric->id,
|
||||
'timeInterval' => $dateTime->format('YmdHi'),
|
||||
]);
|
||||
@@ -79,7 +84,7 @@ class PgSqlRepository implements MetricInterface
|
||||
}
|
||||
|
||||
$value = 0;
|
||||
$query = DB::select("select {$queryType} as value FROM metrics JOIN metric_points ON metric_points.metric_id = metrics.id WHERE metric_points.metric_id = :metricId AND to_char(metric_points.created_at, 'YYYYMMDDHH24') = :timeInterval GROUP BY to_char(metric_points.created_at, 'H')", [
|
||||
$query = DB::select("select {$queryType} as value FROM {$this->getTableName()} m JOIN metric_points ON metric_points.metric_id = m.id WHERE metric_points.metric_id = :metricId AND to_char(metric_points.created_at, 'YYYYMMDDHH24') = :timeInterval GROUP BY to_char(metric_points.created_at, 'H')", [
|
||||
'metricId' => $metric->id,
|
||||
'timeInterval' => $dateTime->format('YmdH'),
|
||||
]);
|
||||
@@ -113,7 +118,7 @@ class PgSqlRepository implements MetricInterface
|
||||
}
|
||||
|
||||
$value = 0;
|
||||
$points = DB::select("SELECT {$queryType} FROM metrics m INNER JOIN metric_points mp ON m.id = mp.metric_id WHERE m.id = :metricId AND mp.created_at BETWEEN (mp.created_at - interval '1 week') AND (now() + interval '1 day') AND to_char(mp.created_at, 'YYYYMMDD') = :timeInterval GROUP BY to_char(mp.created_at, 'YYYYMMDD')", [
|
||||
$points = DB::select("SELECT {$queryType} FROM {$this->getTableName()} m INNER JOIN metric_points mp ON m.id = mp.metric_id WHERE m.id = :metricId AND mp.created_at BETWEEN (mp.created_at - interval '1 week') AND (now() + interval '1 day') AND to_char(mp.created_at, 'YYYYMMDD') = :timeInterval GROUP BY to_char(mp.created_at, 'YYYYMMDD')", [
|
||||
'metricId' => $metric->id,
|
||||
'timeInterval' => $dateTime->format('Ymd'),
|
||||
]);
|
||||
|
||||
@@ -16,7 +16,7 @@ use DateInterval;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Jenssegers\Date\Date;
|
||||
|
||||
class SqliteRepository implements MetricInterface
|
||||
class SqliteRepository extends AbstractMetricRepository implements MetricInterface
|
||||
{
|
||||
/**
|
||||
* Returns metrics for the last hour.
|
||||
@@ -41,7 +41,7 @@ class SqliteRepository implements MetricInterface
|
||||
}
|
||||
|
||||
$value = 0;
|
||||
$query = DB::select("select {$queryType} as value FROM metrics JOIN metric_points ON metric_points.metric_id = metrics.id WHERE metrics.id = :metricId AND strftime('%Y%m%d%H%M', metric_points.created_at) = :timeInterval GROUP BY strftime('%H%M', metric_points.created_at)", [
|
||||
$query = DB::select("select {$queryType} as value FROM {$this->getTableName()} m JOIN metric_points ON metric_points.metric_id = m.id WHERE m.id = :metricId AND strftime('%Y%m%d%H%M', metric_points.created_at) = :timeInterval GROUP BY strftime('%H%M', metric_points.created_at)", [
|
||||
'metricId' => $metric->id,
|
||||
'timeInterval' => $dateTime->format('YmdHi'),
|
||||
]);
|
||||
@@ -79,7 +79,7 @@ class SqliteRepository implements MetricInterface
|
||||
}
|
||||
|
||||
$value = 0;
|
||||
$query = DB::select("select {$queryType} as value FROM metrics JOIN metric_points ON metric_points.metric_id = metrics.id WHERE metrics.id = :metricId AND strftime('%Y%m%d%H', metric_points.created_at) = :timeInterval GROUP BY strftime('%H', metric_points.created_at)", [
|
||||
$query = DB::select("select {$queryType} as value FROM {$this->getTableName()} m JOIN metric_points ON metric_points.metric_id = m.id WHERE m.id = :metricId AND strftime('%Y%m%d%H', metric_points.created_at) = :timeInterval GROUP BY strftime('%H', metric_points.created_at)", [
|
||||
'metricId' => $metric->id,
|
||||
'timeInterval' => $dateTime->format('YmdH'),
|
||||
]);
|
||||
@@ -116,7 +116,7 @@ class SqliteRepository implements MetricInterface
|
||||
}
|
||||
|
||||
$value = 0;
|
||||
$query = DB::select("select {$queryType} as value FROM metrics JOIN metric_points ON metric_points.metric_id = metrics.id WHERE metrics.id = :metricId AND metric_points.created_at > date('now', '-7 day') AND strftime('%Y%m%d', metric_points.created_at) = :timeInterval GROUP BY strftime('%Y%m%d', metric_points.created_at)", [
|
||||
$query = DB::select("select {$queryType} as value FROM {$this->getTableName()} m JOIN metric_points ON metric_points.metric_id = m.id WHERE m.id = :metricId AND metric_points.created_at > date('now', '-7 day') AND strftime('%Y%m%d', metric_points.created_at) = :timeInterval GROUP BY strftime('%Y%m%d', metric_points.created_at)", [
|
||||
'metricId' => $metric->id,
|
||||
'timeInterval' => $dateTime->format('Ymd'),
|
||||
]);
|
||||
|
||||
0
bootstrap/cache/.gitignore
vendored
Executable file → Normal file
@@ -41,7 +41,7 @@
|
||||
"mccool/laravel-auto-presenter": "^4.3",
|
||||
"pragmarx/google2fa": "^0.7.1",
|
||||
"rcrowe/twigbridge": "^0.9.2",
|
||||
"roumen/feed": "^2.10.3"
|
||||
"roumen/feed": "^2.10.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"alt-three/testbench": "^1.4",
|
||||
|
||||
208
composer.lock
generated
@@ -4,8 +4,8 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "121ae0d23ad2d8a2d0a87c90a5102e6b",
|
||||
"content-hash": "bd751e5a5d663a274000acd26ba97e86",
|
||||
"hash": "1e468595f20309ca6658b805a1486282",
|
||||
"content-hash": "4b3f3e889041139f810c76897b44722a",
|
||||
"packages": [
|
||||
{
|
||||
"name": "alt-three/badger",
|
||||
@@ -325,22 +325,22 @@
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.18.20",
|
||||
"version": "3.18.28",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "e5a901dd3a42d0c46a90ee37a174938cd0ce55bf"
|
||||
"reference": "c75d3ba185d5db6998124fa1a99a63e5d529b247"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e5a901dd3a42d0c46a90ee37a174938cd0ce55bf",
|
||||
"reference": "e5a901dd3a42d0c46a90ee37a174938cd0ce55bf",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c75d3ba185d5db6998124fa1a99a63e5d529b247",
|
||||
"reference": "c75d3ba185d5db6998124fa1a99a63e5d529b247",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "~5.3|~6.0.1|~6.1",
|
||||
"guzzlehttp/promises": "~1.0",
|
||||
"guzzlehttp/psr7": "~1.0",
|
||||
"guzzlehttp/psr7": "~1.3.1",
|
||||
"mtdowling/jmespath.php": "~2.2",
|
||||
"php": ">=5.5"
|
||||
},
|
||||
@@ -401,7 +401,7 @@
|
||||
"s3",
|
||||
"sdk"
|
||||
],
|
||||
"time": "2016-06-23 23:17:52"
|
||||
"time": "2016-07-13 20:34:06"
|
||||
},
|
||||
{
|
||||
"name": "backup-manager/backup-manager",
|
||||
@@ -569,20 +569,20 @@
|
||||
},
|
||||
{
|
||||
"name": "barryvdh/laravel-cors",
|
||||
"version": "v0.8.0",
|
||||
"version": "v0.8.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/barryvdh/laravel-cors.git",
|
||||
"reference": "39975d7505757488f982ca132bcd02c704792fd8"
|
||||
"reference": "1998c8c7295d167cb744bbc45fbefad9b86b836c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/barryvdh/laravel-cors/zipball/39975d7505757488f982ca132bcd02c704792fd8",
|
||||
"reference": "39975d7505757488f982ca132bcd02c704792fd8",
|
||||
"url": "https://api.github.com/repos/barryvdh/laravel-cors/zipball/1998c8c7295d167cb744bbc45fbefad9b86b836c",
|
||||
"reference": "1998c8c7295d167cb744bbc45fbefad9b86b836c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/support": "5.1.x|5.2.x",
|
||||
"illuminate/support": "5.1.x|5.2.x|5.3.x",
|
||||
"php": ">=5.5.9",
|
||||
"symfony/http-foundation": "~2.7|~3.0",
|
||||
"symfony/http-kernel": "~2.7|~3.0"
|
||||
@@ -618,7 +618,7 @@
|
||||
"crossdomain",
|
||||
"laravel"
|
||||
],
|
||||
"time": "2016-02-11 18:38:09"
|
||||
"time": "2016-06-22 06:36:34"
|
||||
},
|
||||
{
|
||||
"name": "christian-riesen/base32",
|
||||
@@ -1458,16 +1458,16 @@
|
||||
},
|
||||
{
|
||||
"name": "graham-campbell/exceptions",
|
||||
"version": "v8.6.1",
|
||||
"version": "v8.6.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GrahamCampbell/Laravel-Exceptions.git",
|
||||
"reference": "40e6208cff22859cd63788fee19a8c15aebc1ef9"
|
||||
"reference": "7a36e51547258f750a1e68f6caa717bff26e710b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GrahamCampbell/Laravel-Exceptions/zipball/40e6208cff22859cd63788fee19a8c15aebc1ef9",
|
||||
"reference": "40e6208cff22859cd63788fee19a8c15aebc1ef9",
|
||||
"url": "https://api.github.com/repos/GrahamCampbell/Laravel-Exceptions/zipball/7a36e51547258f750a1e68f6caa717bff26e710b",
|
||||
"reference": "7a36e51547258f750a1e68f6caa717bff26e710b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1523,7 +1523,7 @@
|
||||
"laravel",
|
||||
"whoops"
|
||||
],
|
||||
"time": "2016-06-04 20:20:48"
|
||||
"time": "2016-07-14 15:54:14"
|
||||
},
|
||||
{
|
||||
"name": "graham-campbell/markdown",
|
||||
@@ -2362,16 +2362,16 @@
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
"version": "1.19.0",
|
||||
"version": "1.20.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Seldaek/monolog.git",
|
||||
"reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf"
|
||||
"reference": "55841909e2bcde01b5318c35f2b74f8ecc86e037"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/5f56ed5212dc509c8dc8caeba2715732abb32dbf",
|
||||
"reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/55841909e2bcde01b5318c35f2b74f8ecc86e037",
|
||||
"reference": "55841909e2bcde01b5318c35f2b74f8ecc86e037",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2390,8 +2390,8 @@
|
||||
"php-console/php-console": "^3.1.3",
|
||||
"phpunit/phpunit": "~4.5",
|
||||
"phpunit/phpunit-mock-objects": "2.3.0",
|
||||
"raven/raven": "^0.13",
|
||||
"ruflin/elastica": ">=0.90 <3.0",
|
||||
"sentry/sentry": "^0.13",
|
||||
"swiftmailer/swiftmailer": "~5.3"
|
||||
},
|
||||
"suggest": {
|
||||
@@ -2403,9 +2403,9 @@
|
||||
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
|
||||
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
|
||||
"php-console/php-console": "Allow sending log messages to Google Chrome",
|
||||
"raven/raven": "Allow sending log messages to a Sentry server",
|
||||
"rollbar/rollbar": "Allow sending log messages to Rollbar",
|
||||
"ruflin/elastica": "Allow sending log messages to an Elastic Search server"
|
||||
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
|
||||
"sentry/sentry": "Allow sending log messages to a Sentry server"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -2436,7 +2436,7 @@
|
||||
"logging",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2016-04-12 18:29:35"
|
||||
"time": "2016-07-02 14:02:10"
|
||||
},
|
||||
{
|
||||
"name": "mtdowling/cron-expression",
|
||||
@@ -2962,16 +2962,16 @@
|
||||
},
|
||||
{
|
||||
"name": "roumen/feed",
|
||||
"version": "v2.10.3",
|
||||
"version": "v2.10.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/RoumenDamianoff/laravel-feed.git",
|
||||
"reference": "d2f51d9f0d8c699cb812c5b7edeb4804e253f691"
|
||||
"reference": "900594412cab37515b2b53c8953af1201024e48d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/RoumenDamianoff/laravel-feed/zipball/d2f51d9f0d8c699cb812c5b7edeb4804e253f691",
|
||||
"reference": "d2f51d9f0d8c699cb812c5b7edeb4804e253f691",
|
||||
"url": "https://api.github.com/repos/RoumenDamianoff/laravel-feed/zipball/900594412cab37515b2b53c8953af1201024e48d",
|
||||
"reference": "900594412cab37515b2b53c8953af1201024e48d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3009,7 +3009,7 @@
|
||||
"laravel",
|
||||
"rss"
|
||||
],
|
||||
"time": "2016-06-01 18:54:03"
|
||||
"time": "2016-07-17 13:06:35"
|
||||
},
|
||||
{
|
||||
"name": "simplesoftwareio/simple-qrcode",
|
||||
@@ -3064,23 +3064,23 @@
|
||||
},
|
||||
{
|
||||
"name": "swiftmailer/swiftmailer",
|
||||
"version": "v5.4.2",
|
||||
"version": "v5.4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/swiftmailer/swiftmailer.git",
|
||||
"reference": "d8db871a54619458a805229a057ea2af33c753e8"
|
||||
"reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/d8db871a54619458a805229a057ea2af33c753e8",
|
||||
"reference": "d8db871a54619458a805229a057ea2af33c753e8",
|
||||
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/4cc92842069c2bbc1f28daaaf1d2576ec4dfe153",
|
||||
"reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~0.9.1,<0.9.4"
|
||||
"mockery/mockery": "~0.9.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -3113,20 +3113,20 @@
|
||||
"mail",
|
||||
"mailer"
|
||||
],
|
||||
"time": "2016-05-01 08:45:47"
|
||||
"time": "2016-07-08 11:51:25"
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "382fc9ed852edabd6133e34f8549d7a7d99db115"
|
||||
"reference": "a7abb7153f6d1da47f87ec50274844e246b09d9f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/382fc9ed852edabd6133e34f8549d7a7d99db115",
|
||||
"reference": "382fc9ed852edabd6133e34f8549d7a7d99db115",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/a7abb7153f6d1da47f87ec50274844e246b09d9f",
|
||||
"reference": "a7abb7153f6d1da47f87ec50274844e246b09d9f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3173,20 +3173,20 @@
|
||||
],
|
||||
"description": "Symfony Console Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-06 15:08:35"
|
||||
"time": "2016-06-29 07:02:21"
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v3.1.1",
|
||||
"version": "v3.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/css-selector.git",
|
||||
"reference": "c526d7b3cb4fe1673c6a34e13be2ff63f519df99"
|
||||
"reference": "2851e1932d77ce727776154d659b232d061e816a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/c526d7b3cb4fe1673c6a34e13be2ff63f519df99",
|
||||
"reference": "c526d7b3cb4fe1673c6a34e13be2ff63f519df99",
|
||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/2851e1932d77ce727776154d659b232d061e816a",
|
||||
"reference": "2851e1932d77ce727776154d659b232d061e816a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3226,20 +3226,20 @@
|
||||
],
|
||||
"description": "Symfony CssSelector Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-06 11:42:41"
|
||||
"time": "2016-06-29 05:41:56"
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug.git",
|
||||
"reference": "e67e1552dd7313df1cf6535cb606751899e0e727"
|
||||
"reference": "c54bc3539c3b87e86799533801e8ae0e971d78c2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/debug/zipball/e67e1552dd7313df1cf6535cb606751899e0e727",
|
||||
"reference": "e67e1552dd7313df1cf6535cb606751899e0e727",
|
||||
"url": "https://api.github.com/repos/symfony/debug/zipball/c54bc3539c3b87e86799533801e8ae0e971d78c2",
|
||||
"reference": "c54bc3539c3b87e86799533801e8ae0e971d78c2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3283,20 +3283,20 @@
|
||||
],
|
||||
"description": "Symfony Debug Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-06 15:08:35"
|
||||
"time": "2016-06-29 05:40:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v3.1.1",
|
||||
"version": "v3.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "f5b7563f67779c6d3d5370e23448e707c858df3e"
|
||||
"reference": "7f9839ede2070f53e7e2f0849b9bd14748c434c5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f5b7563f67779c6d3d5370e23448e707c858df3e",
|
||||
"reference": "f5b7563f67779c6d3d5370e23448e707c858df3e",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7f9839ede2070f53e7e2f0849b9bd14748c434c5",
|
||||
"reference": "7f9839ede2070f53e7e2f0849b9bd14748c434c5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3343,20 +3343,20 @@
|
||||
],
|
||||
"description": "Symfony EventDispatcher Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-06 11:42:41"
|
||||
"time": "2016-06-29 05:41:56"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "39e5f3d533d07b5416b9d7aad53a27f939d4f811"
|
||||
"reference": "3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/39e5f3d533d07b5416b9d7aad53a27f939d4f811",
|
||||
"reference": "39e5f3d533d07b5416b9d7aad53a27f939d4f811",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9",
|
||||
"reference": "3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3392,20 +3392,20 @@
|
||||
],
|
||||
"description": "Symfony Finder Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-05-13 18:03:36"
|
||||
"time": "2016-06-29 05:40:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "d268a643884f85e91d6ba11ca68de96833f3f6e5"
|
||||
"reference": "1341139f906d295baa4f4abd55293d07e25a065a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/d268a643884f85e91d6ba11ca68de96833f3f6e5",
|
||||
"reference": "d268a643884f85e91d6ba11ca68de96833f3f6e5",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/1341139f906d295baa4f4abd55293d07e25a065a",
|
||||
"reference": "1341139f906d295baa4f4abd55293d07e25a065a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3445,20 +3445,20 @@
|
||||
],
|
||||
"description": "Symfony HttpFoundation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-06 11:33:26"
|
||||
"time": "2016-06-29 07:02:21"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "97cc1c15e3406e7a2adf14ad6b0e41a04d4a6fc4"
|
||||
"reference": "177b63b2d50b63fa6d82ea41359ed9928cc7a1fb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/97cc1c15e3406e7a2adf14ad6b0e41a04d4a6fc4",
|
||||
"reference": "97cc1c15e3406e7a2adf14ad6b0e41a04d4a6fc4",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/177b63b2d50b63fa6d82ea41359ed9928cc7a1fb",
|
||||
"reference": "177b63b2d50b63fa6d82ea41359ed9928cc7a1fb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3466,7 +3466,7 @@
|
||||
"psr/log": "~1.0",
|
||||
"symfony/debug": "~2.8|~3.0",
|
||||
"symfony/event-dispatcher": "~2.8|~3.0",
|
||||
"symfony/http-foundation": "~2.8|~3.0"
|
||||
"symfony/http-foundation": "~2.8.8|~3.0.8|~3.1.2|~3.2"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/config": "<2.8"
|
||||
@@ -3527,7 +3527,7 @@
|
||||
],
|
||||
"description": "Symfony HttpKernel Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-06 16:52:35"
|
||||
"time": "2016-06-30 16:30:17"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
@@ -3698,16 +3698,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "bf6e2d1fa8b93fdd7cca6b684c0ea213cf0255dd"
|
||||
"reference": "d7cde1f9d94d87060204f863779389b61c382eeb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/bf6e2d1fa8b93fdd7cca6b684c0ea213cf0255dd",
|
||||
"reference": "bf6e2d1fa8b93fdd7cca6b684c0ea213cf0255dd",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/d7cde1f9d94d87060204f863779389b61c382eeb",
|
||||
"reference": "d7cde1f9d94d87060204f863779389b61c382eeb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3743,20 +3743,20 @@
|
||||
],
|
||||
"description": "Symfony Process Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-06 11:33:26"
|
||||
"time": "2016-06-29 05:40:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "c780454838a1131adc756d737a4b4cc1d18f8c64"
|
||||
"reference": "9038984bd9c05ab07280121e9e10f61a7231457b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/c780454838a1131adc756d737a4b4cc1d18f8c64",
|
||||
"reference": "c780454838a1131adc756d737a4b4cc1d18f8c64",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/9038984bd9c05ab07280121e9e10f61a7231457b",
|
||||
"reference": "9038984bd9c05ab07280121e9e10f61a7231457b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3818,20 +3818,20 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2016-05-30 06:58:27"
|
||||
"time": "2016-06-29 05:40:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7"
|
||||
"reference": "6bf844e1ee3c820c012386c10427a5c67bbefec8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7",
|
||||
"reference": "2b0aacaa613c0ec1ad8046f972d8abdcb19c1db7",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/6bf844e1ee3c820c012386c10427a5c67bbefec8",
|
||||
"reference": "6bf844e1ee3c820c012386c10427a5c67bbefec8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3882,20 +3882,20 @@
|
||||
],
|
||||
"description": "Symfony Translation Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-06 11:33:26"
|
||||
"time": "2016-06-29 05:40:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v3.0.7",
|
||||
"version": "v3.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "d8bb851da153d97abe7c2b71a65dee19f324bcf7"
|
||||
"reference": "2f046e9a9d571f22cc8b26783564876713b06579"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/d8bb851da153d97abe7c2b71a65dee19f324bcf7",
|
||||
"reference": "d8bb851da153d97abe7c2b71a65dee19f324bcf7",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/2f046e9a9d571f22cc8b26783564876713b06579",
|
||||
"reference": "2f046e9a9d571f22cc8b26783564876713b06579",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3945,7 +3945,7 @@
|
||||
"debug",
|
||||
"dump"
|
||||
],
|
||||
"time": "2016-05-24 10:03:10"
|
||||
"time": "2016-06-29 05:40:00"
|
||||
},
|
||||
{
|
||||
"name": "tijsverkoyen/css-to-inline-styles",
|
||||
@@ -5453,16 +5453,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/dom-crawler",
|
||||
"version": "v3.1.1",
|
||||
"version": "v3.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dom-crawler.git",
|
||||
"reference": "12aa63fd41b060d2bee9a34623d29eda70bc8fe3"
|
||||
"reference": "99ec4a23330fcd0c8667095f3ef7aa204ffd9dc0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/12aa63fd41b060d2bee9a34623d29eda70bc8fe3",
|
||||
"reference": "12aa63fd41b060d2bee9a34623d29eda70bc8fe3",
|
||||
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/99ec4a23330fcd0c8667095f3ef7aa204ffd9dc0",
|
||||
"reference": "99ec4a23330fcd0c8667095f3ef7aa204ffd9dc0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5505,20 +5505,20 @@
|
||||
],
|
||||
"description": "Symfony DomCrawler Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-05-13 15:49:09"
|
||||
"time": "2016-06-29 05:41:56"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v3.1.1",
|
||||
"version": "v3.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "c5a7e7fc273c758b92b85dcb9c46149ccda89623"
|
||||
"reference": "2884c26ce4c1d61aebf423a8b912950fe7c764de"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/c5a7e7fc273c758b92b85dcb9c46149ccda89623",
|
||||
"reference": "c5a7e7fc273c758b92b85dcb9c46149ccda89623",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/2884c26ce4c1d61aebf423a8b912950fe7c764de",
|
||||
"reference": "2884c26ce4c1d61aebf423a8b912950fe7c764de",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5554,7 +5554,7 @@
|
||||
],
|
||||
"description": "Symfony Yaml Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-06-14 11:18:07"
|
||||
"time": "2016-06-29 05:41:56"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
|
||||
0
config/langs.php
Executable file → Normal file
@@ -2,7 +2,7 @@
|
||||
"name": "cachet",
|
||||
"devDependencies": {
|
||||
"gulp": "~3.9.1",
|
||||
"laravel-elixir": "~5.0.0",
|
||||
"laravel-elixir": "~6.0.0-9",
|
||||
"animate-sass": "git+https://github.com/tgdev/animate-sass.git",
|
||||
"autosize": "^3.0.15",
|
||||
"bootstrap-sass": "^3.3.6",
|
||||
|
||||
0
public/build/dist/css/all-81fdbf996d.css
vendored
Executable file → Normal file
BIN
public/img/apple-touch-icon-114x114.png
Executable file → Normal file
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 4.8 KiB |
BIN
public/img/apple-touch-icon-120x120.png
Executable file → Normal file
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
public/img/apple-touch-icon-144x144.png
Executable file → Normal file
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 6.4 KiB |
BIN
public/img/apple-touch-icon-152x152.png
Executable file → Normal file
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 7.3 KiB |
BIN
public/img/apple-touch-icon-57x57.png
Executable file → Normal file
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
public/img/apple-touch-icon-72x72.png
Executable file → Normal file
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.9 KiB |
BIN
public/img/apple-touch-icon-76x76.png
Executable file → Normal file
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
public/img/apple-touch-icon.png
Executable file → Normal file
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
public/img/favicon-high-alert.png
Executable file → Normal file
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 4.8 KiB |
BIN
public/img/favicon-medium-alert.png
Executable file → Normal file
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 6.1 KiB |
0
resources/assets/js/app.js
Executable file → Normal file
0
resources/assets/sass/_errors.scss
vendored
Executable file → Normal file
0
resources/assets/sass/_helpers.scss
vendored
Executable file → Normal file
0
resources/assets/sass/_palette.scss
vendored
Executable file → Normal file
0
resources/assets/sass/_status-page.scss
vendored
Executable file → Normal file
0
resources/assets/sass/app.scss
vendored
Executable file → Normal file
0
resources/assets/sass/modules/_bootstrap.scss
vendored
Executable file → Normal file
0
resources/assets/sass/modules/_forms.scss
vendored
Executable file → Normal file
0
resources/assets/sass/modules/_tabs.scss
vendored
Executable file → Normal file
0
resources/assets/sass/modules/_variables.scss
vendored
Executable file → Normal file
0
resources/assets/sass/modules/_well.scss
vendored
Executable file → Normal file
0
resources/assets/sass/pages/_dashboard.scss
vendored
Executable file → Normal file
0
resources/assets/sass/pages/_login.scss
vendored
Executable file → Normal file
0
resources/assets/sass/pages/_setup.scss
vendored
Executable file → Normal file
0
resources/assets/sass/partials/_base.scss
vendored
Executable file → Normal file
0
resources/assets/sass/partials/_content.scss
vendored
Executable file → Normal file
0
resources/assets/sass/partials/_modals.scss
vendored
Executable file → Normal file
0
resources/assets/sass/partials/_navbar.scss
vendored
Executable file → Normal file
0
resources/assets/sass/partials/_sidebar.scss
vendored
Executable file → Normal file
0
resources/assets/sass/partials/_wrapper.scss
vendored
Executable file → Normal file
0
resources/assets/sass/plugins/_animate.scss
vendored
Executable file → Normal file
0
resources/assets/sass/plugins/_messenger.scss
vendored
Executable file → Normal file
0
resources/assets/sass/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.scss
vendored
Executable file → Normal file
0
resources/lang/af/cachet.php
Executable file → Normal file
0
resources/lang/af/dashboard.php
Executable file → Normal file
0
resources/lang/af/forms.php
Executable file → Normal file
0
resources/lang/af/pagination.php
Executable file → Normal file
0
resources/lang/af/setup.php
Executable file → Normal file
0
resources/lang/af/validation.php
Executable file → Normal file
0
resources/lang/ar/cachet.php
Executable file → Normal file
0
resources/lang/ar/dashboard.php
Executable file → Normal file
0
resources/lang/ar/forms.php
Executable file → Normal file
0
resources/lang/ar/pagination.php
Executable file → Normal file
0
resources/lang/ar/setup.php
Executable file → Normal file
0
resources/lang/ar/validation.php
Executable file → Normal file
0
resources/lang/ca/cachet.php
Executable file → Normal file
0
resources/lang/ca/dashboard.php
Executable file → Normal file
0
resources/lang/ca/forms.php
Executable file → Normal file
0
resources/lang/ca/pagination.php
Executable file → Normal file
0
resources/lang/ca/setup.php
Executable file → Normal file
0
resources/lang/ca/validation.php
Executable file → Normal file
0
resources/lang/cs/cachet.php
Executable file → Normal file
0
resources/lang/cs/dashboard.php
Executable file → Normal file
0
resources/lang/cs/forms.php
Executable file → Normal file
0
resources/lang/cs/pagination.php
Executable file → Normal file
0
resources/lang/cs/setup.php
Executable file → Normal file
0
resources/lang/cs/validation.php
Executable file → Normal file
0
resources/lang/da/cachet.php
Executable file → Normal file
0
resources/lang/da/dashboard.php
Executable file → Normal file
0
resources/lang/da/forms.php
Executable file → Normal file
0
resources/lang/da/pagination.php
Executable file → Normal file
0
resources/lang/da/setup.php
Executable file → Normal file
0
resources/lang/da/validation.php
Executable file → Normal file
12
resources/lang/de/cachet.php
Executable file → Normal file
@@ -75,21 +75,21 @@ return [
|
||||
'subscribe' => 'Aktualisierungen per E-Mail abonnieren.',
|
||||
'subscribed' => 'Sie haben E-Mail-Benachrichtigungen abonniert, überprüfen Sie bitte Ihre E-Mail, um Ihr Abonnement zu bestätigen.',
|
||||
'verified' => 'Ihre E-Mail-Abonnement ist bestätigt worden. Danke!',
|
||||
'manage' => 'Manage your subscription',
|
||||
'manage' => 'Verwalte deine Abonnements',
|
||||
'unsubscribe' => 'Von E-Mail-Updates deabonnieren.',
|
||||
'unsubscribed' => 'Ihre E-Mail-Abonnement wurde gekündigt.',
|
||||
'failure' => 'Etwas ist mit dem Abonnement schief gelaufen.',
|
||||
'already-subscribed' => 'Abonnement für :email konnte nicht registriert werden, da die E-Mail Adresse schon registriert ist.',
|
||||
'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>',
|
||||
'button' => 'Confirm Subscription',
|
||||
'text' => "Bitte bestätige die E-Mail-Benachrichtigungen unter :app_name status updates.\n:link",
|
||||
'html' => '<p>Bitte bestätige deine E-Mail-Benachrichtigung unter :app_name status updates.</p>',
|
||||
'button' => 'Abonnement bestätigen',
|
||||
],
|
||||
'maintenance' => [
|
||||
'subject' => '[Maintenance Scheduled] :name',
|
||||
'subject' => '[Planmäßige Wartung] :name',
|
||||
],
|
||||
'incident' => [
|
||||
'subject' => '[New Incident] :status: :name',
|
||||
'subject' => '[Neuer Vorfall] :status: :name',
|
||||
],
|
||||
'component' => [
|
||||
'subject' => 'Komponent Status Update',
|
||||
|
||||
22
resources/lang/de/dashboard.php
Executable file → Normal file
@@ -150,7 +150,7 @@ return [
|
||||
'title' => 'Einen neuen Abonnenten hinzufügen',
|
||||
'success' => 'Abonnent hinzugefügt.',
|
||||
'failure' => 'Etwas lief schief dem dem Hinzufügen eines Abonnenten. Bitte versuchen Sie es erneut.',
|
||||
'help' => 'Gebe jeden Abonnenten in eine neue Zeile ein.',
|
||||
'help' => 'Gib jeden Abonnenten in eine neue Zeile ein.',
|
||||
],
|
||||
'edit' => [
|
||||
'title' => 'Abonnent aktualisieren',
|
||||
@@ -220,12 +220,12 @@ return [
|
||||
'failure' => 'Einstellungen konnten nicht gespeichert werden.',
|
||||
],
|
||||
'credits' => [
|
||||
'credits' => 'Credits',
|
||||
'contributors' => 'Contributors',
|
||||
'license' => 'Cachet is a BSD-3-licensed open source project, released by <a href="https://alt-three.com/?utm_source=cachet&utm_medium=credits&utm_campaign=Cachet%20Credit%20Dashboard" target="_blank">Alt Three Services Limited</a>.',
|
||||
'backers-title' => 'Backers & Sponsors',
|
||||
'backers' => 'If you\'d like to support future development, check out the <a href="https://patreon.com/jbrooksuk" target="_blank">Cachet Patreon</a> campaign.',
|
||||
'thank-you' => 'Thank you to each and every one of the :count contributors.',
|
||||
'credits' => 'Danksagungen',
|
||||
'contributors' => 'Unterstützer',
|
||||
'license' => 'Cachet ist ein BSD-3-lizensiertes Open Source-Projekt, veröffentlicht von <a href="https://alt-three.com/?utm_source=cachet&utm_medium=credits&utm_campaign=Cachet%20Credit%20Dashboard" target="_blank">Alt Three Services Limited</a>.',
|
||||
'backers-title' => 'Unterstützer & Sponsoren',
|
||||
'backers' => 'Wenn Du die Entwicklung der Software unterstützen möchtest, kannst Du unter <a href="https://patreon.com/jbrooksuk" target="_blank">Cachet Patreon</a> einen Beitrag leisten.',
|
||||
'thank-you' => 'Vielen Dank an jeden der :count Unterstützer.',
|
||||
],
|
||||
],
|
||||
|
||||
@@ -251,10 +251,10 @@ return [
|
||||
|
||||
// Widgets
|
||||
'widgets' => [
|
||||
'support' => 'Support Cachet',
|
||||
'support_subtitle' => 'Check out our <strong><a href="https://patreon.com/jbrooksuk" target="_blank">Patreon</a></strong> page!',
|
||||
'news' => 'Latest News',
|
||||
'news_subtitle' => 'Get the latest updates',
|
||||
'support' => 'Cachet unterstützen',
|
||||
'support_subtitle' => 'Unterstütze uns unter <strong><a href="https://patreon.com/jbrooksuk" target="_blank">Patreon</a></strong>!',
|
||||
'news' => 'Aktuelle Neuigkeiten',
|
||||
'news_subtitle' => 'Erhalte die neusten Nachrichten',
|
||||
],
|
||||
|
||||
// Welcome modal
|
||||
|
||||
4
resources/lang/de/forms.php
Executable file → Normal file
@@ -34,7 +34,7 @@ return [
|
||||
'invalid' => 'Ungültiger Benutzername oder Passwort',
|
||||
'invalid-token' => 'Token ist ungültig',
|
||||
'cookies' => 'Sie müssen Cookies aktivieren um sich anzumelden.',
|
||||
'rate-limit' => 'Rate limit exceeded.',
|
||||
'rate-limit' => 'Maximale Anzahl von Bewertungen erreicht.',
|
||||
],
|
||||
|
||||
// Incidents form fields
|
||||
@@ -90,7 +90,7 @@ return [
|
||||
'type_avg' => 'Durchschnitt',
|
||||
'places' => 'Nachkommastellen',
|
||||
'default_view' => 'Standardansicht',
|
||||
'threshold' => 'How many minutes of threshold between metric points?',
|
||||
'threshold' => 'Wie viele Minuten soll der Abstand zwischen den Messpunkten sein?',
|
||||
|
||||
'points' => [
|
||||
'value' => 'Wert',
|
||||
|
||||
0
resources/lang/de/pagination.php
Executable file → Normal file
0
resources/lang/de/setup.php
Executable file → Normal file
54
resources/lang/de/validation.php
Executable file → Normal file
@@ -37,54 +37,54 @@ return [
|
||||
'array' => ':attribute muss zwischen :min & :max Elemente haben.',
|
||||
],
|
||||
'boolean' => ':attribute muss zwischen :min & :max Elemente haben.',
|
||||
'confirmed' => 'The :attribute field must be true or false.',
|
||||
'date' => 'The :attribute confirmation does not match.',
|
||||
'date_format' => 'The :attribute is not a valid date.',
|
||||
'different' => 'The :attribute does not match the format :format.',
|
||||
'digits' => 'The :attribute and :other must be different.',
|
||||
'digits_between' => 'The :attribute must be :digits digits.',
|
||||
'email' => 'The :attribute must be between :min and :max digits.',
|
||||
'exists' => 'The :attribute must be a valid email address.',
|
||||
'distinct' => 'The :attribute field has a duplicate value.',
|
||||
'confirmed' => ':attribute Feld muss richtig oder falsch sein.',
|
||||
'date' => ':attribute stimmt nicht mit der Bestätigung überein.',
|
||||
'date_format' => ':attribute ist kein gültiges Datum.',
|
||||
'different' => ':attribute entspricht nicht dem gültigen Format :format.',
|
||||
'digits' => ':attribute und :other müssen sich unterscheiden.',
|
||||
'digits_between' => ':attribute muss :digits Stellen haben.',
|
||||
'email' => ':attribute soll mindestens :min und darf maximal :max Stellen haben.',
|
||||
'exists' => ':attribute muss eine gültige Emailadresse sein.',
|
||||
'distinct' => ':attribute hat doppelte Werte.',
|
||||
'filled' => 'Das Format von :attribute ist ungültig.',
|
||||
'image' => ':attribute muss ein Bild sein.',
|
||||
'in' => ':attribute muss ein Bild sein.',
|
||||
'in_array' => 'The :attribute field does not exist in :other.',
|
||||
'integer' => 'The selected :attribute is invalid.',
|
||||
'ip' => 'The :attribute must be an integer.',
|
||||
'in_array' => ':attribute existiert nicht in :other.',
|
||||
'integer' => 'Das ausgewählte :attribute ist ungültig.',
|
||||
'ip' => ':attribute muss eine ganze Zahl sein.',
|
||||
'json' => ':attribut muss ein gültiger JSON-String sein.',
|
||||
'max' => [
|
||||
'numeric' => 'The :attribute must be a valid IP address.',
|
||||
'file' => 'The :attribute may not be greater than :max.',
|
||||
'string' => 'The :attribute may not be greater than :max kilobytes.',
|
||||
'numeric' => ':attribute muss eine gültige IP-Adresse sein.',
|
||||
'file' => ':attribute darf nicht größer als :max sein.',
|
||||
'string' => ':attribute darf nicht größer als :max kb sein.',
|
||||
'array' => ':attribute darf nicht mehr als :max Elemente haben.',
|
||||
],
|
||||
'mimes' => ':attribute darf nicht mehr als :max Elemente haben.',
|
||||
'min' => [
|
||||
'numeric' => 'The :attribute must be a file of type: :values.',
|
||||
'numeric' => ':attribute muss eine Datei des Typs :values sein.',
|
||||
'file' => ':attribute muss mindestens :min Kilobytes groß sein.',
|
||||
'string' => ':attribute muss mindestens :min Kilobytes groß sein.',
|
||||
'array' => 'The :attribute must be at least :min characters.',
|
||||
'array' => ':attribute muss mindestens :min Zeichen lang sein.',
|
||||
],
|
||||
'not_in' => 'The :attribute must have at least :min items.',
|
||||
'numeric' => 'The selected :attribute is invalid.',
|
||||
'present' => 'The :attribute field must be present.',
|
||||
'regex' => 'The :attribute must be a number.',
|
||||
'not_in' => ':attribute muss mindestens :min Elemente haben.',
|
||||
'numeric' => 'Das ausgewählte :attribute ist ungültig.',
|
||||
'present' => ':attribute muss ausgefüllt sein.',
|
||||
'regex' => ':attribute muss eine Zahl sein.',
|
||||
'required' => 'Das Format von :attribute ist ungültig.',
|
||||
'required_if' => 'The :attribute field is required.',
|
||||
'required_if' => ':attribute muss ausgefüllt sein.',
|
||||
'required_unless' => 'Das :attribute Feld ist erforderlich außer :other hat den Wert :values.',
|
||||
'required_with' => 'The :attribute field is required when :other is :value.',
|
||||
'required_with' => ':attribute muss angegeben werden, wenn :values ausgefüllt wurde.',
|
||||
'required_with_all' => ':attribute muss angegeben werden, wenn :values ausgefüllt wurde.',
|
||||
'required_without' => ':attribute muss angegeben werden, wenn :values ausgefüllt wurde.',
|
||||
'required_without_all' => 'The :attribute field is required when :values is not present.',
|
||||
'same' => 'The :attribute field is required when none of :values are present.',
|
||||
'required_without_all' => ':attribute muss angegeben werden, wenn :values nicht ausgefüllt wurde.',
|
||||
'same' => ':attribute ist erforderlich, wenn keines von :values vorhanden ist.',
|
||||
'size' => [
|
||||
'numeric' => 'The :attribute and :other must match.',
|
||||
'numeric' => ':attribute und :other müssen übereinstimmen.',
|
||||
'file' => ':attribute muss :size Kilobytes groß sein.',
|
||||
'string' => ':attribute muss :size Zeichen lang sein.',
|
||||
'array' => ':attribute muss :size Zeichen lang sein.',
|
||||
],
|
||||
'string' => 'The :attribute must contain :size items.',
|
||||
'string' => ':attribute muss :size Elemente beinhalten.',
|
||||
'timezone' => ':attribute muss eine gültige Zeitzone sein.',
|
||||
'unique' => ':attribute ist schon vergeben.',
|
||||
'url' => 'Das Format von :attribute ist ungültig.',
|
||||
|
||||