Compare commits

...

43 Commits

Author SHA1 Message Date
James Brooks
387818dbb2 Bump version 2016-07-17 16:38:24 +01:00
James Brooks
5d70d244ce Update feed package. Fixes #1973 2016-07-17 16:37:55 +01:00
James Brooks
ddc846d959 Back to dev 2016-07-16 09:54:54 +01:00
James Brooks
6fb6641499 Bump version 2016-07-16 09:54:28 +01:00
James Brooks
d5eb087eca Merge pull request #1976 from CachetHQ/cli
Don't use settings caching in cli
2016-07-15 07:48:26 +01:00
Graham Campbell
fd25edb2f0 Don't use settings caching in cli 2016-07-14 21:31:07 -07:00
Graham Campbell
5879a2cb1a Updated the exceptions package 2016-07-14 11:11:21 -07:00
Graham Campbell
df5b9b89e6 Updated dependencies 2016-07-13 18:25:27 -07:00
James Brooks
47a5569f02 Improve how we work out system status with scheduled maintenance 2016-07-13 14:19:35 +01:00
James Brooks
ca4a72c518 Merge pull request #1960 from PeterDaveHello/bump-node-dependencies
bump nodejs package dependencies
2016-07-13 13:57:49 +01:00
Peter Dave Hello
6e45b5ae88 bump nodejs package dependencies 2016-07-13 20:57:16 +08:00
James Brooks
99dbc2cd6c Merge pull request #1959 from PeterDaveHello/fix-file-permission
remove executable permission from the files don't need it
2016-07-12 09:31:22 +01:00
Peter Dave Hello
2f2ed53b58 remove executable permission from the files don't need it 2016-07-12 16:28:28 +08:00
James Brooks
7e1ead91ed Merge pull request #1958 from PeterDaveHello/image-optimize
optimize png images using zopflipng
2016-07-12 09:23:02 +01:00
Peter Dave Hello
28578474b9 optimize png images using zopflipng 2016-07-12 16:20:14 +08:00
James Brooks
d4e332bf55 Merge pull request #1956 from PeterDaveHello/patch-1
Update README.md
2016-07-12 09:15:37 +01:00
Peter Dave Hello
13f0f67a7b Update README.md
Use svg instead of png to get localized percentage badge for better image quality.
2016-07-12 16:14:54 +08:00
James Brooks
709cac9332 Merge pull request #1953 from CachetHQ/fix-setup
fix setup env writing
2016-07-11 19:03:48 +01:00
Joseph Cohen
e17196d4c9 fix setup env writing 2016-07-11 13:00:00 -05:00
James Brooks
80be140c1f Update ISSUE_TEMPLATE 2016-07-11 09:50:33 +01:00
James Brooks
4f9af8bca0 Remove blank line 2016-07-10 17:04:08 +01:00
James Brooks
af3b7836ff Back to dev 2016-07-10 10:39:42 +01:00
James Brooks
cc4a960ea6 Release v2.3.3 2016-07-10 10:39:19 +01:00
James Brooks
467d29ca11 Use numeric validation for metric points. Fixes #1950 2016-07-10 10:37:00 +01:00
James Brooks
ac1355771c Merge pull request #1947 from CachetHQ/set-locale
Set Date locale
2016-07-08 19:43:04 +01:00
James Brooks
c41adc1019 Override date locale again. Fixes #1727 2016-07-08 19:42:20 +01:00
James Brooks
5b74b2d625 Merge pull request #1949 from CachetHQ/dashboard-api-bus
The dashboard API needs to use the Command Bus
2016-07-08 18:39:38 +01:00
James Brooks
d7835f68ed Merge pull request #1948 from CachetHQ/analysis-zO37Lk
Applied fixes from StyleCI

[ci skip] [skip ci]
2016-07-08 17:42:17 +01:00
James Brooks
a1f1a2b969 Applied fixes from StyleCI
[ci skip] [skip ci]
2016-07-08 12:42:13 -04:00
James Brooks
77394995e4 The dashboard API needs to use the Command Bus. Fixes #1927 2016-07-08 17:42:01 +01:00
James Brooks
9953557497 Back to dev 2016-07-06 21:54:50 +01:00
James Brooks
4dc175b2be Correct dev version 2016-07-06 21:53:15 +01:00
James Brooks
4a2fe00c89 Bump version 2016-07-06 21:52:32 +01:00
James Brooks
db55283b85 Merge pull request #1940 from CachetHQ/analysis-86V7RW
Applied fixes from StyleCI

[ci skip] [skip ci]
2016-07-06 19:14:04 +01:00
James Brooks
5c6440e890 Sync languages 2016-07-06 19:14:21 +01:00
James Brooks
6b299b0a90 Applied fixes from StyleCI
[ci skip] [skip ci]
2016-07-06 14:14:00 -04:00
James Brooks
9b5d4aa7c4 Merge pull request #1939 from CachetHQ/metric-repository-prefix
Metric repository now knows prefixes
2016-07-06 19:03:42 +01:00
James Brooks
1fdda03199 Metric repository now knows prefixes. Fixes #1938 2016-07-06 18:42:31 +01:00
James Brooks
7c846d06ff Updated deps 2016-07-06 18:32:04 +01:00
James Brooks
e34e4381d4 Update VERSION 2016-07-06 18:24:58 +01:00
Graham Campbell
b255f71958 Merge pull request #1934 from odannyc/patch-1
Misspelled 'email'
2016-07-02 10:59:51 +01:00
Danny Carrillo
9560b2a0dc Misspelled 'email' 2016-07-01 13:55:28 -07:00
James Brooks
f8491ceead Back to dev 2016-06-27 22:10:37 +01:00
270 changed files with 779 additions and 669 deletions

