1
0
mirror of https://github.com/flarum/core.git synced 2025-08-08 17:36:38 +02:00

chore: rename package-manager to extension-manager

This commit is contained in:
Sami Mazouz
2024-01-10 15:56:32 +01:00
parent 8205ae5bf5
commit 207032f6ff
115 changed files with 586 additions and 493 deletions

View File

@@ -1,4 +1,4 @@
name: Package Manager PHP name: Extension Manager PHP
on: [workflow_dispatch, push, pull_request] on: [workflow_dispatch, push, pull_request]

View File

@@ -46,7 +46,7 @@
"Flarum\\Lock\\": "extensions/lock/src", "Flarum\\Lock\\": "extensions/lock/src",
"Flarum\\Mentions\\": "extensions/mentions/src", "Flarum\\Mentions\\": "extensions/mentions/src",
"Flarum\\Nicknames\\": "extensions/nicknames/src", "Flarum\\Nicknames\\": "extensions/nicknames/src",
"Flarum\\PackageManager\\": "extensions/package-manager/src", "Flarum\\ExtensionManager\\": "extensions/extension-manager/src",
"Flarum\\Pusher\\": "extensions/pusher/src", "Flarum\\Pusher\\": "extensions/pusher/src",
"Flarum\\Statistics\\": "extensions/statistics/src", "Flarum\\Statistics\\": "extensions/statistics/src",
"Flarum\\Sticky\\": "extensions/sticky/src", "Flarum\\Sticky\\": "extensions/sticky/src",
@@ -74,7 +74,7 @@
"flarum/markdown": "self.version", "flarum/markdown": "self.version",
"flarum/mentions": "self.version", "flarum/mentions": "self.version",
"flarum/nicknames": "self.version", "flarum/nicknames": "self.version",
"flarum/package-manager": "self.version", "flarum/extension-manager": "self.version",
"flarum/pusher": "self.version", "flarum/pusher": "self.version",
"flarum/statistics": "self.version", "flarum/statistics": "self.version",
"flarum/sticky": "self.version", "flarum/sticky": "self.version",
@@ -165,7 +165,7 @@
"extensions/markdown", "extensions/markdown",
"extensions/mentions", "extensions/mentions",
"extensions/nicknames", "extensions/nicknames",
"extensions/package-manager", "extensions/extension-manager",
"extensions/pusher", "extensions/pusher",
"extensions/statistics", "extensions/statistics",
"extensions/sticky", "extensions/sticky",

View File

