mirror of
https://github.com/flarum/core.git
synced 2025-08-06 16:36:47 +02:00
chore: light tweaks
This commit is contained in:
@@ -6,6 +6,7 @@ import { ComponentAttrs } from 'flarum/common/Component';
|
|||||||
import Installer from './Installer';
|
import Installer from './Installer';
|
||||||
import Updater from './Updater';
|
import Updater from './Updater';
|
||||||
import Mithril from 'mithril';
|
import Mithril from 'mithril';
|
||||||
|
import Form from 'flarum/common/components/Form';
|
||||||
|
|
||||||
export default class ControlSection extends Component<ComponentAttrs> {
|
export default class ControlSection extends Component<ComponentAttrs> {
|
||||||
oninit(vnode: Mithril.Vnode<ComponentAttrs, this>) {
|
oninit(vnode: Mithril.Vnode<ComponentAttrs, this>) {
|
||||||
@@ -22,10 +23,10 @@ export default class ControlSection extends Component<ComponentAttrs> {
|
|||||||
</div>
|
</div>
|
||||||
<div className="container">
|
<div className="container">
|
||||||
{app.data['flarum-package-manager.writable_dirs'] ? (
|
{app.data['flarum-package-manager.writable_dirs'] ? (
|
||||||
<>
|
<Form>
|
||||||
<Installer />
|
<Installer />
|
||||||
<Updater />
|
<Updater />
|
||||||
</>
|
</Form>
|
||||||
) : (
|
) : (
|
||||||
<div className="Form-group">
|
<div className="Form-group">
|
||||||
<Alert type="warning" dismissible={false}>
|
<Alert type="warning" dismissible={false}>
|
||||||
|
@@ -13,6 +13,7 @@ import WhyNotModal from './WhyNotModal';
|
|||||||
import ExtensionItem from './ExtensionItem';
|
import ExtensionItem from './ExtensionItem';
|
||||||
import { AsyncBackendResponse } from '../shims';
|
import { AsyncBackendResponse } from '../shims';
|
||||||
import jumpToQueue from '../utils/jumpToQueue';
|
import jumpToQueue from '../utils/jumpToQueue';
|
||||||
|
import classList from 'flarum/common/utils/classList';
|
||||||
|
|
||||||
export interface MajorUpdaterAttrs extends ComponentAttrs {
|
export interface MajorUpdaterAttrs extends ComponentAttrs {
|
||||||
coreUpdate: UpdatedPackage;
|
coreUpdate: UpdatedPackage;
|
||||||
@@ -33,7 +34,12 @@ export default class MajorUpdater<T extends MajorUpdaterAttrs = MajorUpdaterAttr
|
|||||||
view(): Mithril.Children {
|
view(): Mithril.Children {
|
||||||
// @todo move Form-group--danger class to core for reuse
|
// @todo move Form-group--danger class to core for reuse
|
||||||
return (
|
return (
|
||||||
<div className="Form-group Form-group--danger PackageManager-majorUpdate">
|
<div
|
||||||
|
className={classList('Form-group Form-group--danger PackageManager-majorUpdate', {
|
||||||
|
'PackageManager-majorUpdate--failed': this.updateState.status === 'failure',
|
||||||
|
'PackageManager-majorUpdate--incompatibleExtensions': this.updateState.incompatibleExtensions.length,
|
||||||
|
})}
|
||||||
|
>
|
||||||
<img alt="flarum logo" src={app.forum.attribute('baseUrl') + '/assets/extensions/flarum-package-manager/flarum.svg'} />
|
<img alt="flarum logo" src={app.forum.attribute('baseUrl') + '/assets/extensions/flarum-package-manager/flarum.svg'} />
|
||||||
<label>{app.translator.trans('flarum-package-manager.admin.major_updater.title', { version: this.attrs.coreUpdate['latest-major'] })}</label>
|
<label>{app.translator.trans('flarum-package-manager.admin.major_updater.title', { version: this.attrs.coreUpdate['latest-major'] })}</label>
|
||||||
<p className="helpText">{app.translator.trans('flarum-package-manager.admin.major_updater.description')}</p>
|
<p className="helpText">{app.translator.trans('flarum-package-manager.admin.major_updater.description')}</p>
|
||||||
|
@@ -56,12 +56,12 @@ export default class Updater extends Component<IUpdaterAttrs> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(state.extensionUpdates.length || state.coreUpdate)) {
|
const hasMinorCoreUpdate = state.coreUpdate && state.coreUpdate.package['latest-minor'];
|
||||||
|
|
||||||
|
if (!(state.extensionUpdates.length || hasMinorCoreUpdate)) {
|
||||||
return (
|
return (
|
||||||
<div className="PackageManager-extensions">
|
<div className="PackageManager-extensions">
|
||||||
<Alert type="success" dismissible={false}>
|
<span className="helpText">{app.translator.trans('flarum-package-manager.admin.updater.up_to_date')}</span>
|
||||||
{app.translator.trans('flarum-package-manager.admin.updater.up_to_date')}
|
|
||||||
</Alert>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -69,10 +69,10 @@ export default class Updater extends Component<IUpdaterAttrs> {
|
|||||||
return (
|
return (
|
||||||
<div className="PackageManager-extensions">
|
<div className="PackageManager-extensions">
|
||||||
<div className="PackageManager-extensions-grid">
|
<div className="PackageManager-extensions-grid">
|
||||||
{state.coreUpdate ? (
|
{hasMinorCoreUpdate ? (
|
||||||
<ExtensionItem
|
<ExtensionItem
|
||||||
extension={state.coreUpdate.extension}
|
extension={state.coreUpdate!.extension}
|
||||||
updates={state.coreUpdate.package}
|
updates={state.coreUpdate!.package}
|
||||||
isCore={true}
|
isCore={true}
|
||||||
onClickUpdate={() => state.updateCoreMinor()}
|
onClickUpdate={() => state.updateCoreMinor()}
|
||||||
whyNotWarning={state.lastUpdateRun.limitedPackages().includes('flarum/core')}
|
whyNotWarning={state.lastUpdateRun.limitedPackages().includes('flarum/core')}
|
||||||
|
@@ -15,10 +15,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.PackageManager-extensions {
|
.PackageManager-extensions {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
&-grid {
|
&-grid {
|
||||||
--gap: 12px;
|
--gap: 12px;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, calc(~"100% / 3 - var(--gap)"));
|
grid-template-columns: repeat(auto-fit, 310px);
|
||||||
gap: var(--gap);
|
gap: var(--gap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -86,12 +88,35 @@
|
|||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
"title logo"
|
"title logo"
|
||||||
"helpText logo"
|
"helpText logo"
|
||||||
"controls logo"
|
"controls logo";
|
||||||
"extensions extensions"
|
column-gap: 0 var(--space);
|
||||||
"failure failure";
|
|
||||||
grid-gap: 0 var(--space);
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
&--failed&--incompatibleExtensions {
|
||||||
|
grid-template-areas:
|
||||||
|
"title logo"
|
||||||
|
"helpText logo"
|
||||||
|
"controls logo"
|
||||||
|
"extensions extensions"
|
||||||
|
"failure failure";
|
||||||
|
}
|
||||||
|
|
||||||
|
&--failed {
|
||||||
|
grid-template-areas:
|
||||||
|
"title logo"
|
||||||
|
"helpText logo"
|
||||||
|
"controls logo"
|
||||||
|
"failure failure";
|
||||||
|
}
|
||||||
|
|
||||||
|
&--incompatibleExtensions {
|
||||||
|
grid-template-areas:
|
||||||
|
"title logo"
|
||||||
|
"helpText logo"
|
||||||
|
"controls logo"
|
||||||
|
"extensions extensions";
|
||||||
|
}
|
||||||
|
|
||||||
> img {
|
> img {
|
||||||
grid-area: logo;
|
grid-area: logo;
|
||||||
}
|
}
|
||||||
@@ -116,6 +141,10 @@
|
|||||||
padding-top: var(--space);
|
padding-top: var(--space);
|
||||||
border-top: 1px solid var(--control-bg);
|
border-top: 1px solid var(--control-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.PackageManager-updaterControls {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.WhyNotModal {
|
.WhyNotModal {
|
||||||
@@ -131,3 +160,7 @@
|
|||||||
width: 300px;
|
width: 300px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.PackageManager-controlSection .container {
|
||||||
|
max-width: 900px;
|
||||||
|
}
|
||||||
|
@@ -25,7 +25,9 @@ flarum-package-manager:
|
|||||||
The package manager requires read and write permissions on the following files and directories: composer.json, composer.lock, vendor, storage, storage/.composer
|
The package manager requires read and write permissions on the following files and directories: composer.json, composer.lock, vendor, storage, storage/.composer
|
||||||
|
|
||||||
major_updater:
|
major_updater:
|
||||||
description: Major Flarum updates are not backwards compatible, meaning that some of your currently installed extensions, and manually made modifications might not work with this new version.
|
description: >
|
||||||
|
Major Flarum updates are not backwards compatible, meaning that some of your currently installed extensions, and manually made modifications might not work with this new version.
|
||||||
|
Please make sure to make a backup of your database and files before proceeding.
|
||||||
dry_run: Dry Run
|
dry_run: Dry Run
|
||||||
dry_run_help: A dry run emulates the update to see if your current setup can safely update, this does not mean that your manual made custom modifications will work in the newer version.
|
dry_run_help: A dry run emulates the update to see if your current setup can safely update, this does not mean that your manual made custom modifications will work in the newer version.
|
||||||
failure:
|
failure:
|
||||||
|
@@ -13,7 +13,7 @@ use Flarum\Api\Controller\AbstractListController;
|
|||||||
use Flarum\Http\RequestUtil;
|
use Flarum\Http\RequestUtil;
|
||||||
use Flarum\Http\UrlGenerator;
|
use Flarum\Http\UrlGenerator;
|
||||||
use Flarum\PackageManager\Api\Serializer\TaskSerializer;
|
use Flarum\PackageManager\Api\Serializer\TaskSerializer;
|
||||||
use Flarum\PackageManager\Task\TaskRepository;
|
use Flarum\PackageManager\Task\Task;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
@@ -23,7 +23,6 @@ class ListTasksController extends AbstractListController
|
|||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
protected UrlGenerator $url,
|
protected UrlGenerator $url,
|
||||||
protected TaskRepository $repository
|
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,14 +35,13 @@ class ListTasksController extends AbstractListController
|
|||||||
$limit = $this->extractLimit($request);
|
$limit = $this->extractLimit($request);
|
||||||
$offset = $this->extractOffset($request);
|
$offset = $this->extractOffset($request);
|
||||||
|
|
||||||
$results = $this->repository
|
$results = Task::query()
|
||||||
->query()
|
|
||||||
->latest()
|
->latest()
|
||||||
->offset($offset)
|
->offset($offset)
|
||||||
->limit($limit)
|
->limit($limit)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
$total = $this->repository->query()->count();
|
$total = Task::query()->count();
|
||||||
|
|
||||||
$document->addMeta('total', (string) $total);
|
$document->addMeta('total', (string) $total);
|
||||||
|
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Task;
|
||||||
|
|
||||||
abstract class AbstractActionCommand
|
abstract class AbstractActionCommand
|
||||||
@@ -16,5 +17,5 @@ abstract class AbstractActionCommand
|
|||||||
public ?Task $task = null;
|
public ?Task $task = null;
|
||||||
public ?string $package = null;
|
public ?string $package = null;
|
||||||
|
|
||||||
abstract public function getOperationName(): string;
|
abstract public function getOperationName(): Operation;
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
|
||||||
class CheckForUpdates extends AbstractActionCommand
|
class CheckForUpdates extends AbstractActionCommand
|
||||||
@@ -19,8 +19,8 @@ class CheckForUpdates extends AbstractActionCommand
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOperationName(): string
|
public function getOperationName(): Operation
|
||||||
{
|
{
|
||||||
return Task::UPDATE_CHECK;
|
return Operation::UPDATE_CHECK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
|
||||||
class GlobalUpdate extends AbstractActionCommand
|
class GlobalUpdate extends AbstractActionCommand
|
||||||
@@ -19,8 +19,8 @@ class GlobalUpdate extends AbstractActionCommand
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOperationName(): string
|
public function getOperationName(): Operation
|
||||||
{
|
{
|
||||||
return Task::UPDATE_GLOBAL;
|
return Operation::UPDATE_GLOBAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
|
||||||
class MajorUpdate extends AbstractActionCommand
|
class MajorUpdate extends AbstractActionCommand
|
||||||
@@ -20,8 +20,8 @@ class MajorUpdate extends AbstractActionCommand
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOperationName(): string
|
public function getOperationName(): Operation
|
||||||
{
|
{
|
||||||
return Task::UPDATE_MAJOR;
|
return Operation::UPDATE_MAJOR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
|
||||||
class MinorUpdate extends AbstractActionCommand
|
class MinorUpdate extends AbstractActionCommand
|
||||||
@@ -19,8 +19,8 @@ class MinorUpdate extends AbstractActionCommand
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOperationName(): string
|
public function getOperationName(): Operation
|
||||||
{
|
{
|
||||||
return Task::UPDATE_MINOR;
|
return Operation::UPDATE_MINOR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
|
||||||
class RemoveExtension extends AbstractActionCommand
|
class RemoveExtension extends AbstractActionCommand
|
||||||
@@ -20,8 +20,8 @@ class RemoveExtension extends AbstractActionCommand
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOperationName(): string
|
public function getOperationName(): Operation
|
||||||
{
|
{
|
||||||
return Task::EXTENSION_REMOVE;
|
return Operation::EXTENSION_REMOVE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
|
||||||
class RequireExtension extends AbstractActionCommand
|
class RequireExtension extends AbstractActionCommand
|
||||||
@@ -20,8 +20,8 @@ class RequireExtension extends AbstractActionCommand
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOperationName(): string
|
public function getOperationName(): Operation
|
||||||
{
|
{
|
||||||
return Task::EXTENSION_INSTALL;
|
return Operation::EXTENSION_INSTALL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
|
||||||
class UpdateExtension extends AbstractActionCommand
|
class UpdateExtension extends AbstractActionCommand
|
||||||
@@ -20,8 +20,8 @@ class UpdateExtension extends AbstractActionCommand
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOperationName(): string
|
public function getOperationName(): Operation
|
||||||
{
|
{
|
||||||
return Task::EXTENSION_UPDATE;
|
return Operation::EXTENSION_UPDATE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Flarum\PackageManager\Command;
|
namespace Flarum\PackageManager\Command;
|
||||||
|
|
||||||
use Flarum\PackageManager\Task\Task;
|
use Flarum\PackageManager\Task\Operation;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
|
||||||
class WhyNot extends AbstractActionCommand
|
class WhyNot extends AbstractActionCommand
|
||||||
@@ -21,8 +21,8 @@ class WhyNot extends AbstractActionCommand
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOperationName(): string
|
public function getOperationName(): Operation
|
||||||
{
|
{
|
||||||
return Task::WHY_NOT;
|
return Operation::WHY_NOT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,7 +23,7 @@ class Dispatcher
|
|||||||
* Runs synchronously regardless of user setting if set true.
|
* Runs synchronously regardless of user setting if set true.
|
||||||
* Asynchronously if set false.
|
* Asynchronously if set false.
|
||||||
*/
|
*/
|
||||||
protected ?bool $runSyncOverride;
|
protected ?bool $runSyncOverride = null;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
protected Bus $bus,
|
protected Bus $bus,
|
||||||
|
15
extensions/package-manager/src/Task/Operation.php
Normal file
15
extensions/package-manager/src/Task/Operation.php
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Flarum\PackageManager\Task;
|
||||||
|
|
||||||
|
enum Operation: string
|
||||||
|
{
|
||||||
|
case EXTENSION_INSTALL = 'extension_install';
|
||||||
|
case EXTENSION_REMOVE = 'extension_remove';
|
||||||
|
case EXTENSION_UPDATE = 'extension_update';
|
||||||
|
case UPDATE_GLOBAL = 'update_global';
|
||||||
|
case UPDATE_MINOR = 'update_minor';
|
||||||
|
case UPDATE_MAJOR = 'update_major';
|
||||||
|
case UPDATE_CHECK = 'update_check';
|
||||||
|
case WHY_NOT = 'why_not';
|
||||||
|
}
|
11
extensions/package-manager/src/Task/Status.php
Normal file
11
extensions/package-manager/src/Task/Status.php
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Flarum\PackageManager\Task;
|
||||||
|
|
||||||
|
enum Status: string
|
||||||
|
{
|
||||||
|
case PENDING = 'pending';
|
||||||
|
case RUNNING = 'running';
|
||||||
|
case FAILURE = 'failure';
|
||||||
|
case SUCCESS = 'success';
|
||||||
|
}
|
@@ -14,8 +14,8 @@ use Flarum\Database\AbstractModel;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @property int $id
|
* @property int $id
|
||||||
* @property int $status
|
* @property Status $status
|
||||||
* @property string $operation
|
* @property Operation $operation
|
||||||
* @property string $command
|
* @property string $command
|
||||||
* @property string $package
|
* @property string $package
|
||||||
* @property string $output
|
* @property string $output
|
||||||
@@ -26,26 +26,6 @@ use Flarum\Database\AbstractModel;
|
|||||||
*/
|
*/
|
||||||
class Task extends AbstractModel
|
class Task extends AbstractModel
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Statuses (@todo use an enum with php8.1).
|
|
||||||
*/
|
|
||||||
public const PENDING = 'pending';
|
|
||||||
public const RUNNING = 'running';
|
|
||||||
public const FAILURE = 'failure';
|
|
||||||
public const SUCCESS = 'success';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Operations (@todo use an enum with php8.1).
|
|
||||||
*/
|
|
||||||
public const EXTENSION_INSTALL = 'extension_install';
|
|
||||||
public const EXTENSION_REMOVE = 'extension_remove';
|
|
||||||
public const EXTENSION_UPDATE = 'extension_update';
|
|
||||||
public const UPDATE_GLOBAL = 'update_global';
|
|
||||||
public const UPDATE_MINOR = 'update_minor';
|
|
||||||
public const UPDATE_MAJOR = 'update_major';
|
|
||||||
public const UPDATE_CHECK = 'update_check';
|
|
||||||
public const WHY_NOT = 'why_not';
|
|
||||||
|
|
||||||
public const UPDATED_AT = null;
|
public const UPDATED_AT = null;
|
||||||
|
|
||||||
protected $table = 'package_manager_tasks';
|
protected $table = 'package_manager_tasks';
|
||||||
@@ -58,15 +38,17 @@ class Task extends AbstractModel
|
|||||||
self::CREATED_AT => 'datetime',
|
self::CREATED_AT => 'datetime',
|
||||||
'started_at' => 'datetime',
|
'started_at' => 'datetime',
|
||||||
'finished_at' => 'datetime',
|
'finished_at' => 'datetime',
|
||||||
|
'status' => Status::class,
|
||||||
|
'operation' => Operation::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
public static function build(string $operation, ?string $package): self
|
public static function build(Operation $operation, ?string $package): self
|
||||||
{
|
{
|
||||||
$task = new static;
|
$task = new static;
|
||||||
|
|
||||||
$task->operation = $operation;
|
$task->operation = $operation;
|
||||||
$task->package = $package;
|
$task->package = $package;
|
||||||
$task->status = static::PENDING;
|
$task->status = Status::PENDING;
|
||||||
$task->created_at = Carbon::now();
|
$task->created_at = Carbon::now();
|
||||||
|
|
||||||
$task->save();
|
$task->save();
|
||||||
@@ -76,7 +58,7 @@ class Task extends AbstractModel
|
|||||||
|
|
||||||
public function start(): bool
|
public function start(): bool
|
||||||
{
|
{
|
||||||
$this->status = static::RUNNING;
|
$this->status = Status::RUNNING;
|
||||||
$this->started_at = Carbon::now();
|
$this->started_at = Carbon::now();
|
||||||
|
|
||||||
return $this->save();
|
return $this->save();
|
||||||
@@ -84,7 +66,7 @@ class Task extends AbstractModel
|
|||||||
|
|
||||||
public function end(bool $success): bool
|
public function end(bool $success): bool
|
||||||
{
|
{
|
||||||
$this->status = $success ? static::SUCCESS : static::FAILURE;
|
$this->status = $success ? Status::SUCCESS : Status::FAILURE;
|
||||||
$this->finished_at = Carbon::now();
|
$this->finished_at = Carbon::now();
|
||||||
$this->peak_memory_used = round(memory_get_peak_usage() / 1024);
|
$this->peak_memory_used = round(memory_get_peak_usage() / 1024);
|
||||||
|
|
||||||
|
@@ -1,29 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Flarum.
|
|
||||||
*
|
|
||||||
* For detailed copyright and license information, please view the
|
|
||||||
* LICENSE file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Flarum\PackageManager\Task;
|
|
||||||
|
|
||||||
use Flarum\User\User;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
|
|
||||||
class TaskRepository
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @return Builder
|
|
||||||
*/
|
|
||||||
public function query(): Builder
|
|
||||||
{
|
|
||||||
return Task::query();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function findOrFail(int $id, ?User $actor = null): Task
|
|
||||||
{
|
|
||||||
return Task::findOrFail($id);
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user