View File

@@ -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

View File

@@ -3,7 +3,7 @@
[![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)
[![Software License](https://img.shields.io/badge/license-BSD3-brightgreen.svg?style=flat-square)](LICENSE)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/cachet/localized.png)](http://translate.cachethq.io/project/cachet)
[![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)

View File

@@ -1 +1 @@
2.3.1
2.3.5

View File

@@ -42,7 +42,7 @@ final class AddMetricPointCommand
* @var string[]
*/
public $rules = [
'value' => 'int',
'value' => 'numeric',
'created_at' => 'string',
];

View File

@@ -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)) {

View File

@@ -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')) {

View File

@@ -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);

View File

@@ -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());
}
/**

View File

@@ -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) {
//

View File

@@ -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));
}
/**

View File

@@ -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());
});
});
}

View 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';
}
}

View File

@@ -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'),
]);

View File

@@ -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'),
]);

View File

@@ -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
View File

View 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
View File

@@ -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
View File

View 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
View File

BIN
public/img/apple-touch-icon-114x114.png Executable file → Normal file

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
public/img/favicon-medium-alert.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

0
resources/assets/js/app.js Executable file → Normal file
View File

0
resources/assets/sass/_errors.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/_helpers.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/_palette.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/_status-page.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/app.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/modules/_bootstrap.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/modules/_forms.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/modules/_tabs.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/modules/_variables.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/modules/_well.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/pages/_dashboard.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/pages/_login.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/pages/_setup.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/partials/_base.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/partials/_content.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/partials/_modals.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/partials/_navbar.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/partials/_sidebar.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/partials/_wrapper.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/plugins/_animate.scss vendored Executable file → Normal file
View File

0
resources/assets/sass/plugins/_messenger.scss vendored Executable file → Normal file
View File

View File

0
resources/lang/af/cachet.php Executable file → Normal file
View File

0
resources/lang/af/dashboard.php Executable file → Normal file
View File

0
resources/lang/af/forms.php Executable file → Normal file
View File

0
resources/lang/af/pagination.php Executable file → Normal file
View File

0
resources/lang/af/setup.php Executable file → Normal file
View File

0
resources/lang/af/validation.php Executable file → Normal file
View File

0
resources/lang/ar/cachet.php Executable file → Normal file
View File

0
resources/lang/ar/dashboard.php Executable file → Normal file
View File

0
resources/lang/ar/forms.php Executable file → Normal file
View File

0
resources/lang/ar/pagination.php Executable file → Normal file
View File

0
resources/lang/ar/setup.php Executable file → Normal file
View File

0
resources/lang/ar/validation.php Executable file → Normal file
View File

0
resources/lang/ca/cachet.php Executable file → Normal file
View File

0
resources/lang/ca/dashboard.php Executable file → Normal file
View File

0
resources/lang/ca/forms.php Executable file → Normal file
View File

0
resources/lang/ca/pagination.php Executable file → Normal file
View File

0
resources/lang/ca/setup.php Executable file → Normal file
View File

0
resources/lang/ca/validation.php Executable file → Normal file
View File

0
resources/lang/cs/cachet.php Executable file → Normal file
View File

0
resources/lang/cs/dashboard.php Executable file → Normal file
View File

0
resources/lang/cs/forms.php Executable file → Normal file
View File

0
resources/lang/cs/pagination.php Executable file → Normal file
View File

0
resources/lang/cs/setup.php Executable file → Normal file
View File

0
resources/lang/cs/validation.php Executable file → Normal file
View File

0
resources/lang/da/cachet.php Executable file → Normal file
View File

0
resources/lang/da/dashboard.php Executable file → Normal file
View File

0
resources/lang/da/forms.php Executable file → Normal file
View File

0
resources/lang/da/pagination.php Executable file → Normal file
View File

0
resources/lang/da/setup.php Executable file → Normal file
View File

0
resources/lang/da/validation.php Executable file → Normal file
View File

12
resources/lang/de/cachet.php Executable file → Normal file
View 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
View 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
View 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
View File

0
resources/lang/de/setup.php Executable file → Normal file
View File

54
resources/lang/de/validation.php Executable file → Normal file
View 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.',

0
resources/lang/el/cachet.php Executable file → Normal file
View File

0
resources/lang/el/dashboard.php Executable file → Normal file
View File

0
resources/lang/el/forms.php Executable file → Normal file
View File

0
resources/lang/el/pagination.php Executable file → Normal file
View File

0
resources/lang/el/setup.php Executable file → Normal file
View File

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