@@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) Sami Mazouz Copyright (c) 2024 Stichting Flarum (Flarum Foundation)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,6 +1,6 @@
# Package Manager # Extension Manager
The package manager is a tool that allows you to easily install and manage extensions. It runs [composer](https://getcomposer.org/) under the hood. The extension manager is a tool that allows you to easily install and manage extensions. It runs [composer](https://getcomposer.org/) under the hood.
## Security ## Security
@@ -10,9 +10,9 @@ This extension is optional and can be removed for those who prefer to manually m
## Troubleshooting ## Troubleshooting
If you have many extensions installed, you may run into memory issues when using the package manager. If this happens, you can use an asynchronous queue that will run the package manager in the background. If you have many extensions installed, you may run into memory issues when using the extension manager. If this happens, you can use an asynchronous queue that will run the extension manager in the background.
* Simple database queue guide: https://discuss.flarum.org/d/28151-database-queue-the-simplest-queue-even-for-shared-hosting * Simple database queue guide: https://discuss.flarum.org/d/28151-database-queue-the-simplest-queue-even-for-shared-hosting
* (Advanced) Redis queue: https://discuss.flarum.org/d/21873-redis-sessions-cache-queues * (Advanced) Redis queue: https://discuss.flarum.org/d/21873-redis-sessions-cache-queues
You can find detailed logs on the package manager operations in the `storage/logs/composer` directory. Please include the latest log file when reporting issues in the [Flarum support forum](https://discuss.flarum.org/t/support). You can find detailed logs on the extension manager operations in the `storage/logs/composer` directory. Please include the latest log file when reporting issues in the [Flarum support forum](https://discuss.flarum.org/t/support).

View File

@@ -1,6 +1,6 @@
{ {
"name": "flarum/package-manager", "name": "flarum/extension-manager",
"description": "A Flarum Package Manager.", "description": "An extension manager to install, update and remove extension packages from the interface (Wrapper around composer).",
"keywords": [ "keywords": [
"extensions", "extensions",
"composer", "composer",
@@ -18,8 +18,8 @@
} }
], ],
"support": { "support": {
"issues": "https://github.com/flarum/package-manager/issues", "issues": "https://github.com/flarum/framework/issues",
"source": "https://github.com/flarum/package-manager" "source": "https://github.com/flarum/extension-manager"
}, },
"require": { "require": {
"flarum/core": "^1.8", "flarum/core": "^1.8",
@@ -31,7 +31,7 @@
}, },
"extra": { "extra": {
"flarum-extension": { "flarum-extension": {
"title": "Package Manager", "title": "Extension Manager",
"icon": { "icon": {
"name": "fas fa-box-open", "name": "fas fa-box-open",
"backgroundColor": "#117187", "backgroundColor": "#117187",
@@ -69,12 +69,12 @@
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Flarum\\PackageManager\\": "src/" "Flarum\\ExtensionManager\\": "src/"
} }
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"Flarum\\PackageManager\\Tests\\": "tests/" "Flarum\\ExtensionManager\\Tests\\": "tests/"
} }
}, },
"scripts": { "scripts": {

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager; namespace Flarum\ExtensionManager;
use Flarum\Extend; use Flarum\Extend;
use Flarum\Foundation\Paths; use Flarum\Foundation\Paths;
@@ -17,16 +17,16 @@ use Illuminate\Queue\SyncQueue;
return [ return [
(new Extend\Routes('api')) (new Extend\Routes('api'))
->post('/package-manager/extensions', 'package-manager.extensions.require', Api\Controller\RequireExtensionController::class) ->post('/extension-manager/extensions', 'extension-manager.extensions.require', Api\Controller\RequireExtensionController::class)
->patch('/package-manager/extensions/{id}', 'package-manager.extensions.update', Api\Controller\UpdateExtensionController::class) ->patch('/extension-manager/extensions/{id}', 'extension-manager.extensions.update', Api\Controller\UpdateExtensionController::class)
->delete('/package-manager/extensions/{id}', 'package-manager.extensions.remove', Api\Controller\RemoveExtensionController::class) ->delete('/extension-manager/extensions/{id}', 'extension-manager.extensions.remove', Api\Controller\RemoveExtensionController::class)
->post('/package-manager/check-for-updates', 'package-manager.check-for-updates', Api\Controller\CheckForUpdatesController::class) ->post('/extension-manager/check-for-updates', 'extension-manager.check-for-updates', Api\Controller\CheckForUpdatesController::class)
->post('/package-manager/why-not', 'package-manager.why-not', Api\Controller\WhyNotController::class) ->post('/extension-manager/why-not', 'extension-manager.why-not', Api\Controller\WhyNotController::class)
->post('/package-manager/minor-update', 'package-manager.minor-update', Api\Controller\MinorUpdateController::class) ->post('/extension-manager/minor-update', 'extension-manager.minor-update', Api\Controller\MinorUpdateController::class)
->post('/package-manager/major-update', 'package-manager.major-update', Api\Controller\MajorUpdateController::class) ->post('/extension-manager/major-update', 'extension-manager.major-update', Api\Controller\MajorUpdateController::class)
->post('/package-manager/global-update', 'package-manager.global-update', Api\Controller\GlobalUpdateController::class) ->post('/extension-manager/global-update', 'extension-manager.global-update', Api\Controller\GlobalUpdateController::class)
->get('/package-manager-tasks', 'package-manager.tasks.index', Api\Controller\ListTasksController::class) ->get('/extension-manager-tasks', 'extension-manager.tasks.index', Api\Controller\ListTasksController::class)
->post('/package-manager/composer', 'package-manager.composer', Api\Controller\ConfigureComposerController::class), ->post('/extension-manager/composer', 'extension-manager.composer', Api\Controller\ConfigureComposerController::class),
(new Extend\Frontend('admin')) (new Extend\Frontend('admin'))
->css(__DIR__.'/less/admin.less') ->css(__DIR__.'/less/admin.less')
@@ -34,13 +34,13 @@ return [
->content(function (Document $document) { ->content(function (Document $document) {
$paths = resolve(Paths::class); $paths = resolve(Paths::class);
$document->payload['flarum-package-manager.writable_dirs'] = is_writable($paths->vendor) $document->payload['flarum-extension-manager.writable_dirs'] = is_writable($paths->vendor)
&& is_writable($paths->storage) && is_writable($paths->storage)
&& (! file_exists($paths->storage.'/.composer') || is_writable($paths->storage.'/.composer')) && (! file_exists($paths->storage.'/.composer') || is_writable($paths->storage.'/.composer'))
&& is_writable($paths->base.'/composer.json') && is_writable($paths->base.'/composer.json')
&& is_writable($paths->base.'/composer.lock'); && is_writable($paths->base.'/composer.lock');
$document->payload['flarum-package-manager.using_sync_queue'] = resolve(Queue::class) instanceof SyncQueue; $document->payload['flarum-extension-manager.using_sync_queue'] = resolve(Queue::class) instanceof SyncQueue;
}), }),
new Extend\Locales(__DIR__.'/locale'), new Extend\Locales(__DIR__.'/locale'),
@@ -48,12 +48,12 @@ return [
(new Extend\Settings()) (new Extend\Settings())
->default(Settings\LastUpdateCheck::key(), json_encode(Settings\LastUpdateCheck::default())) ->default(Settings\LastUpdateCheck::key(), json_encode(Settings\LastUpdateCheck::default()))
->default(Settings\LastUpdateRun::key(), json_encode(Settings\LastUpdateRun::default())) ->default(Settings\LastUpdateRun::key(), json_encode(Settings\LastUpdateRun::default()))
->default('flarum-package-manager.queue_jobs', false) ->default('flarum-extension-manager.queue_jobs', '0')
->default('flarum-package-manager.minimum_stability', 'stable') ->default('flarum-extension-manager.minimum_stability', 'stable')
->default('flarum-package-manager.task_retention_days', 7), ->default('flarum-extension-manager.task_retention_days', 7),
(new Extend\ServiceProvider) (new Extend\ServiceProvider)
->register(PackageManagerServiceProvider::class), ->register(ExtensionManagerServiceProvider::class),
(new Extend\ErrorHandling) (new Extend\ErrorHandling)
->handler(Exception\ComposerCommandFailedException::class, Exception\ExceptionHandler::class) ->handler(Exception\ComposerCommandFailedException::class, Exception\ExceptionHandler::class)

View File

@@ -47,6 +47,7 @@ export default class ControlSectionState {
get lastUpdateRun(): LastUpdateRun; get lastUpdateRun(): LastUpdateRun;
constructor(); constructor();
isLoading(name?: LoadingTypes): boolean; isLoading(name?: LoadingTypes): boolean;
hasOperationRunning(): boolean;
setLoading(name: LoadingTypes): void; setLoading(name: LoadingTypes): void;
requirePackage(data: any): void; requirePackage(data: any): void;
checkForUpdates(): void; checkForUpdates(): void;

View File

@@ -1,6 +1,6 @@
import QueueState from './QueueState'; import QueueState from './QueueState';
import ControlSectionState from './ControlSectionState'; import ControlSectionState from './ControlSectionState';
export default class PackageManagerState { export default class ExtensionManagerState {
queue: QueueState; queue: QueueState;
control: ControlSectionState; control: ControlSectionState;
} }

View File

@@ -15,4 +15,5 @@ export default class QueueState {
prev(): void; prev(): void;
next(): void; next(): void;
pollQueue(actionTaken?: boolean): void; pollQueue(actionTaken?: boolean): void;
hasPending(): boolean;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
{ {
"name": "@flarum/package-manager", "name": "@flarum/extension-manager",
"version": "0.0.0", "version": "0.0.0",
"private": true, "private": true,
"prettier": "@flarum/prettier-config", "prettier": "@flarum/prettier-config",

View File

@@ -32,40 +32,40 @@ export default class AuthMethodModal<CustomAttrs extends IAuthMethodModalAttrs =
title(): Mithril.Children { title(): Mithril.Children {
const context = this.attrs.host ? 'edit' : 'add'; const context = this.attrs.host ? 'edit' : 'add';
return app.translator.trans(`flarum-package-manager.admin.auth_config.${context}_label`); return app.translator.trans(`flarum-extension-manager.admin.auth_config.${context}_label`);
} }
content(): Mithril.Children { content(): Mithril.Children {
const types = { const types = {
'github-oauth': app.translator.trans('flarum-package-manager.admin.auth_config.types.github-oauth'), 'github-oauth': app.translator.trans('flarum-extension-manager.admin.auth_config.types.github-oauth'),
'gitlab-oauth': app.translator.trans('flarum-package-manager.admin.auth_config.types.gitlab-oauth'), 'gitlab-oauth': app.translator.trans('flarum-extension-manager.admin.auth_config.types.gitlab-oauth'),
'gitlab-token': app.translator.trans('flarum-package-manager.admin.auth_config.types.gitlab-token'), 'gitlab-token': app.translator.trans('flarum-extension-manager.admin.auth_config.types.gitlab-token'),
bearer: app.translator.trans('flarum-package-manager.admin.auth_config.types.bearer'), bearer: app.translator.trans('flarum-extension-manager.admin.auth_config.types.bearer'),
}; };
return ( return (
<div className="Modal-body"> <div className="Modal-body">
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.auth_config.add_modal.type_label')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.type_label')}</label>
<Select options={types} value={this.type()} onchange={this.type} /> <Select options={types} value={this.type()} onchange={this.type} />
</div> </div>
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.auth_config.add_modal.host_label')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.host_label')}</label>
<input <input
className="FormControl" className="FormControl"
bidi={this.host} bidi={this.host}
placeholder={app.translator.trans('flarum-package-manager.admin.auth_config.add_modal.host_placeholder')} placeholder={app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.host_placeholder')}
/> />
</div> </div>
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.auth_config.add_modal.token_label')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.token_label')}</label>
<textarea <textarea
className="FormControl" className="FormControl"
oninput={(e: InputEvent) => this.token((e.target as HTMLTextAreaElement).value)} oninput={(e: InputEvent) => this.token((e.target as HTMLTextAreaElement).value)}
rows="6" rows="6"
placeholder={ placeholder={
this.token().startsWith('unchanged:') this.token().startsWith('unchanged:')
? extractText(app.translator.trans('flarum-package-manager.admin.auth_config.add_modal.unchanged_token_placeholder')) ? extractText(app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.unchanged_token_placeholder'))
: '' : ''
} }
> >
@@ -74,7 +74,7 @@ export default class AuthMethodModal<CustomAttrs extends IAuthMethodModalAttrs =
</div> </div>
<div className="Form-group"> <div className="Form-group">
<Button className="Button Button--primary" onclick={this.submit.bind(this)}> <Button className="Button Button--primary" onclick={this.submit.bind(this)}>
{app.translator.trans('flarum-package-manager.admin.auth_config.add_modal.submit_button')} {app.translator.trans('flarum-extension-manager.admin.auth_config.add_modal.submit_button')}
</Button> </Button>
</div> </div>
</div> </div>

View File

@@ -9,7 +9,7 @@ export default class ConfigureAuth extends ConfigureJson<IConfigureJson> {
protected type = 'auth'; protected type = 'auth';
title(): Mithril.Children { title(): Mithril.Children {
return app.translator.trans('flarum-package-manager.admin.auth_config.title'); return app.translator.trans('flarum-extension-manager.admin.auth_config.title');
} }
className(): string { className(): string {
@@ -27,14 +27,14 @@ export default class ConfigureAuth extends ConfigureJson<IConfigureJson> {
}); });
return ( return (
<div className="SettingsGroups-content"> <div className="ExtensionManager-SettingsGroups-content">
{hasAuthSettings ? ( {hasAuthSettings ? (
authSettings.map((type) => { authSettings.map((type) => {
const hosts = this.settings[type](); const hosts = this.settings[type]();
return ( return (
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans(`flarum-package-manager.admin.auth_config.types.${type}`)}</label> <label>{app.translator.trans(`flarum-extension-manager.admin.auth_config.types.${type}`)}</label>
<div className="ConfigureAuth-hosts"> <div className="ConfigureAuth-hosts">
{Object.keys(hosts).map((host) => { {Object.keys(hosts).map((host) => {
const data = hosts[host] as string | Record<string, string>; const data = hosts[host] as string | Record<string, string>;
@@ -58,9 +58,9 @@ export default class ConfigureAuth extends ConfigureJson<IConfigureJson> {
<Button <Button
className="Button Button--icon" className="Button Button--icon"
icon="fas fa-trash" icon="fas fa-trash"
aria-label={app.translator.trans('flarum-package-manager.admin.auth_config.delete_label')} aria-label={app.translator.trans('flarum-extension-manager.admin.auth_config.delete_label')}
onclick={() => { onclick={() => {
if (confirm(extractText(app.translator.trans('flarum-package-manager.admin.auth_config.delete_confirmation')))) { if (confirm(extractText(app.translator.trans('flarum-extension-manager.admin.auth_config.delete_confirmation')))) {
const newType = { ...this.setting(type)() }; const newType = { ...this.setting(type)() };
delete newType[host]; delete newType[host];
@@ -80,7 +80,7 @@ export default class ConfigureAuth extends ConfigureJson<IConfigureJson> {
); );
}) })
) : ( ) : (
<span className="helpText">{app.translator.trans('flarum-package-manager.admin.auth_config.no_auth_methods_configured')}</span> <span className="helpText">{app.translator.trans('flarum-extension-manager.admin.auth_config.no_auth_methods_configured')}</span>
)} )}
</div> </div>
); );
@@ -99,7 +99,7 @@ export default class ConfigureAuth extends ConfigureJson<IConfigureJson> {
}) })
} }
> >
{app.translator.trans('flarum-package-manager.admin.auth_config.add_label')} {app.translator.trans('flarum-extension-manager.admin.auth_config.add_label')}
</Button> </Button>
); );

View File

@@ -14,7 +14,7 @@ export default class ConfigureComposer extends ConfigureJson<IConfigureJson> {
protected type = 'composer'; protected type = 'composer';
title(): Mithril.Children { title(): Mithril.Children {
return app.translator.trans('flarum-package-manager.admin.composer.title'); return app.translator.trans('flarum-extension-manager.admin.composer.title');
} }
className(): string { className(): string {
@@ -23,23 +23,23 @@ export default class ConfigureComposer extends ConfigureJson<IConfigureJson> {
content(): Mithril.Children { content(): Mithril.Children {
return ( return (
<div className="SettingsGroups-content"> <div className="ExtensionManager-SettingsGroups-content">
{this.attrs.buildSettingComponent.call(this, { {this.attrs.buildSettingComponent.call(this, {
setting: 'minimum-stability', setting: 'minimum-stability',
label: app.translator.trans('flarum-package-manager.admin.composer.minimum_stability.label'), label: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.label'),
help: app.translator.trans('flarum-package-manager.admin.composer.minimum_stability.help'), help: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.help'),
type: 'select', type: 'select',
options: { options: {
stable: app.translator.trans('flarum-package-manager.admin.composer.minimum_stability.options.stable'), stable: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.stable'),
RC: app.translator.trans('flarum-package-manager.admin.composer.minimum_stability.options.rc'), RC: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.rc'),
beta: app.translator.trans('flarum-package-manager.admin.composer.minimum_stability.options.beta'), beta: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.beta'),
alpha: app.translator.trans('flarum-package-manager.admin.composer.minimum_stability.options.alpha'), alpha: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.alpha'),
dev: app.translator.trans('flarum-package-manager.admin.composer.minimum_stability.options.dev'), dev: app.translator.trans('flarum-extension-manager.admin.composer.minimum_stability.options.dev'),
}, },
})} })}
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.composer.repositories.label')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.composer.repositories.label')}</label>
<div className="helpText">{app.translator.trans('flarum-package-manager.admin.composer.repositories.help')}</div> <div className="helpText">{app.translator.trans('flarum-extension-manager.admin.composer.repositories.help')}</div>
<div className="ConfigureComposer-repositories"> <div className="ConfigureComposer-repositories">
{Object.keys(this.setting('repositories')() || {}).map((name) => { {Object.keys(this.setting('repositories')() || {}).map((name) => {
const repository = this.setting('repositories')()[name] as Repository; const repository = this.setting('repositories')()[name] as Repository;
@@ -75,9 +75,9 @@ export default class ConfigureComposer extends ConfigureJson<IConfigureJson> {
<Button <Button
className="Button Button--icon" className="Button Button--icon"
icon="fas fa-trash" icon="fas fa-trash"
aria-label={app.translator.trans('flarum-package-manager.admin.composer.delete_repository_label')} aria-label={app.translator.trans('flarum-extension-manager.admin.composer.delete_repository_label')}
onclick={() => { onclick={() => {
if (confirm(extractText(app.translator.trans('flarum-package-manager.admin.composer.delete_repository_confirmation')))) { if (confirm(extractText(app.translator.trans('flarum-extension-manager.admin.composer.delete_repository_confirmation')))) {
const repositories = { ...this.setting('repositories')() }; const repositories = { ...this.setting('repositories')() };
delete repositories[name]; delete repositories[name];
@@ -99,7 +99,7 @@ export default class ConfigureComposer extends ConfigureJson<IConfigureJson> {
items.push( items.push(
<Button className="Button" onclick={() => app.modal.show(RepositoryModal, { onsubmit: this.onchange.bind(this) })}> <Button className="Button" onclick={() => app.modal.show(RepositoryModal, { onsubmit: this.onchange.bind(this) })}>
{app.translator.trans('flarum-package-manager.admin.composer.add_repository_label')} {app.translator.trans('flarum-extension-manager.admin.composer.add_repository_label')}
</Button> </Button>
); );

View File

@@ -69,7 +69,7 @@ export default abstract class ConfigureJson<CustomAttrs extends IConfigureJson =
app app
.request({ .request({
method: 'POST', method: 'POST',
url: app.forum.attribute('apiUrl') + '/package-manager/composer', url: app.forum.attribute('apiUrl') + '/extension-manager/composer',
body: { body: {
type: this.type, type: this.type,
data: readOnly ? null : configuration, data: readOnly ? null : configuration,

View File

@@ -14,14 +14,14 @@ export default class ControlSection extends Component<ComponentAttrs> {
view() { view() {
return ( return (
<div className="ExtensionPage-permissions PackageManager-controlSection"> <div className="ExtensionPage-permissions ExtensionManager-controlSection">
<div className="ExtensionPage-permissions-header"> <div className="ExtensionPage-permissions-header">
<div className="container"> <div className="container">
<h2 className="ExtensionTitle">{app.translator.trans('flarum-package-manager.admin.sections.control.title')}</h2> <h2 className="ExtensionTitle">{app.translator.trans('flarum-extension-manager.admin.sections.control.title')}</h2>
</div> </div>
</div> </div>
<div className="container"> <div className="container">
{app.data['flarum-package-manager.writable_dirs'] ? ( {app.data['flarum-extension-manager.writable_dirs'] ? (
<> <>
<Installer /> <Installer />
<Updater /> <Updater />
@@ -29,7 +29,7 @@ export default class ControlSection extends Component<ComponentAttrs> {
) : ( ) : (
<div className="Form-group"> <div className="Form-group">
<Alert type="warning" dismissible={false}> <Alert type="warning" dismissible={false}>
{app.translator.trans('flarum-package-manager.admin.file_permissions')} {app.translator.trans('flarum-extension-manager.admin.file_permissions')}
</Alert> </Alert>
</div> </div>
)} )}

View File

@@ -35,56 +35,56 @@ export default class ExtensionItem<Attrs extends ExtensionItemAttrs = ExtensionI
return ( return (
<div <div
className={classList({ className={classList({
'PackageManager-extension': true, 'ExtensionManager-extension': true,
'PackageManager-extension--core': isCore, 'ExtensionManager-extension--core': isCore,
'PackageManager-extension--danger': isDanger, 'ExtensionManager-extension--danger': isDanger,
})} })}
> >
<div className="PackageManager-extension-icon ExtensionIcon" style={extension.icon}> <div className="ExtensionManager-extension-icon ExtensionIcon" style={extension.icon}>
{extension.icon ? icon(extension.icon.name) : ''} {extension.icon ? icon(extension.icon.name) : ''}
</div> </div>
<div className="PackageManager-extension-info"> <div className="ExtensionManager-extension-info">
<div className="PackageManager-extension-name">{extension.extra['flarum-extension'].title}</div> <div className="ExtensionManager-extension-name">{extension.extra['flarum-extension'].title}</div>
<div className="PackageManager-extension-version"> <div className="ExtensionManager-extension-version">
<span className="PackageManager-extension-version-current">{this.version(updates['version'])}</span> <span className="ExtensionManager-extension-version-current">{this.version(updates['version'])}</span>
{latestVersion ? ( {latestVersion ? (
<Label className="PackageManager-extension-version-latest" type={updates['latest-minor'] ? 'success' : 'warning'}> <Label className="ExtensionManager-extension-version-latest" type={updates['latest-minor'] ? 'success' : 'warning'}>
{this.version(latestVersion)} {this.version(latestVersion)}
</Label> </Label>
) : null} ) : null}
</div> </div>
</div> </div>
<div className="PackageManager-extension-controls"> <div className="ExtensionManager-extension-controls">
{onClickUpdate && typeof onClickUpdate === 'function' ? ( {onClickUpdate && typeof onClickUpdate === 'function' ? (
<Tooltip text={app.translator.trans('flarum-package-manager.admin.extensions.update')}> <Tooltip text={app.translator.trans('flarum-extension-manager.admin.extensions.update')}>
<Button <Button
icon="fas fa-arrow-alt-circle-up" icon="fas fa-arrow-alt-circle-up"
className="Button Button--icon Button--flat" className="Button Button--icon Button--flat"
onclick={onClickUpdate} onclick={onClickUpdate}
aria-label={app.translator.trans('flarum-package-manager.admin.extensions.update')} aria-label={app.translator.trans('flarum-extension-manager.admin.extensions.update')}
/> />
</Tooltip> </Tooltip>
) : onClickUpdate ? ( ) : onClickUpdate ? (
<Dropdown <Dropdown
buttonClassName="Button Button--icon Button--flat" buttonClassName="Button Button--icon Button--flat"
icon="fas fa-arrow-alt-circle-up" icon="fas fa-arrow-alt-circle-up"
label={app.translator.trans('flarum-package-manager.admin.extensions.update')} label={app.translator.trans('flarum-extension-manager.admin.extensions.update')}
> >
<Button icon="fas fa-arrow-alt-circle-up" className="Button" onclick={onClickUpdate.soft}> <Button icon="fas fa-arrow-alt-circle-up" className="Button" onclick={onClickUpdate.soft}>
{app.translator.trans('flarum-package-manager.admin.extensions.update_soft_label')} {app.translator.trans('flarum-extension-manager.admin.extensions.update_soft_label')}
</Button> </Button>
<Button icon="fas fa-arrow-alt-circle-up" className="Button" onclick={onClickUpdate.hard} disabled={!updates['direct-dependency']}> <Button icon="fas fa-arrow-alt-circle-up" className="Button" onclick={onClickUpdate.hard} disabled={!updates['direct-dependency']}>
{app.translator.trans('flarum-package-manager.admin.extensions.update_hard_label')} {app.translator.trans('flarum-extension-manager.admin.extensions.update_hard_label')}
</Button> </Button>
</Dropdown> </Dropdown>
) : null} ) : null}
{whyNotWarning ? ( {whyNotWarning ? (
<Tooltip text={app.translator.trans('flarum-package-manager.admin.extensions.check_why_it_failed_updating')}> <Tooltip text={app.translator.trans('flarum-extension-manager.admin.extensions.check_why_it_failed_updating')}>
<Button <Button
icon="fas fa-exclamation-circle" icon="fas fa-exclamation-circle"
className="Button Button--icon Button--flat Button--danger" className="Button Button--icon Button--flat Button--danger"
onclick={() => app.modal.show(WhyNotModal, { package: extension.name })} onclick={() => app.modal.show(WhyNotModal, { package: extension.name })}
aria-label={app.translator.trans('flarum-package-manager.admin.extensions.check_why_it_failed_updating')} aria-label={app.translator.trans('flarum-extension-manager.admin.extensions.check_why_it_failed_updating')}
/> />
</Tooltip> </Tooltip>
) : null} ) : null}

View File

@@ -19,10 +19,10 @@ export default class Installer extends Component<InstallerAttrs> {
view(): Mithril.Children { view(): Mithril.Children {
return ( return (
<div className="Form-group PackageManager-installer"> <div className="Form-group ExtensionManager-installer">
<label htmlFor="install-extension">{app.translator.trans('flarum-package-manager.admin.extensions.install')}</label> <label htmlFor="install-extension">{app.translator.trans('flarum-extension-manager.admin.extensions.install')}</label>
<p className="helpText"> <p className="helpText">
{app.translator.trans('flarum-package-manager.admin.extensions.install_help', { {app.translator.trans('flarum-extension-manager.admin.extensions.install_help', {
extiverse: <a href="https://extiverse.com">extiverse.com</a>, extiverse: <a href="https://extiverse.com">extiverse.com</a>,
semantic_link: <a href="https://devhints.io/semver" />, semantic_link: <a href="https://devhints.io/semver" />,
code: <code />, code: <code />,
@@ -34,10 +34,10 @@ export default class Installer extends Component<InstallerAttrs> {
className="Button" className="Button"
icon="fas fa-download" icon="fas fa-download"
onclick={this.onsubmit.bind(this)} onclick={this.onsubmit.bind(this)}
loading={app.packageManager.control.isLoading('extension-install')} loading={app.extensionManager.control.isLoading('extension-install')}
disabled={app.packageManager.control.isLoading()} disabled={app.extensionManager.control.hasOperationRunning()}
> >
{app.translator.trans('flarum-package-manager.admin.extensions.proceed')} {app.translator.trans('flarum-extension-manager.admin.extensions.proceed')}
</Button> </Button>
</div> </div>
</div> </div>
@@ -51,6 +51,6 @@ export default class Installer extends Component<InstallerAttrs> {
} }
onsubmit(): void { onsubmit(): void {
app.packageManager.control.requirePackage(this.data()); app.extensionManager.control.requirePackage(this.data());
} }
} }

View File

@@ -30,31 +30,38 @@ export default class MajorUpdater<T extends MajorUpdaterAttrs = MajorUpdaterAttr
// @todo move Form-group--danger class to core for reuse // @todo move Form-group--danger class to core for reuse
return ( return (
<div <div
className={classList('Form-group Form-group--danger PackageManager-majorUpdate', { className={classList('Form-group Form-group--danger ExtensionManager-majorUpdate', {
'PackageManager-majorUpdate--failed': this.updateState.status === 'failure', 'ExtensionManager-majorUpdate--failed': this.updateState.status === 'failure',
'PackageManager-majorUpdate--incompatibleExtensions': this.updateState.incompatibleExtensions.length, 'ExtensionManager-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-extension-manager/flarum.svg'} />
<label>{app.translator.trans('flarum-package-manager.admin.major_updater.title', { version: this.attrs.coreUpdate['latest-major'] })}</label> <label>
<p className="helpText">{app.translator.trans('flarum-package-manager.admin.major_updater.description')}</p> {app.translator.trans('flarum-extension-manager.admin.major_updater.title', { version: this.attrs.coreUpdate['latest-major'] })}
<div className="PackageManager-updaterControls"> </label>
<Tooltip text={app.translator.trans('flarum-package-manager.admin.major_updater.dry_run_help')}> <p className="helpText">{app.translator.trans('flarum-extension-manager.admin.major_updater.description')}</p>
<Button className="Button" icon="fas fa-vial" onclick={this.update.bind(this, true)} disabled={app.packageManager.control.isLoading()}> <div className="ExtensionManager-updaterControls">
{app.translator.trans('flarum-package-manager.admin.major_updater.dry_run')} <Tooltip text={app.translator.trans('flarum-extension-manager.admin.major_updater.dry_run_help')}>
<Button
className="Button"
icon="fas fa-vial"
onclick={this.update.bind(this, true)}
disabled={app.extensionManager.control.hasOperationRunning()}
>
{app.translator.trans('flarum-extension-manager.admin.major_updater.dry_run')}
</Button> </Button>
</Tooltip> </Tooltip>
<Button <Button
className="Button Button--danger" className="Button Button--danger"
icon="fas fa-play" icon="fas fa-play"
onclick={this.update.bind(this, false)} onclick={this.update.bind(this, false)}
disabled={app.packageManager.control.isLoading()} disabled={app.extensionManager.control.hasOperationRunning()}
> >
{app.translator.trans('flarum-package-manager.admin.major_updater.update')} {app.translator.trans('flarum-extension-manager.admin.major_updater.update')}
</Button> </Button>
</div> </div>
{this.updateState.incompatibleExtensions.length ? ( {this.updateState.incompatibleExtensions.length ? (
<div className="PackageManager-majorUpdate-incompatibleExtensions PackageManager-extensions-grid"> <div className="ExtensionManager-majorUpdate-incompatibleExtensions ExtensionManager-extensions-grid">
{this.updateState.incompatibleExtensions.map((extension: string) => ( {this.updateState.incompatibleExtensions.map((extension: string) => (
<ExtensionItem <ExtensionItem
extension={app.data.extensions[extension.replace('flarum-', '').replace('flarum-ext-', '').replace('/', '-')]} extension={app.data.extensions[extension.replace('flarum-', '').replace('flarum-ext-', '').replace('/', '-')]}
@@ -68,20 +75,20 @@ export default class MajorUpdater<T extends MajorUpdaterAttrs = MajorUpdaterAttr
{this.updateState.status === 'failure' ? ( {this.updateState.status === 'failure' ? (
<Alert <Alert
type="error" type="error"
className="PackageManager-majorUpdate-failure" className="ExtensionManager-majorUpdate-failure"
dismissible={false} dismissible={false}
controls={[ controls={[
<Button <Button
className="Button Button--text PackageManager-majorUpdate-failure-details" className="Button Button--text ExtensionManager-majorUpdate-failure-details"
icon="fas fa-question-circle" icon="fas fa-question-circle"
onclick={() => app.modal.show(WhyNotModal, { package: 'flarum/core' })} onclick={() => app.modal.show(WhyNotModal, { package: 'flarum/core' })}
> >
{app.translator.trans('flarum-package-manager.admin.major_updater.failure.why')} {app.translator.trans('flarum-extension-manager.admin.major_updater.failure.why')}
</Button>, </Button>,
]} ]}
> >
<p className="PackageManager-majorUpdate-failure-desc"> <p className="ExtensionManager-majorUpdate-failure-desc">
{app.translator.trans('flarum-package-manager.admin.major_updater.failure.desc')} {app.translator.trans('flarum-extension-manager.admin.major_updater.failure.desc')}
</p> </p>
</Alert> </Alert>
) : null} ) : null}
@@ -90,6 +97,6 @@ export default class MajorUpdater<T extends MajorUpdaterAttrs = MajorUpdaterAttr
} }
update(dryRun: boolean) { update(dryRun: boolean) {
app.packageManager.control.majorUpdate({ dryRun }); app.extensionManager.control.majorUpdate({ dryRun });
} }
} }

View File

@@ -15,7 +15,7 @@ export default class Pagination extends Component<PaginationAttrs> {
return ( return (
<nav className="Pagination UserListPage-gridPagination"> <nav className="Pagination UserListPage-gridPagination">
<Button <Button
disabled={!this.attrs.list.hasPrev() || app.packageManager.control.isLoading()} disabled={!this.attrs.list.hasPrev() || app.extensionManager.control.isLoading()}
title={app.translator.trans('core.admin.users.pagination.back_button')} title={app.translator.trans('core.admin.users.pagination.back_button')}
onclick={() => this.attrs.list.prev()} onclick={() => this.attrs.list.prev()}
icon="fas fa-chevron-left" icon="fas fa-chevron-left"
@@ -28,7 +28,7 @@ export default class Pagination extends Component<PaginationAttrs> {
})} })}
</span> </span>
<Button <Button
disabled={!this.attrs.list.hasNext() || app.packageManager.control.isLoading()} disabled={!this.attrs.list.hasNext() || app.extensionManager.control.isLoading()}
title={app.translator.trans('core.admin.users.pagination.next_button')} title={app.translator.trans('core.admin.users.pagination.next_button')}
onclick={() => this.attrs.list.next()} onclick={() => this.attrs.list.next()}
icon="fas fa-chevron-right" icon="fas fa-chevron-right"

View File

@@ -25,21 +25,21 @@ export default class QueueSection extends Component<{}> {
oninit(vnode: Mithril.Vnode<{}, this>) { oninit(vnode: Mithril.Vnode<{}, this>) {
super.oninit(vnode); super.oninit(vnode);
app.packageManager.queue.load(); app.extensionManager.queue.load();
} }
view() { view() {
return ( return (
<section id="PackageManager-queueSection" className="ExtensionPage-permissions PackageManager-queueSection"> <section id="ExtensionManager-queueSection" className="ExtensionPage-permissions ExtensionManager-queueSection">
<div className="ExtensionPage-permissions-header PackageManager-queueSection-header"> <div className="ExtensionPage-permissions-header ExtensionManager-queueSection-header">
<div className="container"> <div className="container">
<h2 className="ExtensionTitle">{app.translator.trans('flarum-package-manager.admin.sections.queue.title')}</h2> <h2 className="ExtensionTitle">{app.translator.trans('flarum-extension-manager.admin.sections.queue.title')}</h2>
<Button <Button
className="Button Button--icon" className="Button Button--icon"
icon="fas fa-sync-alt" icon="fas fa-sync-alt"
onclick={() => app.packageManager.queue.load()} onclick={() => app.extensionManager.queue.load()}
aria-label={app.translator.trans('flarum-package-manager.admin.sections.queue.refresh')} aria-label={app.translator.trans('flarum-extension-manager.admin.sections.queue.refresh')}
disabled={app.packageManager.control.isLoading()} disabled={app.extensionManager.control.isLoading()}
/> />
</div> </div>
</div> </div>
@@ -54,12 +54,12 @@ export default class QueueSection extends Component<{}> {
items.add( items.add(
'operation', 'operation',
{ {
label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.operation')), label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.operation')),
content: (task) => ( content: (task) => (
<div className="PackageManager-queueTable-operation"> <div className="ExtensionManager-queueTable-operation">
<span className="PackageManager-queueTable-operation-icon">{this.operationIcon(task.operation())}</span> <span className="ExtensionManager-queueTable-operation-icon">{this.operationIcon(task.operation())}</span>
<span className="PackageManager-queueTable-operation-name"> <span className="ExtensionManager-queueTable-operation-name">
{app.translator.trans(`flarum-package-manager.admin.sections.queue.operations.${task.operation()}`)} {app.translator.trans(`flarum-extension-manager.admin.sections.queue.operations.${task.operation()}`)}
</span> </span>
</div> </div>
), ),
@@ -70,18 +70,18 @@ export default class QueueSection extends Component<{}> {
items.add( items.add(
'package', 'package',
{ {
label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.package')), label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.package')),
content: (task) => { content: (task) => {
const extension: Extension | null = app.data.extensions[task.package()?.replace(/(\/flarum-|\/flarum-ext-|\/)/g, '-')]; const extension: Extension | null = app.data.extensions[task.package()?.replace(/(\/flarum-|\/flarum-ext-|\/)/g, '-')];
return extension ? ( return extension ? (
<Link className="PackageManager-queueTable-package" href={app.route('extension', { id: extension.id })}> <Link className="ExtensionManager-queueTable-package" href={app.route('extension', { id: extension.id })}>
<div className="PackageManager-queueTable-package-icon ExtensionIcon" style={extension.icon}> <div className="ExtensionManager-queueTable-package-icon ExtensionIcon" style={extension.icon}>
{!!extension.icon && icon(extension.icon.name)} {!!extension.icon && icon(extension.icon.name)}
</div> </div>
<div className="PackageManager-queueTable-package-details"> <div className="ExtensionManager-queueTable-package-details">
<span className="PackageManager-queueTable-package-title">{extension.extra['flarum-extension'].title}</span> <span className="ExtensionManager-queueTable-package-title">{extension.extra['flarum-extension'].title}</span>
<span className="PackageManager-queueTable-package-name">{task.package()}</span> <span className="ExtensionManager-queueTable-package-name">{task.package()}</span>
</div> </div>
</Link> </Link>
) : ( ) : (
@@ -95,14 +95,14 @@ export default class QueueSection extends Component<{}> {
items.add( items.add(
'status', 'status',
{ {
label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.status')), label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.status')),
content: (task) => ( content: (task) => (
<> <>
<Label <Label
className="PackageManager-queueTable-status" className="ExtensionManager-queueTable-status"
type={{ running: 'neutral', failure: 'error', pending: 'warning', success: 'success' }[task.status()]} type={{ running: 'neutral', failure: 'error', pending: 'warning', success: 'success' }[task.status()]}
> >
{app.translator.trans(`flarum-package-manager.admin.sections.queue.statuses.${task.status()}`)} {app.translator.trans(`flarum-extension-manager.admin.sections.queue.statuses.${task.status()}`)}
</Label> </Label>
{['pending', 'running'].includes(task.status()) && <LoadingIndicator size="small" display="inline" />} {['pending', 'running'].includes(task.status()) && <LoadingIndicator size="small" display="inline" />}
</> </>
@@ -114,10 +114,10 @@ export default class QueueSection extends Component<{}> {
items.add( items.add(
'elapsedTime', 'elapsedTime',
{ {
label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.elapsed_time')), label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.elapsed_time')),
content: (task) => content: (task) =>
!task.startedAt() || !task.finishedAt() ? ( !task.startedAt() || !task.finishedAt() ? (
app.translator.trans('flarum-package-manager.admin.sections.queue.task_just_started') app.translator.trans('flarum-extension-manager.admin.sections.queue.task_just_started')
) : ( ) : (
<Tooltip text={`${dayjs(task.startedAt()).format('LL LTS')} ${dayjs(task.finishedAt()).format('LL LTS')}`}> <Tooltip text={`${dayjs(task.startedAt()).format('LL LTS')} ${dayjs(task.finishedAt()).format('LL LTS')}`}>
<span>{humanDuration(task.startedAt(), task.finishedAt())}</span> <span>{humanDuration(task.startedAt(), task.finishedAt())}</span>
@@ -130,7 +130,7 @@ export default class QueueSection extends Component<{}> {
items.add( items.add(
'memoryUsed', 'memoryUsed',
{ {
label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.peak_memory_used')), label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.peak_memory_used')),
content: (task) => <span>{task.peakMemoryUsed()}</span>, content: (task) => <span>{task.peakMemoryUsed()}</span>,
}, },
60 60
@@ -139,12 +139,12 @@ export default class QueueSection extends Component<{}> {
items.add( items.add(
'details', 'details',
{ {
label: extractText(app.translator.trans('flarum-package-manager.admin.sections.queue.columns.details')), label: extractText(app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.details')),
content: (task) => ( content: (task) => (
<Button <Button
className="Button Button--icon Table-controls-item" className="Button Button--icon Table-controls-item"
icon="fas fa-file-alt" icon="fas fa-file-alt"
aria-label={app.translator.trans('flarum-package-manager.admin.sections.queue.columns.details')} aria-label={app.translator.trans('flarum-extension-manager.admin.sections.queue.columns.details')}
// @todo fix in core // @todo fix in core
// @ts-ignore // @ts-ignore
onclick={() => app.modal.show(TaskOutputModal, { task })} onclick={() => app.modal.show(TaskOutputModal, { task })}
@@ -160,21 +160,21 @@ export default class QueueSection extends Component<{}> {
} }
queueTable() { queueTable() {
const tasks = app.packageManager.queue.getItems(); const tasks = app.extensionManager.queue.getItems();
if (!tasks) { if (!tasks) {
return <LoadingIndicator />; return <LoadingIndicator />;
} }
if (tasks && !tasks.length) { if (tasks && !tasks.length) {
return <h3 className="ExtensionPage-subHeader">{app.translator.trans('flarum-package-manager.admin.sections.queue.none')}</h3>; return <h3 className="ExtensionPage-subHeader">{app.translator.trans('flarum-extension-manager.admin.sections.queue.none')}</h3>;
} }
const columns = this.columns(); const columns = this.columns();
return ( return (
<> <>
<table className="Table PackageManager-queueTable"> <table className="Table ExtensionManager-queueTable">
<thead> <thead>
<tr> <tr>
{columns.toArray().map((item, index) => ( {columns.toArray().map((item, index) => (
@@ -199,7 +199,7 @@ export default class QueueSection extends Component<{}> {
</tbody> </tbody>
</table> </table>
<Pagination list={app.packageManager.queue} /> <Pagination list={app.extensionManager.queue} />
</> </>
); );
} }

View File

@@ -29,24 +29,24 @@ export default class RepositoryModal<CustomAttrs extends IRepositoryModalAttrs =
title(): Mithril.Children { title(): Mithril.Children {
const context = this.attrs.repository ? 'edit' : 'add'; const context = this.attrs.repository ? 'edit' : 'add';
return app.translator.trans(`flarum-package-manager.admin.composer.${context}_repository_label`); return app.translator.trans(`flarum-extension-manager.admin.composer.${context}_repository_label`);
} }
content(): Mithril.Children { content(): Mithril.Children {
const types = { const types = {
composer: app.translator.trans('flarum-package-manager.admin.composer.repositories.types.composer'), composer: app.translator.trans('flarum-extension-manager.admin.composer.repositories.types.composer'),
vcs: app.translator.trans('flarum-package-manager.admin.composer.repositories.types.vcs'), vcs: app.translator.trans('flarum-extension-manager.admin.composer.repositories.types.vcs'),
path: app.translator.trans('flarum-package-manager.admin.composer.repositories.types.path'), path: app.translator.trans('flarum-extension-manager.admin.composer.repositories.types.path'),
}; };
return ( return (
<div className="Modal-body"> <div className="Modal-body">
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.composer.repositories.add_modal.name_label')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.composer.repositories.add_modal.name_label')}</label>
<input className="FormControl" bidi={this.name} /> <input className="FormControl" bidi={this.name} />
</div> </div>
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.composer.repositories.add_modal.type_label')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.composer.repositories.add_modal.type_label')}</label>
<Select <Select
options={types} options={types}
value={this.repository().type} value={this.repository().type}
@@ -54,7 +54,7 @@ export default class RepositoryModal<CustomAttrs extends IRepositoryModalAttrs =
/> />
</div> </div>
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.composer.repositories.add_modal.url')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.composer.repositories.add_modal.url')}</label>
<input <input
className="FormControl" className="FormControl"
onchange={(e: Event) => this.repository({ ...this.repository(), url: (e.target as HTMLInputElement).value })} onchange={(e: Event) => this.repository({ ...this.repository(), url: (e.target as HTMLInputElement).value })}
@@ -63,7 +63,7 @@ export default class RepositoryModal<CustomAttrs extends IRepositoryModalAttrs =
</div> </div>
<div className="Form-group"> <div className="Form-group">
<Button className="Button Button--primary" onclick={this.submit.bind(this)}> <Button className="Button Button--primary" onclick={this.submit.bind(this)}>
{app.translator.trans('flarum-package-manager.admin.composer.repositories.add_modal.submit_button')} {app.translator.trans('flarum-extension-manager.admin.composer.repositories.add_modal.submit_button')}
</Button> </Button>
</div> </div>
</div> </div>

View File

@@ -14,22 +14,22 @@ export default class SettingsPage extends ExtensionPage {
content() { content() {
const settings = app.extensionData.getSettings(this.extension.id); const settings = app.extensionData.getSettings(this.extension.id);
const warnings = [app.translator.trans('flarum-package-manager.admin.settings.access_warning')]; const warnings = [app.translator.trans('flarum-extension-manager.admin.settings.access_warning')];
if (app.data.debugEnabled) warnings.push(app.translator.trans('flarum-package-manager.admin.settings.debug_mode_warning')); if (app.data.debugEnabled) warnings.push(app.translator.trans('flarum-extension-manager.admin.settings.debug_mode_warning'));
return ( return (
<div className="ExtensionPage-settings"> <div className="ExtensionPage-settings">
<div className="container"> <div className="container">
<div className="Form-group"> <div className="Form-group">
<Alert className="PackageManager-primaryWarning" type="warning" dismissible={false}> <Alert className="ExtensionManager-primaryWarning" type="warning" dismissible={false}>
<ul>{listItems(warnings)}</ul> <ul>{listItems(warnings)}</ul>
</Alert> </Alert>
</div> </div>
{settings ? ( {settings ? (
<div className="SettingsGroups"> <div className="ExtensionManager-SettingsGroups">
<div className="Form"> <div className="Form">
<label>{app.translator.trans('flarum-package-manager.admin.settings.title')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.settings.title')}</label>
<div className="SettingsGroups-content">{settings.map(this.buildSettingComponent.bind(this))}</div> <div className="SettingsGroups-content">{settings.map(this.buildSettingComponent.bind(this))}</div>
<div className="Form-group Form--controls">{this.submitButton()}</div> <div className="Form-group Form--controls">{this.submitButton()}</div>
</div> </div>
@@ -51,7 +51,7 @@ export default class SettingsPage extends ExtensionPage {
items.add('control', <ControlSection />, 8); items.add('control', <ControlSection />, 8);
if (app.data.settings['flarum-package-manager.queue_jobs'] !== '0' && app.data.settings['flarum-package-manager.queue_jobs']) { if (app.data.settings['flarum-extension-manager.queue_jobs'] !== '0' && app.data.settings['flarum-extension-manager.queue_jobs']) {
items.add('queue', <QueueSection />, 5); items.add('queue', <QueueSection />, 5);
} }

View File

@@ -12,7 +12,7 @@ export default class TaskOutputModal<CustomAttrs extends TaskOutputModalAttrs =
} }
title() { title() {
return app.translator.trans(`flarum-package-manager.admin.sections.queue.operations.${this.attrs.task.operation()}`); return app.translator.trans(`flarum-extension-manager.admin.sections.queue.operations.${this.attrs.task.operation()}`);
} }
content() { content() {
@@ -21,24 +21,24 @@ export default class TaskOutputModal<CustomAttrs extends TaskOutputModalAttrs =
<div className="TaskOutputModal-data"> <div className="TaskOutputModal-data">
{this.attrs.task.status() === 'failure' && ( {this.attrs.task.status() === 'failure' && (
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.sections.queue.output_modal.guessed_cause')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.sections.queue.output_modal.guessed_cause')}</label>
<div className="FormControl TaskOutputModal-data-guessed-cause"> <div className="FormControl TaskOutputModal-data-guessed-cause">
{(this.attrs.task.guessedCause() && {(this.attrs.task.guessedCause() &&
app.translator.trans('flarum-package-manager.admin.exceptions.guessed_cause.' + this.attrs.task.guessedCause())) || app.translator.trans('flarum-extension-manager.admin.exceptions.guessed_cause.' + this.attrs.task.guessedCause())) ||
app.translator.trans('flarum-package-manager.admin.sections.queue.output_modal.cause_unknown')} app.translator.trans('flarum-extension-manager.admin.sections.queue.output_modal.cause_unknown')}
</div> </div>
</div> </div>
)} )}
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.sections.queue.output_modal.command')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.sections.queue.output_modal.command')}</label>
<div className="FormControl TaskOutputModal-data-command"> <div className="FormControl TaskOutputModal-data-command">
<code>$ composer {this.attrs.task.command()}</code> <code>$ composer {this.attrs.task.command()}</code>
</div> </div>
</div> </div>
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.sections.queue.output_modal.output')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.sections.queue.output_modal.output')}</label>
<div className="FormControl TaskOutputModal-data-output"> <div className="FormControl TaskOutputModal-data-output">
<code> <code>
<pre>{this.attrs.task.output()}</pre> <pre>{this.attrs.task.output()}</pre>

View File

@@ -14,30 +14,30 @@ export type UpdaterLoadingTypes = 'check' | 'minor-update' | 'global-update' | '
export default class Updater extends Component<IUpdaterAttrs> { export default class Updater extends Component<IUpdaterAttrs> {
view() { view() {
const core = app.packageManager.control.coreUpdate; const core = app.extensionManager.control.coreUpdate;
return [ return [
<div className="Form-group"> <div className="Form-group">
<label>{app.translator.trans('flarum-package-manager.admin.updater.updater_title')}</label> <label>{app.translator.trans('flarum-extension-manager.admin.updater.updater_title')}</label>
<p className="helpText">{app.translator.trans('flarum-package-manager.admin.updater.updater_help')}</p> <p className="helpText">{app.translator.trans('flarum-extension-manager.admin.updater.updater_help')}</p>
{this.lastUpdateCheckView()} {this.lastUpdateCheckView()}
<div className="PackageManager-updaterControls">{this.controlItems().toArray()}</div> <div className="ExtensionManager-updaterControls">{this.controlItems().toArray()}</div>
{this.availableUpdatesView()} {this.availableUpdatesView()}
</div>, </div>,
core && core.package['latest-major'] ? ( core && core.package['latest-major'] ? (
<MajorUpdater coreUpdate={core.package} updateState={app.packageManager.control.lastUpdateRun.major} /> <MajorUpdater coreUpdate={core.package} updateState={app.extensionManager.control.lastUpdateRun.major} />
) : null, ) : null,
]; ];
} }
lastUpdateCheckView() { lastUpdateCheckView() {
return ( return (
(app.packageManager.control.lastUpdateCheck?.checkedAt && ( (app.extensionManager.control.lastUpdateCheck?.checkedAt && (
<p className="PackageManager-lastUpdatedAt"> <p className="ExtensionManager-lastUpdatedAt">
<span className="PackageManager-lastUpdatedAt-label"> <span className="ExtensionManager-lastUpdatedAt-label">
{app.translator.trans('flarum-package-manager.admin.updater.last_update_checked_at')} {app.translator.trans('flarum-extension-manager.admin.updater.last_update_checked_at')}
</span> </span>
<span className="PackageManager-lastUpdatedAt-value">{humanTime(app.packageManager.control.lastUpdateCheck.checkedAt)}</span> <span className="ExtensionManager-lastUpdatedAt-value">{humanTime(app.extensionManager.control.lastUpdateCheck.checkedAt)}</span>
</p> </p>
)) || )) ||
null null
@@ -45,11 +45,11 @@ export default class Updater extends Component<IUpdaterAttrs> {
} }
availableUpdatesView() { availableUpdatesView() {
const state = app.packageManager.control; const state = app.extensionManager.control;
if (app.packageManager.control.isLoading('check') || app.packageManager.control.isLoading('global-update')) { if (app.extensionManager.control.isLoading('check') || app.extensionManager.control.isLoading('global-update')) {
return ( return (
<div className="PackageManager-extensions"> <div className="ExtensionManager-extensions">
<LoadingIndicator /> <LoadingIndicator />
</div> </div>
); );
@@ -59,15 +59,15 @@ export default class Updater extends Component<IUpdaterAttrs> {
if (!(state.extensionUpdates.length || hasMinorCoreUpdate)) { if (!(state.extensionUpdates.length || hasMinorCoreUpdate)) {
return ( return (
<div className="PackageManager-extensions"> <div className="ExtensionManager-extensions">
<span className="helpText">{app.translator.trans('flarum-package-manager.admin.updater.up_to_date')}</span> <span className="helpText">{app.translator.trans('flarum-extension-manager.admin.updater.up_to_date')}</span>
</div> </div>
); );
} }
return ( return (
<div className="PackageManager-extensions"> <div className="ExtensionManager-extensions">
<div className="PackageManager-extensions-grid"> <div className="ExtensionManager-extensions-grid">
{hasMinorCoreUpdate ? ( {hasMinorCoreUpdate ? (
<ExtensionItem <ExtensionItem
extension={state.coreUpdate!.extension} extension={state.coreUpdate!.extension}
@@ -101,11 +101,11 @@ export default class Updater extends Component<IUpdaterAttrs> {
<Button <Button
className="Button" className="Button"
icon="fas fa-sync-alt" icon="fas fa-sync-alt"
onclick={() => app.packageManager.control.checkForUpdates()} onclick={() => app.extensionManager.control.checkForUpdates()}
loading={app.packageManager.control.isLoading('check')} loading={app.extensionManager.control.isLoading('check')}
disabled={app.packageManager.control.isLoading()} disabled={app.extensionManager.control.hasOperationRunning()}
> >
{app.translator.trans('flarum-package-manager.admin.updater.check_for_updates')} {app.translator.trans('flarum-extension-manager.admin.updater.check_for_updates')}
</Button>, </Button>,
100 100
); );
@@ -115,11 +115,11 @@ export default class Updater extends Component<IUpdaterAttrs> {
<Button <Button
className="Button" className="Button"
icon="fas fa-play" icon="fas fa-play"
onclick={() => app.packageManager.control.updateGlobally()} onclick={() => app.extensionManager.control.updateGlobally()}
loading={app.packageManager.control.isLoading('global-update')} loading={app.extensionManager.control.isLoading('global-update')}
disabled={app.packageManager.control.isLoading()} disabled={app.extensionManager.control.hasOperationRunning()}
> >
{app.translator.trans('flarum-package-manager.admin.updater.run_global_update')} {app.translator.trans('flarum-extension-manager.admin.updater.run_global_update')}
</Button> </Button>
); );

View File

@@ -24,7 +24,7 @@ export default class WhyNotModal<CustomAttrs extends WhyNotModalAttrs = WhyNotMo
} }
title() { title() {
return app.translator.trans('flarum-package-manager.admin.why_not_modal.title'); return app.translator.trans('flarum-extension-manager.admin.why_not_modal.title');
} }
oncreate(vnode: Mithril.VnodeDOM<CustomAttrs, this>) { oncreate(vnode: Mithril.VnodeDOM<CustomAttrs, this>) {
@@ -41,7 +41,7 @@ export default class WhyNotModal<CustomAttrs extends WhyNotModalAttrs = WhyNotMo
app app
.request<WhyNotResponse>({ .request<WhyNotResponse>({
method: 'POST', method: 'POST',
url: `${app.forum.attribute('apiUrl')}/package-manager/why-not`, url: `${app.forum.attribute('apiUrl')}/extension-manager/why-not`,
body: { body: {
data: { data: {
package: this.attrs.package, package: this.attrs.package,

View File

@@ -4,32 +4,30 @@ import ExtensionPage from 'flarum/admin/components/ExtensionPage';
import Button from 'flarum/common/components/Button'; import Button from 'flarum/common/components/Button';
import LoadingModal from 'flarum/admin/components/LoadingModal'; import LoadingModal from 'flarum/admin/components/LoadingModal';
import isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled'; import isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';
import Alert from 'flarum/common/components/Alert';
import SettingsPage from './components/SettingsPage'; import SettingsPage from './components/SettingsPage';
import Task from './models/Task'; import Task from './models/Task';
import jumpToQueue from './utils/jumpToQueue'; import jumpToQueue from './utils/jumpToQueue';
import extractText from 'flarum/common/utils/extractText'; import extractText from 'flarum/common/utils/extractText';
import { AsyncBackendResponse } from './shims'; import { AsyncBackendResponse } from './shims';
import PackageManagerState from './states/PackageManagerState'; import ExtensionManagerState from './states/ExtensionManagerState';
app.initializers.add('flarum-package-manager', (app) => { app.initializers.add('flarum-extension-manager', (app) => {
app.store.models['package-manager-tasks'] = Task; app.store.models['extension-manager-tasks'] = Task;
app.packageManager = new PackageManagerState(); app.extensionManager = new ExtensionManagerState();
if (app.data['flarum-package-manager.using_sync_queue']) { if (app.data['flarum-extension-manager.using_sync_queue']) {
app.data.settings['flarum-package-manager.queue_jobs'] = '0'; app.data.settings['flarum-extension-manager.queue_jobs'] = '0';
} }
app.extensionData app.extensionData
.for('flarum-package-manager') .for('flarum-extension-manager')
.registerSetting({ .registerSetting({
setting: 'flarum-package-manager.queue_jobs', setting: 'flarum-extension-manager.queue_jobs',
label: app.translator.trans('flarum-package-manager.admin.settings.queue_jobs'), label: app.translator.trans('flarum-extension-manager.admin.settings.queue_jobs'),
help: m.trust( help: m.trust(
extractText( extractText(
app.translator.trans('flarum-package-manager.admin.settings.queue_jobs_help', { app.translator.trans('flarum-extension-manager.admin.settings.queue_jobs_help', {
basic_impl_link: 'https://discuss.flarum.org/d/28151-database-queue-the-simplest-queue-even-for-shared-hosting', basic_impl_link: 'https://discuss.flarum.org/d/28151-database-queue-the-simplest-queue-even-for-shared-hosting',
adv_impl_link: 'https://discuss.flarum.org/d/21873-redis-sessions-cache-queues', adv_impl_link: 'https://discuss.flarum.org/d/21873-redis-sessions-cache-queues',
php_version: `<strong>${app.data.phpVersion}</strong>`, php_version: `<strong>${app.data.phpVersion}</strong>`,
@@ -38,18 +36,18 @@ app.initializers.add('flarum-package-manager', (app) => {
) )
), ),
type: 'boolean', type: 'boolean',
disabled: app.data['flarum-package-manager.using_sync_queue'], disabled: app.data['flarum-extension-manager.using_sync_queue'],
}) })
.registerSetting({ .registerSetting({
setting: 'flarum-package-manager.task_retention_days', setting: 'flarum-extension-manager.task_retention_days',
label: app.translator.trans('flarum-package-manager.admin.settings.task_retention_days'), label: app.translator.trans('flarum-extension-manager.admin.settings.task_retention_days'),
help: app.translator.trans('flarum-package-manager.admin.settings.task_retention_days_help'), help: app.translator.trans('flarum-extension-manager.admin.settings.task_retention_days_help'),
type: 'number', type: 'number',
}) })
.registerPage(SettingsPage); .registerPage(SettingsPage);
extend(ExtensionPage.prototype, 'topItems', function (items) { extend(ExtensionPage.prototype, 'topItems', function (items) {
if (this.extension.id === 'flarum-package-manager' || isExtensionEnabled(this.extension.id)) { if (this.extension.id === 'flarum-extension-manager' || isExtensionEnabled(this.extension.id)) {
return; return;
} }
@@ -63,14 +61,14 @@ app.initializers.add('flarum-package-manager', (app) => {
app app
.request<AsyncBackendResponse | null>({ .request<AsyncBackendResponse | null>({
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${this.extension.id}`, url: `${app.forum.attribute('apiUrl')}/extension-manager/extensions/${this.extension.id}`,
method: 'DELETE', method: 'DELETE',
}) })
.then((response) => { .then((response) => {
if (response?.processing) { if (response?.processing) {
jumpToQueue(); jumpToQueue();
} else { } else {
app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.extensions.successful_remove')); app.alerts.show({ type: 'success' }, app.translator.trans('flarum-extension-manager.admin.extensions.successful_remove'));
window.location = app.forum.attribute('adminUrl'); window.location = app.forum.attribute('adminUrl');
} }
}) })
@@ -79,7 +77,7 @@ app.initializers.add('flarum-package-manager', (app) => {
}); });
}} }}
> >
{app.translator.trans('flarum-package-manager.admin.extensions.remove')} {app.translator.trans('flarum-extension-manager.admin.extensions.remove')}
</Button> </Button>
); );
}); });

View File

@@ -1,5 +1,5 @@
import 'dayjs/plugin/relativeTime'; import 'dayjs/plugin/relativeTime';
import PackageManagerState from './states/PackageManagerState'; import ExtensionManagerState from './states/ExtensionManagerState';
export interface AsyncBackendResponse { export interface AsyncBackendResponse {
processing: boolean; processing: boolean;
@@ -7,6 +7,6 @@ export interface AsyncBackendResponse {
declare module 'flarum/admin/AdminApplication' { declare module 'flarum/admin/AdminApplication' {
export default interface AdminApplication { export default interface AdminApplication {
packageManager: PackageManagerState; extensionManager: ExtensionManagerState;
} }
} }

View File

@@ -61,7 +61,7 @@ export default class ControlSectionState {
public extensionUpdates!: Extension[]; public extensionUpdates!: Extension[];
public coreUpdate: CoreUpdate | null = null; public coreUpdate: CoreUpdate | null = null;
get lastUpdateRun(): LastUpdateRun { get lastUpdateRun(): LastUpdateRun {
const lastUpdateRun = JSON.parse(app.data.settings['flarum-package-manager.last_update_run']) as LastUpdateRun; const lastUpdateRun = JSON.parse(app.data.settings['flarum-extension-manager.last_update_run']) as LastUpdateRun;
lastUpdateRun.limitedPackages = () => [ lastUpdateRun.limitedPackages = () => [
...lastUpdateRun.major.limitedPackages, ...lastUpdateRun.major.limitedPackages,
@@ -73,7 +73,7 @@ export default class ControlSectionState {
} }
constructor() { constructor() {
this.lastUpdateCheck = JSON.parse(app.data.settings['flarum-package-manager.last_update_check']) as LastUpdateCheck; this.lastUpdateCheck = JSON.parse(app.data.settings['flarum-extension-manager.last_update_check']) as LastUpdateCheck;
this.extensionUpdates = this.formatExtensionUpdates(this.lastUpdateCheck); this.extensionUpdates = this.formatExtensionUpdates(this.lastUpdateCheck);
this.coreUpdate = this.formatCoreUpdate(this.lastUpdateCheck); this.coreUpdate = this.formatCoreUpdate(this.lastUpdateCheck);
} }
@@ -82,18 +82,22 @@ export default class ControlSectionState {
return (name && this.loading === name) || (!name && this.loading !== null); return (name && this.loading === name) || (!name && this.loading !== null);
} }
hasOperationRunning(): boolean {
return this.isLoading() || app.extensionManager.queue.hasPending();
}
setLoading(name: LoadingTypes): void { setLoading(name: LoadingTypes): void {
this.loading = name; this.loading = name;
} }
requirePackage(data: any) { requirePackage(data: any) {
app.packageManager.control.setLoading('extension-install'); app.extensionManager.control.setLoading('extension-install');
app.modal.show(LoadingModal); app.modal.show(LoadingModal);
app app
.request<AsyncBackendResponse & { id: number }>({ .request<AsyncBackendResponse & { id: number }>({
method: 'POST', method: 'POST',
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions`, url: `${app.forum.attribute('apiUrl')}/extension-manager/extensions`,
body: { body: {
data, data,
}, },
@@ -105,7 +109,7 @@ export default class ControlSectionState {
const extensionId = response.id; const extensionId = response.id;
app.alerts.show( app.alerts.show(
{ type: 'success' }, { type: 'success' },
app.translator.trans('flarum-package-manager.admin.extensions.successful_install', { extension: extensionId }) app.translator.trans('flarum-extension-manager.admin.extensions.successful_install', { extension: extensionId })
); );
window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`; window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`;
window.location.reload(); window.location.reload();
@@ -124,7 +128,7 @@ export default class ControlSectionState {
app app
.request<AsyncBackendResponse | LastUpdateCheck>({ .request<AsyncBackendResponse | LastUpdateCheck>({
method: 'POST', method: 'POST',
url: `${app.forum.attribute('apiUrl')}/package-manager/check-for-updates`, url: `${app.forum.attribute('apiUrl')}/extension-manager/check-for-updates`,
}) })
.then((response) => { .then((response) => {
if ((response as AsyncBackendResponse).processing) { if ((response as AsyncBackendResponse).processing) {
@@ -144,20 +148,20 @@ export default class ControlSectionState {
} }
updateCoreMinor() { updateCoreMinor() {
if (confirm(extractText(app.translator.trans('flarum-package-manager.admin.minor_update_confirmation.content')))) { if (confirm(extractText(app.translator.trans('flarum-extension-manager.admin.minor_update_confirmation.content')))) {
app.modal.show(LoadingModal); app.modal.show(LoadingModal);
this.setLoading('minor-update'); this.setLoading('minor-update');
app app
.request<AsyncBackendResponse | null>({ .request<AsyncBackendResponse | null>({
method: 'POST', method: 'POST',
url: `${app.forum.attribute('apiUrl')}/package-manager/minor-update`, url: `${app.forum.attribute('apiUrl')}/extension-manager/minor-update`,
}) })
.then((response) => { .then((response) => {
if (response?.processing) { if (response?.processing) {
jumpToQueue(); jumpToQueue();
} else { } else {
app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful')); app.alerts.show({ type: 'success' }, app.translator.trans('flarum-extension-manager.admin.update_successful'));
window.location.reload(); window.location.reload();
} }
}) })
@@ -176,7 +180,7 @@ export default class ControlSectionState {
app app
.request<AsyncBackendResponse | null>({ .request<AsyncBackendResponse | null>({
method: 'PATCH', method: 'PATCH',
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${extension.id}`, url: `${app.forum.attribute('apiUrl')}/extension-manager/extensions/${extension.id}`,
body: { body: {
data: { data: {
updateMode, updateMode,
@@ -189,7 +193,7 @@ export default class ControlSectionState {
} else { } else {
app.alerts.show( app.alerts.show(
{ type: 'success' }, { type: 'success' },
app.translator.trans('flarum-package-manager.admin.extensions.successful_update', { app.translator.trans('flarum-extension-manager.admin.extensions.successful_update', {
extension: extension.extra['flarum-extension'].title, extension: extension.extra['flarum-extension'].title,
}) })
); );
@@ -210,13 +214,13 @@ export default class ControlSectionState {
app app
.request<AsyncBackendResponse | null>({ .request<AsyncBackendResponse | null>({
method: 'POST', method: 'POST',
url: `${app.forum.attribute('apiUrl')}/package-manager/global-update`, url: `${app.forum.attribute('apiUrl')}/extension-manager/global-update`,
}) })
.then((response) => { .then((response) => {
if (response?.processing) { if (response?.processing) {
jumpToQueue(); jumpToQueue();
} else { } else {
app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.updater.global_update_successful')); app.alerts.show({ type: 'success' }, app.translator.trans('flarum-extension-manager.admin.updater.global_update_successful'));
window.location.reload(); window.location.reload();
} }
}) })
@@ -259,11 +263,11 @@ export default class ControlSectionState {
version: app.data.settings.version, version: app.data.settings.version,
icon: { icon: {
// @ts-ignore // @ts-ignore
backgroundImage: `url(${app.data.resources[0]['attributes']['baseUrl']}/assets/extensions/flarum-package-manager/flarum.svg`, backgroundImage: `url(${app.data.resources[0]['attributes']['baseUrl']}/assets/extensions/flarum-extension-manager/flarum.svg`,
}, },
extra: { extra: {
'flarum-extension': { 'flarum-extension': {
title: extractText(app.translator.trans('flarum-package-manager.admin.updater.flarum')), title: extractText(app.translator.trans('flarum-extension-manager.admin.updater.flarum')),
}, },
}, },
}, },
@@ -271,14 +275,14 @@ export default class ControlSectionState {
} }
majorUpdate({ dryRun }: { dryRun: boolean }) { majorUpdate({ dryRun }: { dryRun: boolean }) {
app.packageManager.control.setLoading(dryRun ? 'major-update-dry-run' : 'major-update'); app.extensionManager.control.setLoading(dryRun ? 'major-update-dry-run' : 'major-update');
app.modal.show(LoadingModal); app.modal.show(LoadingModal);
const updateState = this.lastUpdateRun.major; const updateState = this.lastUpdateRun.major;
app app
.request<AsyncBackendResponse | null>({ .request<AsyncBackendResponse | null>({
method: 'POST', method: 'POST',
url: `${app.forum.attribute('apiUrl')}/package-manager/major-update`, url: `${app.forum.attribute('apiUrl')}/extension-manager/major-update`,
body: { body: {
data: { dryRun }, data: { dryRun },
}, },
@@ -287,7 +291,7 @@ export default class ControlSectionState {
if (response?.processing) { if (response?.processing) {
jumpToQueue(); jumpToQueue();
} else { } else {
app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful')); app.alerts.show({ type: 'success' }, app.translator.trans('flarum-extension-manager.admin.update_successful'));
window.location.reload(); window.location.reload();
} }
}) })

View File

@@ -1,7 +1,7 @@
import QueueState from './QueueState'; import QueueState from './QueueState';
import ControlSectionState from './ControlSectionState'; import ControlSectionState from './ControlSectionState';
export default class PackageManagerState { export default class ExtensionManagerState {
public queue: QueueState = new QueueState(); public queue: QueueState = new QueueState();
public control: ControlSectionState = new ControlSectionState(); public control: ControlSectionState = new ControlSectionState();
} }

View File

@@ -20,7 +20,7 @@ export default class QueueState {
...params, ...params,
}; };
return app.store.find<Task[]>('package-manager-tasks', params || {}).then((data) => { return app.store.find<Task[]>('extension-manager-tasks', params || {}).then((data) => {
this.tasks = data; this.tasks = data;
this.total = data.payload.meta?.total; this.total = data.payload.meta?.total;
@@ -32,12 +32,12 @@ export default class QueueState {
if (pendingTask) { if (pendingTask) {
this.pollQueue(actionTaken); this.pollQueue(actionTaken);
} else if (actionTaken) { } else if (actionTaken) {
app.packageManager.control.setLoading(null); app.extensionManager.control.setLoading(null);
// Refresh the page // Refresh the page
window.location.reload(); window.location.reload();
} else if (app.packageManager.control.isLoading()) { } else if (app.extensionManager.control.isLoading()) {
app.packageManager.control.setLoading(null); app.extensionManager.control.setLoading(null);
} }
return data; return data;
@@ -87,4 +87,8 @@ export default class QueueState {
this.load({}, actionTaken); this.load({}, actionTaken);
}, 6000); }, 6000);
} }
hasPending() {
return !!this.tasks?.find((task) => task.status() === 'pending' || task.status() === 'running');
}
} }

View File

@@ -1,7 +1,7 @@
import app from 'flarum/admin/app'; import app from 'flarum/admin/app';
export default function (e: any) { export default function (e: any) {
app.packageManager.control.setLoading(null); app.extensionManager.control.setLoading(null);
const error = e.response.errors[0]; const error = e.response.errors[0];
@@ -14,20 +14,20 @@ export default function (e: any) {
switch (error.code) { switch (error.code) {
case 'composer_command_failure': case 'composer_command_failure':
if (error.guessed_cause) { if (error.guessed_cause) {
app.alerts.show({ type: 'error' }, app.translator.trans(`flarum-package-manager.admin.exceptions.guessed_cause.${error.guessed_cause}`)); app.alerts.show({ type: 'error' }, app.translator.trans(`flarum-extension-manager.admin.exceptions.guessed_cause.${error.guessed_cause}`));
app.modal.close(); app.modal.close();
} else { } else {
app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.composer_command_failure')); app.alerts.show({ type: 'error' }, app.translator.trans('flarum-extension-manager.admin.exceptions.composer_command_failure'));
} }
break; break;
case 'extension_already_installed': case 'extension_already_installed':
app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_already_installed')); app.alerts.show({ type: 'error' }, app.translator.trans('flarum-extension-manager.admin.exceptions.extension_already_installed'));
app.modal.close(); app.modal.close();
break; break;
case 'extension_not_installed': case 'extension_not_installed':
app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_not_installed')); app.alerts.show({ type: 'error' }, app.translator.trans('flarum-extension-manager.admin.exceptions.extension_not_installed'));
app.modal.close(); app.modal.close();
} }
} }

View File

@@ -6,11 +6,11 @@ window.jumpToQueue = jumpToQueue;
export default function jumpToQueue(): void { export default function jumpToQueue(): void {
app.modal.close(); app.modal.close();
m.route.set(app.route('extension', { id: 'flarum-package-manager' })); m.route.set(app.route('extension', { id: 'flarum-extension-manager' }));
app.packageManager.queue.load({}, true); app.extensionManager.queue.load({}, true);
setTimeout(() => { setTimeout(() => {
document.getElementById('PackageManager-queueSection')?.scrollIntoView({ block: 'nearest' }); document.getElementById('ExtensionManager-queueSection')?.scrollIntoView({ block: 'nearest' });
}, 200); }, 200);
} }

View File

@@ -3,7 +3,7 @@
@import "admin/QueueSection"; @import "admin/QueueSection";
@import "admin/ControlSection"; @import "admin/ControlSection";
.PackageManager-controlSection { .ExtensionManager-controlSection {
> .container { > .container {
padding-bottom: 0; padding-bottom: 0;
} }
@@ -53,6 +53,52 @@
} }
} }
.flarum-package-manager-Page .SettingsGroups .Form { .flarum-extension-manager-Page .SettingsGroups .Form {
max-height: unset; max-height: unset;
} }
.ExtensionManager-SettingsGroups {
display: flex;
column-count: 3;
column-gap: 30px;
flex-wrap: wrap;
.Form {
min-width: 300px;
max-height: 500px;
display: inline-grid;
padding: 10px 20px;
min-height: 20vh;
max-width: 400px;
grid-template-rows: min-content;
border: 1px solid var(--control-bg);
border-radius: var(--border-radius);
flex: 1 1 160px;
>label {
margin-bottom: 10px;
}
@media (max-width: 1209px) {
margin-bottom: 20px;
}
>ol {
>li {
margin-top: 8px;
.Button {
float: right;
visibility: hidden;
margin: -8px -16px -8px 16px;
}
}
}
>label {
float: left;
font-weight: bold;
color: var(--muted-color);
}
}
}

View File

@@ -1,4 +1,4 @@
.PackageManager-lastUpdatedAt { .ExtensionManager-lastUpdatedAt {
color: var(--control-color); color: var(--control-color);
&-label { &-label {
@@ -6,7 +6,7 @@
} }
} }
.PackageManager-updaterControls { .ExtensionManager-updaterControls {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 8px; gap: 8px;
@@ -14,7 +14,7 @@
margin-bottom: 16px; margin-bottom: 16px;
} }
.PackageManager-extensions { .ExtensionManager-extensions {
width: 100%; width: 100%;
&-grid { &-grid {
@@ -25,7 +25,7 @@
} }
} }
.PackageManager-extension { .ExtensionManager-extension {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 8px; gap: 8px;
@@ -81,7 +81,7 @@
} }
} }
.PackageManager-majorUpdate { .ExtensionManager-majorUpdate {
--space: 16px; --space: 16px;
padding: var(--space); padding: var(--space);
display: grid; display: grid;
@@ -142,7 +142,7 @@
border-top: 1px solid var(--control-bg); border-top: 1px solid var(--control-bg);
} }
.PackageManager-updaterControls { .ExtensionManager-updaterControls {
margin: 0; margin: 0;
} }
} }
@@ -153,7 +153,7 @@
} }
} }
.PackageManager-installer .FormControl-container { .ExtensionManager-installer .FormControl-container {
max-width: 450px; max-width: 450px;
.FormControl { .FormControl {
@@ -161,11 +161,11 @@
} }
} }
.PackageManager-controlSection .container { .ExtensionManager-controlSection .container {
max-width: 1030px; max-width: 1030px;
overflow: visible; overflow: visible;
} }
.PackageManager-primaryWarning ul { .ExtensionManager-primaryWarning ul {
margin: 0; margin: 0;
} }

View File

@@ -1,4 +1,4 @@
.PackageManager-queueSection { .ExtensionManager-queueSection {
&-header > .container { &-header > .container {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -26,7 +26,7 @@
} }
} }
.PackageManager-queueTable { .ExtensionManager-queueTable {
&-package { &-package {
display: flex; display: flex;
align-items: center; align-items: center;

View File

@@ -1,4 +1,4 @@
flarum-package-manager: flarum-extension-manager:
admin: admin:
auth_config: auth_config:
add_label: New authentication method add_label: New authentication method
@@ -81,7 +81,7 @@ flarum-package-manager:
update_hard_label: Hard update update_hard_label: Hard update
file_permissions: > file_permissions: >
The package manager requires read and write permissions on the following files and directories: composer.json, composer.lock, vendor, storage, storage/.composer The extension 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: > description: >
@@ -136,8 +136,8 @@ flarum-package-manager:
settings: settings:
title: => core.ref.settings title: => core.ref.settings
access_warning: Please be careful to who you give access to the admin area, the package manager could be misused by bad actors to install packages that can lead to security breaches. access_warning: Please be careful to who you give access to the admin area, the extension manager could be misused by bad actors to install packages that can lead to security breaches.
debug_mode_warning: You are running in debug mode, the package manager cannot properly install and update local development packages. Please use the command line interface instead for such purposes. debug_mode_warning: You are running in debug mode, the extension manager cannot properly install and update local development packages. Please use the command line interface instead for such purposes.
queue_jobs: Run operations in the background queue queue_jobs: Run operations in the background queue
queue_jobs_help: > queue_jobs_help: >
You can read about a <a href='{basic_impl_link}'>basic queue</a> implementation or a <a href='{adv_impl_link}'>more advanced</a> one. You can read about a <a href='{basic_impl_link}'>basic queue</a> implementation or a <a href='{adv_impl_link}'>more advanced</a> one.

View File

@@ -10,7 +10,7 @@
use Flarum\Database\Migration; use Flarum\Database\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
return Migration::createTable( return Migration::createTableIfNotExists(
'package_manager_tasks', 'package_manager_tasks',
function (Blueprint $table) { function (Blueprint $table) {
$table->increments('id'); $table->increments('id');

View File

@@ -7,8 +7,22 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
use Flarum\Database\Migration; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Schema\Builder;
return Migration::addColumns('package_manager_tasks', [ return [
'guessed_cause' => ['type' => 'string', 'length' => 255, 'nullable' => true, 'after' => 'output'], 'up' => function (Builder $schema) {
]); $schema->table('package_manager_tasks', function (Blueprint $table) use ($schema) {
if (! $schema->hasColumn('package_manager_tasks', 'guessed_cause')) {
$table->string('guessed_cause', 255)->nullable()->after('output');
}
});
},
'down' => function (Builder $schema) {
$schema->table('package_manager_tasks', function (Blueprint $table) use ($schema) {
if ($schema->hasColumn('package_manager_tasks', 'guessed_cause')) {
$table->dropColumn('guessed_cause');
}
});
}
];

View File

@@ -0,0 +1,16 @@
<?php
use Illuminate\Database\Schema\Builder;
return [
'up' => function (Builder $schema) {
$schema->rename('package_manager_tasks', 'extension_manager_tasks');
$schema->getConnection()->table('migrations')->where('extension', 'flarum-package-manager')->delete();
},
'down' => function (Builder $schema) {
$schema->rename('extension_manager_tasks', 'package_manager_tasks');
$schema->getConnection()->table('migrations')->where('extension', 'flarum-extension-manager')->update([
'extension' => 'flarum-package-manager',
]);
}
];

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Command\CheckForUpdates; use Flarum\ExtensionManager\Command\CheckForUpdates;
use Flarum\PackageManager\Job\Dispatcher; use Flarum\ExtensionManager\Job\Dispatcher;
use Laminas\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;

View File

@@ -7,12 +7,12 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Foundation\Paths; use Flarum\Foundation\Paths;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Composer\ComposerJson; use Flarum\ExtensionManager\Composer\ComposerJson;
use Flarum\PackageManager\ConfigureComposerValidator; use Flarum\ExtensionManager\ConfigureComposerValidator;
use Illuminate\Contracts\Filesystem\FileNotFoundException; use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\Filesystem\Filesystem; use Illuminate\Filesystem\Filesystem;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
@@ -111,6 +111,8 @@ class ConfigureComposerController implements RequestHandlerInterface
$composerJson[$key] = Arr::get($composerJson, $key, Arr::get($default, $key)); $composerJson[$key] = Arr::get($composerJson, $key, Arr::get($default, $key));
} }
$composerJson = Arr::sortRecursive($composerJson);
return Arr::only($composerJson, $this->configurable); return Arr::only($composerJson, $this->configurable);
} }

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Command\GlobalUpdate; use Flarum\ExtensionManager\Command\GlobalUpdate;
use Flarum\PackageManager\Job\Dispatcher; use Flarum\ExtensionManager\Job\Dispatcher;
use Laminas\Diactoros\Response\EmptyResponse; use Laminas\Diactoros\Response\EmptyResponse;
use Laminas\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;

View File

@@ -7,13 +7,13 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Api\Controller\AbstractListController; 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\ExtensionManager\Api\Serializer\TaskSerializer;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document; use Tobscure\JsonApi\Document;
@@ -54,7 +54,7 @@ class ListTasksController extends AbstractListController
$document->addMeta('total', (string) $total); $document->addMeta('total', (string) $total);
$document->addPaginationLinks( $document->addPaginationLinks(
$this->url->to('api')->route('package-manager.tasks.index'), $this->url->to('api')->route('extension-manager.tasks.index'),
$request->getQueryParams(), $request->getQueryParams(),
$offset, $offset,
$limit, $limit,

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Command\MajorUpdate; use Flarum\ExtensionManager\Command\MajorUpdate;
use Flarum\PackageManager\Job\Dispatcher; use Flarum\ExtensionManager\Job\Dispatcher;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Laminas\Diactoros\Response\EmptyResponse; use Laminas\Diactoros\Response\EmptyResponse;
use Laminas\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Command\MinorUpdate; use Flarum\ExtensionManager\Command\MinorUpdate;
use Flarum\PackageManager\Job\Dispatcher; use Flarum\ExtensionManager\Job\Dispatcher;
use Laminas\Diactoros\Response\EmptyResponse; use Laminas\Diactoros\Response\EmptyResponse;
use Laminas\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Command\RemoveExtension; use Flarum\ExtensionManager\Command\RemoveExtension;
use Flarum\PackageManager\Job\Dispatcher; use Flarum\ExtensionManager\Job\Dispatcher;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Laminas\Diactoros\Response\EmptyResponse; use Laminas\Diactoros\Response\EmptyResponse;
use Laminas\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Command\RequireExtension; use Flarum\ExtensionManager\Command\RequireExtension;
use Flarum\PackageManager\Job\Dispatcher; use Flarum\ExtensionManager\Job\Dispatcher;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Laminas\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Command\UpdateExtension; use Flarum\ExtensionManager\Command\UpdateExtension;
use Flarum\PackageManager\Job\Dispatcher; use Flarum\ExtensionManager\Job\Dispatcher;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Laminas\Diactoros\Response\EmptyResponse; use Laminas\Diactoros\Response\EmptyResponse;
use Laminas\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Controller; namespace Flarum\ExtensionManager\Api\Controller;
use Flarum\Http\RequestUtil; use Flarum\Http\RequestUtil;
use Flarum\PackageManager\Command\WhyNot; use Flarum\ExtensionManager\Command\WhyNot;
use Flarum\PackageManager\Job\Dispatcher; use Flarum\ExtensionManager\Job\Dispatcher;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Laminas\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;

View File

@@ -7,10 +7,10 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Api\Serializer; namespace Flarum\ExtensionManager\Api\Serializer;
use Flarum\Api\Serializer\AbstractSerializer; use Flarum\Api\Serializer\AbstractSerializer;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use InvalidArgumentException; use InvalidArgumentException;
class TaskSerializer extends AbstractSerializer class TaskSerializer extends AbstractSerializer
@@ -18,7 +18,7 @@ class TaskSerializer extends AbstractSerializer
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected $type = 'package-manager-tasks'; protected $type = 'extension-manager-tasks';
/** /**
* {@inheritdoc} * {@inheritdoc}

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
abstract class AbstractActionCommand abstract class AbstractActionCommand
{ {

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\User\User; use Flarum\User\User;
class CheckForUpdates extends AbstractActionCommand class CheckForUpdates extends AbstractActionCommand

View File

@@ -7,14 +7,14 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\Extension\ExtensionManager; use Flarum\Extension\ExtensionManager;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Composer\ComposerJson; use Flarum\ExtensionManager\Composer\ComposerJson;
use Flarum\PackageManager\Exception\ComposerCommandFailedException; use Flarum\ExtensionManager\Exception\ComposerCommandFailedException;
use Flarum\PackageManager\Settings\LastUpdateCheck; use Flarum\ExtensionManager\Settings\LastUpdateCheck;
use Flarum\PackageManager\Support\Util; use Flarum\ExtensionManager\Support\Util;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\ArrayInput;
@@ -26,7 +26,7 @@ class CheckForUpdatesHandler
protected $composer; protected $composer;
/** /**
* @var \Flarum\PackageManager\Settings\LastUpdateCheck * @var \Flarum\ExtensionManager\Settings\LastUpdateCheck
*/ */
protected $lastUpdateCheck; protected $lastUpdateCheck;

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\User\User; use Flarum\User\User;
class GlobalUpdate extends AbstractActionCommand class GlobalUpdate extends AbstractActionCommand

View File

@@ -7,13 +7,13 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\Bus\Dispatcher as FlarumDispatcher; use Flarum\Bus\Dispatcher as FlarumDispatcher;
use Flarum\Foundation\Config; use Flarum\Foundation\Config;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\ExtensionManager\Event\FlarumUpdated;
use Flarum\PackageManager\Exception\ComposerUpdateFailedException; use Flarum\ExtensionManager\Exception\ComposerUpdateFailedException;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\ArrayInput;

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\User\User; use Flarum\User\User;
class MajorUpdate extends AbstractActionCommand class MajorUpdate extends AbstractActionCommand

View File

@@ -7,14 +7,14 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Composer\ComposerJson; use Flarum\ExtensionManager\Composer\ComposerJson;
use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\ExtensionManager\Event\FlarumUpdated;
use Flarum\PackageManager\Exception\MajorUpdateFailedException; use Flarum\ExtensionManager\Exception\MajorUpdateFailedException;
use Flarum\PackageManager\Exception\NoNewMajorVersionException; use Flarum\ExtensionManager\Exception\NoNewMajorVersionException;
use Flarum\PackageManager\Settings\LastUpdateCheck; use Flarum\ExtensionManager\Settings\LastUpdateCheck;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\ArrayInput;

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\User\User; use Flarum\User\User;
class MinorUpdate extends AbstractActionCommand class MinorUpdate extends AbstractActionCommand

View File

@@ -7,13 +7,13 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Composer\ComposerJson; use Flarum\ExtensionManager\Composer\ComposerJson;
use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\ExtensionManager\Event\FlarumUpdated;
use Flarum\PackageManager\Exception\ComposerUpdateFailedException; use Flarum\ExtensionManager\Exception\ComposerUpdateFailedException;
use Flarum\PackageManager\Settings\LastUpdateCheck; use Flarum\ExtensionManager\Settings\LastUpdateCheck;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Symfony\Component\Console\Input\StringInput; use Symfony\Component\Console\Input\StringInput;
@@ -25,7 +25,7 @@ class MinorUpdateHandler
protected $composer; protected $composer;
/** /**
* @var \Flarum\PackageManager\Settings\LastUpdateCheck * @var \Flarum\ExtensionManager\Settings\LastUpdateCheck
*/ */
protected $lastUpdateCheck; protected $lastUpdateCheck;

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\User\User; use Flarum\User\User;
class RemoveExtension extends AbstractActionCommand class RemoveExtension extends AbstractActionCommand

View File

@@ -7,15 +7,15 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\Extension\ExtensionManager; use Flarum\Extension\ExtensionManager;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Composer\ComposerJson; use Flarum\ExtensionManager\Composer\ComposerJson;
use Flarum\PackageManager\Exception\ComposerCommandFailedException; use Flarum\ExtensionManager\Exception\ComposerCommandFailedException;
use Flarum\PackageManager\Exception\ExtensionNotInstalledException; use Flarum\ExtensionManager\Exception\ExtensionNotInstalledException;
use Flarum\PackageManager\Exception\IndirectExtensionDependencyCannotBeRemovedException; use Flarum\ExtensionManager\Exception\IndirectExtensionDependencyCannotBeRemovedException;
use Flarum\PackageManager\Extension\Event\Removed; use Flarum\ExtensionManager\Extension\Event\Removed;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Symfony\Component\Console\Input\StringInput; use Symfony\Component\Console\Input\StringInput;

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\User\User; use Flarum\User\User;
class RequireExtension extends AbstractActionCommand class RequireExtension extends AbstractActionCommand

View File

@@ -7,15 +7,15 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\Extension\ExtensionManager; use Flarum\Extension\ExtensionManager;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Exception\ComposerRequireFailedException; use Flarum\ExtensionManager\Exception\ComposerRequireFailedException;
use Flarum\PackageManager\Exception\ExtensionAlreadyInstalledException; use Flarum\ExtensionManager\Exception\ExtensionAlreadyInstalledException;
use Flarum\PackageManager\Extension\Event\Installed; use Flarum\ExtensionManager\Extension\Event\Installed;
use Flarum\PackageManager\RequirePackageValidator; use Flarum\ExtensionManager\RequirePackageValidator;
use Flarum\PackageManager\Support\Util; use Flarum\ExtensionManager\Support\Util;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Symfony\Component\Console\Input\StringInput; use Symfony\Component\Console\Input\StringInput;

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\User\User; use Flarum\User\User;
class UpdateExtension extends AbstractActionCommand class UpdateExtension extends AbstractActionCommand

View File

@@ -7,15 +7,15 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\Extension\ExtensionManager; use Flarum\Extension\ExtensionManager;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Exception\ComposerUpdateFailedException; use Flarum\ExtensionManager\Exception\ComposerUpdateFailedException;
use Flarum\PackageManager\Exception\ExtensionNotInstalledException; use Flarum\ExtensionManager\Exception\ExtensionNotInstalledException;
use Flarum\PackageManager\Extension\Event\Updated; use Flarum\ExtensionManager\Extension\Event\Updated;
use Flarum\PackageManager\Settings\LastUpdateCheck; use Flarum\ExtensionManager\Settings\LastUpdateCheck;
use Flarum\PackageManager\UpdateExtensionValidator; use Flarum\ExtensionManager\UpdateExtensionValidator;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Symfony\Component\Console\Input\StringInput; use Symfony\Component\Console\Input\StringInput;

View File

@@ -7,9 +7,9 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\User\User; use Flarum\User\User;
class WhyNot extends AbstractActionCommand class WhyNot extends AbstractActionCommand

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Command; namespace Flarum\ExtensionManager\Command;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Exception\ComposerRequireFailedException; use Flarum\ExtensionManager\Exception\ComposerRequireFailedException;
use Flarum\PackageManager\WhyNotValidator; use Flarum\ExtensionManager\WhyNotValidator;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Symfony\Component\Console\Input\StringInput; use Symfony\Component\Console\Input\StringInput;

View File

@@ -7,14 +7,14 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Composer; namespace Flarum\ExtensionManager\Composer;
use Composer\Config; use Composer\Config;
use Composer\Console\Application; use Composer\Console\Application;
use Flarum\Foundation\Paths; use Flarum\Foundation\Paths;
use Flarum\PackageManager\OutputLogger; use Flarum\ExtensionManager\OutputLogger;
use Flarum\PackageManager\Support\Util; use Flarum\ExtensionManager\Support\Util;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Output\BufferedOutput;

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Composer; namespace Flarum\ExtensionManager\Composer;
use Flarum\Extension\ExtensionManager; use Flarum\Extension\ExtensionManager;
use Flarum\Foundation\Paths; use Flarum\Foundation\Paths;
use Flarum\PackageManager\Support\Util; use Flarum\ExtensionManager\Support\Util;
use Illuminate\Filesystem\Filesystem; use Illuminate\Filesystem\Filesystem;
use Illuminate\Support\Str; use Illuminate\Support\Str;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Composer; namespace Flarum\ExtensionManager\Composer;
class ComposerOutput class ComposerOutput
{ {

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager; namespace Flarum\ExtensionManager;
use Flarum\Foundation\AbstractValidator; use Flarum\Foundation\AbstractValidator;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Event; namespace Flarum\ExtensionManager\Event;
use Flarum\User\User; use Flarum\User\User;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
use Exception; use Exception;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
class ComposerRequireFailedException extends ComposerCommandFailedException class ComposerRequireFailedException extends ComposerCommandFailedException
{ {

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
class ComposerUpdateFailedException extends ComposerCommandFailedException class ComposerUpdateFailedException extends ComposerCommandFailedException
{ {

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
use Flarum\Foundation\ErrorHandling\HandledError; use Flarum\Foundation\ErrorHandling\HandledError;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
use Exception; use Exception;
use Flarum\Extension\Extension; use Flarum\Extension\Extension;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
use Exception; use Exception;
use Flarum\Foundation\KnownError; use Flarum\Foundation\KnownError;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
use Exception; use Exception;
use Flarum\Foundation\KnownError; use Flarum\Foundation\KnownError;

View File

@@ -7,11 +7,11 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
use Composer\Semver\Semver; use Composer\Semver\Semver;
use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\ExtensionManager\Event\FlarumUpdated;
use Flarum\PackageManager\Settings\LastUpdateRun; use Flarum\ExtensionManager\Settings\LastUpdateRun;
class MajorUpdateFailedException extends ComposerCommandFailedException class MajorUpdateFailedException extends ComposerCommandFailedException
{ {

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Exception; namespace Flarum\ExtensionManager\Exception;
use Exception; use Exception;
use Flarum\Foundation\KnownError; use Flarum\Foundation\KnownError;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Extension\Event; namespace Flarum\ExtensionManager\Extension\Event;
class Installed class Installed
{ {

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Extension\Event; namespace Flarum\ExtensionManager\Extension\Event;
use Flarum\Extension\Extension; use Flarum\Extension\Extension;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Extension\Event; namespace Flarum\ExtensionManager\Extension\Event;
use Flarum\Extension\Extension; use Flarum\Extension\Extension;
use Flarum\User\User; use Flarum\User\User;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager; namespace Flarum\ExtensionManager;
use Composer\Config; use Composer\Config;
use Composer\Console\Application; use Composer\Console\Application;
@@ -17,18 +17,18 @@ use Flarum\Foundation\AbstractServiceProvider;
use Flarum\Foundation\Paths; use Flarum\Foundation\Paths;
use Flarum\Frontend\RecompileFrontendAssets; use Flarum\Frontend\RecompileFrontendAssets;
use Flarum\Locale\LocaleManager; use Flarum\Locale\LocaleManager;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\ExtensionManager\Event\FlarumUpdated;
use Flarum\PackageManager\Extension\Event\Updated; use Flarum\ExtensionManager\Extension\Event\Updated;
use Flarum\PackageManager\Listener\ClearCacheAfterUpdate; use Flarum\ExtensionManager\Listener\ClearCacheAfterUpdate;
use Flarum\PackageManager\Listener\ReCheckForUpdates; use Flarum\ExtensionManager\Listener\ReCheckForUpdates;
use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Container\Container;
use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Events\Dispatcher;
use Monolog\Formatter\LineFormatter; use Monolog\Formatter\LineFormatter;
use Monolog\Handler\RotatingFileHandler; use Monolog\Handler\RotatingFileHandler;
use Monolog\Logger; use Monolog\Logger;
class PackageManagerServiceProvider extends AbstractServiceProvider class ExtensionManagerServiceProvider extends AbstractServiceProvider
{ {
public function register() public function register()
{ {

View File

@@ -7,12 +7,12 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Job; namespace Flarum\ExtensionManager\Job;
use Flarum\Bus\Dispatcher; use Flarum\Bus\Dispatcher;
use Flarum\PackageManager\Command\AbstractActionCommand; use Flarum\ExtensionManager\Command\AbstractActionCommand;
use Flarum\PackageManager\Composer\ComposerAdapter; use Flarum\ExtensionManager\Composer\ComposerAdapter;
use Flarum\PackageManager\Exception\ComposerCommandFailedException; use Flarum\ExtensionManager\Exception\ComposerCommandFailedException;
use Flarum\Queue\AbstractJob; use Flarum\Queue\AbstractJob;
use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Queue\Middleware\WithoutOverlapping; use Illuminate\Queue\Middleware\WithoutOverlapping;

View File

@@ -7,13 +7,13 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Job; namespace Flarum\ExtensionManager\Job;
use Carbon\Carbon; use Carbon\Carbon;
use Flarum\Bus\Dispatcher as Bus; use Flarum\Bus\Dispatcher as Bus;
use Flarum\Extension\ExtensionManager; use Flarum\Extension\ExtensionManager;
use Flarum\PackageManager\Command\AbstractActionCommand; use Flarum\ExtensionManager\Command\AbstractActionCommand;
use Flarum\PackageManager\Task\Task; use Flarum\ExtensionManager\Task\Task;
use Flarum\Settings\SettingsRepositoryInterface; use Flarum\Settings\SettingsRepositoryInterface;
use Illuminate\Contracts\Queue\Queue; use Illuminate\Contracts\Queue\Queue;
use Illuminate\Queue\SyncQueue; use Illuminate\Queue\SyncQueue;
@@ -73,7 +73,7 @@ class Dispatcher
public function dispatch(AbstractActionCommand $command): DispatcherResponse public function dispatch(AbstractActionCommand $command): DispatcherResponse
{ {
$queueJobs = ($this->runSyncOverride === false) || ($this->runSyncOverride !== true && $this->settings->get('flarum-package-manager.queue_jobs')); $queueJobs = ($this->runSyncOverride === false) || ($this->runSyncOverride !== true && $this->settings->get('flarum-extension-manager.queue_jobs'));
// Skip if there is already a pending or running task. // Skip if there is already a pending or running task.
if ($queueJobs && Task::query()->whereIn('status', [Task::PENDING, Task::RUNNING])->exists()) { if ($queueJobs && Task::query()->whereIn('status', [Task::PENDING, Task::RUNNING])->exists()) {
@@ -101,7 +101,7 @@ class Dispatcher
protected function clearOldTasks(): void protected function clearOldTasks(): void
{ {
$days = $this->settings->get('flarum-package-manager.task_retention_days'); $days = $this->settings->get('flarum-extension-manager.task_retention_days');
if ($days === null || ((int) $days) === 0) { if ($days === null || ((int) $days) === 0) {
return; return;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Job; namespace Flarum\ExtensionManager\Job;
class DispatcherResponse class DispatcherResponse
{ {

View File

@@ -7,12 +7,12 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Listener; namespace Flarum\ExtensionManager\Listener;
use Composer\Command\ClearCacheCommand; use Composer\Command\ClearCacheCommand;
use Flarum\Database\Console\MigrateCommand; use Flarum\Database\Console\MigrateCommand;
use Flarum\Foundation\Console\AssetsPublishCommand; use Flarum\Foundation\Console\AssetsPublishCommand;
use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\ExtensionManager\Event\FlarumUpdated;
use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Output\NullOutput; use Symfony\Component\Console\Output\NullOutput;

View File

@@ -7,14 +7,14 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Listener; namespace Flarum\ExtensionManager\Listener;
use Flarum\Bus\Dispatcher; use Flarum\Bus\Dispatcher;
use Flarum\PackageManager\Command\CheckForUpdates; use Flarum\ExtensionManager\Command\CheckForUpdates;
use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\ExtensionManager\Event\FlarumUpdated;
use Flarum\PackageManager\Extension\Event\Updated; use Flarum\ExtensionManager\Extension\Event\Updated;
use Flarum\PackageManager\Settings\LastUpdateCheck; use Flarum\ExtensionManager\Settings\LastUpdateCheck;
use Flarum\PackageManager\Settings\LastUpdateRun; use Flarum\ExtensionManager\Settings\LastUpdateRun;
class ReCheckForUpdates class ReCheckForUpdates
{ {

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager; namespace Flarum\ExtensionManager;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager; namespace Flarum\ExtensionManager;
use Flarum\Foundation\AbstractValidator; use Flarum\Foundation\AbstractValidator;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Settings; namespace Flarum\ExtensionManager\Settings;
interface JsonSetting interface JsonSetting
{ {

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Settings; namespace Flarum\ExtensionManager\Settings;
use Carbon\Carbon; use Carbon\Carbon;
use Flarum\Settings\SettingsRepositoryInterface; use Flarum\Settings\SettingsRepositoryInterface;
@@ -53,7 +53,7 @@ class LastUpdateCheck implements JsonSetting
public static function key(): string public static function key(): string
{ {
return 'flarum-package-manager.last_update_check'; return 'flarum-extension-manager.last_update_check';
} }
public static function default(): array public static function default(): array

View File

@@ -7,10 +7,10 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Settings; namespace Flarum\ExtensionManager\Settings;
use Carbon\Carbon; use Carbon\Carbon;
use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\ExtensionManager\Event\FlarumUpdated;
use Flarum\Settings\SettingsRepositoryInterface; use Flarum\Settings\SettingsRepositoryInterface;
class LastUpdateRun implements JsonSetting class LastUpdateRun implements JsonSetting
@@ -76,7 +76,7 @@ class LastUpdateRun implements JsonSetting
public static function key(): string public static function key(): string
{ {
return 'flarum-package-manager.last_update_run'; return 'flarum-extension-manager.last_update_run';
} }
public static function default(): array public static function default(): array

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Support; namespace Flarum\ExtensionManager\Support;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\ArrayInput;

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Task; namespace Flarum\ExtensionManager\Task;
use Carbon\Carbon; use Carbon\Carbon;
use Flarum\Database\AbstractModel; use Flarum\Database\AbstractModel;
@@ -49,7 +49,7 @@ class Task extends AbstractModel
public const UPDATED_AT = null; public const UPDATED_AT = null;
protected $table = 'package_manager_tasks'; protected $table = 'extension_manager_tasks';
protected $guarded = ['id']; protected $guarded = ['id'];

View File

@@ -7,7 +7,7 @@
* LICENSE file that was distributed with this source code. * LICENSE file that was distributed with this source code.
*/ */
namespace Flarum\PackageManager\Task; namespace Flarum\ExtensionManager\Task;
use Flarum\User\User; use Flarum\User\User;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;

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