mirror of
https://github.com/flarum/framework.git
synced 2025-02-19 07:13:24 +08:00
yarn format
This commit is contained in:
parent
68a3133bbb
commit
0aed124911
|
@ -1,8 +1,8 @@
|
|||
import app from 'flarum/admin/app';
|
||||
import Modal from 'flarum/common/components/Modal';
|
||||
import { ComponentAttrs } from "flarum/common/Component";
|
||||
import Alert from "flarum/common/components/Alert";
|
||||
import Mithril from "mithril";
|
||||
import { ComponentAttrs } from 'flarum/common/Component';
|
||||
import Alert from 'flarum/common/components/Alert';
|
||||
import Mithril from 'mithril';
|
||||
|
||||
interface Attrs extends ComponentAttrs {
|
||||
output: string;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import type Mithril from 'mithril';
|
||||
import app from 'flarum/admin/app';
|
||||
import Component from 'flarum/common/Component';
|
||||
import Button from "flarum/common/components/Button";
|
||||
import Stream from "flarum/common/utils/Stream";
|
||||
import LoadingModal from "flarum/admin/components/LoadingModal";
|
||||
import ComposerFailureModal from "./ComposerFailureModal";
|
||||
import errorHandler from "../utils/errorHandler";
|
||||
import Button from 'flarum/common/components/Button';
|
||||
import Stream from 'flarum/common/utils/Stream';
|
||||
import LoadingModal from 'flarum/admin/components/LoadingModal';
|
||||
import ComposerFailureModal from './ComposerFailureModal';
|
||||
import errorHandler from '../utils/errorHandler';
|
||||
|
||||
export default class Installer extends Component {
|
||||
packageName!: Stream<string>;
|
||||
|
@ -21,11 +21,13 @@ export default class Installer extends Component {
|
|||
return (
|
||||
<div className="Form-group">
|
||||
<label htmlFor="install-extension">{app.translator.trans('sycho-package-manager.admin.extensions.install')}</label>
|
||||
<p className="helpText">{app.translator.trans('sycho-package-manager.admin.extensions.install_help', {
|
||||
extiverse: <a href="https://extiverse.com">extiverse.com</a>
|
||||
})}</p>
|
||||
<p className="helpText">
|
||||
{app.translator.trans('sycho-package-manager.admin.extensions.install_help', {
|
||||
extiverse: <a href="https://extiverse.com">extiverse.com</a>,
|
||||
})}
|
||||
</p>
|
||||
<div className="FormControl-container">
|
||||
<input className="FormControl" id="install-extension" placeholder="vendor/package-name" bidi={this.packageName}/>
|
||||
<input className="FormControl" id="install-extension" placeholder="vendor/package-name" bidi={this.packageName} />
|
||||
<Button className="Button" icon="fas fa-download" onclick={this.onsubmit.bind(this)} loading={this.isLoading}>
|
||||
{app.translator.trans('sycho-package-manager.admin.extensions.proceed')}
|
||||
</Button>
|
||||
|
@ -44,21 +46,27 @@ export default class Installer extends Component {
|
|||
this.isLoading = true;
|
||||
app.modal.show(LoadingModal);
|
||||
|
||||
app.request({
|
||||
method: 'POST',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions`,
|
||||
body: {
|
||||
data: this.data()
|
||||
},
|
||||
errorHandler,
|
||||
}).then((response) => {
|
||||
const extensionId = response.id;
|
||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.extensions.successful_install', { extension: extensionId }));
|
||||
window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`;
|
||||
window.location.reload();
|
||||
}).finally(() => {
|
||||
this.isLoading = false;
|
||||
m.redraw();
|
||||
});
|
||||
app
|
||||
.request({
|
||||
method: 'POST',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions`,
|
||||
body: {
|
||||
data: this.data(),
|
||||
},
|
||||
errorHandler,
|
||||
})
|
||||
.then((response) => {
|
||||
const extensionId = response.id;
|
||||
app.alerts.show(
|
||||
{ type: 'success' },
|
||||
app.translator.trans('sycho-package-manager.admin.extensions.successful_install', { extension: extensionId })
|
||||
);
|
||||
window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`;
|
||||
window.location.reload();
|
||||
})
|
||||
.finally(() => {
|
||||
this.isLoading = false;
|
||||
m.redraw();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
import app from 'flarum/admin/app';
|
||||
import Component from 'flarum/common/Component';
|
||||
import icon from "flarum/common/helpers/icon";
|
||||
import Button from "flarum/common/components/Button";
|
||||
import humanTime from "flarum/common/helpers/humanTime";
|
||||
import LoadingModal from "flarum/admin/components/LoadingModal";
|
||||
import Tooltip from "flarum/common/components/Tooltip";
|
||||
import errorHandler from "../utils/errorHandler";
|
||||
import classList from "flarum/common/utils/classList";
|
||||
import LoadingIndicator from "flarum/common/components/LoadingIndicator";
|
||||
import icon from 'flarum/common/helpers/icon';
|
||||
import Button from 'flarum/common/components/Button';
|
||||
import humanTime from 'flarum/common/helpers/humanTime';
|
||||
import LoadingModal from 'flarum/admin/components/LoadingModal';
|
||||
import Tooltip from 'flarum/common/components/Tooltip';
|
||||
import errorHandler from '../utils/errorHandler';
|
||||
import classList from 'flarum/common/utils/classList';
|
||||
import LoadingIndicator from 'flarum/common/components/LoadingIndicator';
|
||||
|
||||
type UpdatedPackage = {
|
||||
name: string;
|
||||
version: string;
|
||||
latest: string;
|
||||
"latest-status": string;
|
||||
'latest-status': string;
|
||||
description: string;
|
||||
};
|
||||
|
||||
|
@ -27,7 +27,7 @@ type LastUpdateCheck = {
|
|||
};
|
||||
|
||||
export default class Updater extends Component {
|
||||
isLoading: string|null = null;
|
||||
isLoading: string | null = null;
|
||||
lastUpdateCheck: LastUpdateCheck = app.data.lastUpdateCheck || {};
|
||||
|
||||
oninit(vnode) {
|
||||
|
@ -36,7 +36,7 @@ export default class Updater extends Component {
|
|||
|
||||
view() {
|
||||
const extensions: any = this.getExtensionUpdates();
|
||||
const coreUpdate: UpdatedPackage|undefined = this.getCoreUpdate();
|
||||
const coreUpdate: UpdatedPackage | undefined = this.getCoreUpdate();
|
||||
let core = null;
|
||||
|
||||
if (coreUpdate) {
|
||||
|
@ -56,7 +56,9 @@ export default class Updater extends Component {
|
|||
<p className="helpText">{app.translator.trans('sycho-package-manager.admin.updater.updater_help')}</p>
|
||||
{Object.keys(this.lastUpdateCheck).length ? (
|
||||
<p className="PackageManager-lastUpdatedAt">
|
||||
<span className="PackageManager-lastUpdatedAt-label">{app.translator.trans('sycho-package-manager.admin.updater.last_update_checked_at')}</span>
|
||||
<span className="PackageManager-lastUpdatedAt-label">
|
||||
{app.translator.trans('sycho-package-manager.admin.updater.last_update_checked_at')}
|
||||
</span>
|
||||
<span className="PackageManager-lastUpdatedAt-value">{humanTime(this.lastUpdateCheck?.checkedAt)}</span>
|
||||
</p>
|
||||
) : null}
|
||||
|
@ -66,7 +68,8 @@ export default class Updater extends Component {
|
|||
icon="fas fa-sync-alt"
|
||||
onclick={this.checkForUpdates.bind(this)}
|
||||
loading={this.isLoading === 'check'}
|
||||
disabled={this.isLoading !== null && this.isLoading !== 'check'}>
|
||||
disabled={this.isLoading !== null && this.isLoading !== 'check'}
|
||||
>
|
||||
{app.translator.trans('sycho-package-manager.admin.updater.check_for_updates')}
|
||||
</Button>
|
||||
<Button
|
||||
|
@ -74,7 +77,8 @@ export default class Updater extends Component {
|
|||
icon="fas fa-play"
|
||||
onclick={this.updateGlobally.bind(this)}
|
||||
loading={this.isLoading === 'global-update'}
|
||||
disabled={this.isLoading !== null && this.isLoading !== 'global-update'}>
|
||||
disabled={this.isLoading !== null && this.isLoading !== 'global-update'}
|
||||
>
|
||||
{app.translator.trans('sycho-package-manager.admin.updater.run_global_update')}
|
||||
</Button>
|
||||
</div>
|
||||
|
@ -82,21 +86,21 @@ export default class Updater extends Component {
|
|||
<div className="PackageManager-extensions">
|
||||
<LoadingIndicator />
|
||||
</div>
|
||||
) : (extensions.length || core ? (
|
||||
) : extensions.length || core ? (
|
||||
<div className="PackageManager-extensions">
|
||||
<div className="PackageManager-extensions-grid">
|
||||
{core ? this.extensionItem(core, true) : null}
|
||||
{extensions.map((extension: any) => this.extensionItem(extension))}
|
||||
</div>
|
||||
</div>
|
||||
) : null)}
|
||||
) : null}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
extensionItem(extension: any, isCore: boolean = false) {
|
||||
return (
|
||||
<div className={classList({'PackageManager-extension': true, 'PackageManager-extension--core': isCore})}>
|
||||
<div className={classList({ 'PackageManager-extension': true, 'PackageManager-extension--core': isCore })}>
|
||||
<div className="PackageManager-extension-icon ExtensionIcon" style={extension.icon}>
|
||||
{extension.icon ? icon(extension.icon.name) : ''}
|
||||
</div>
|
||||
|
@ -113,7 +117,8 @@ export default class Updater extends Component {
|
|||
icon="fas fa-arrow-alt-circle-up"
|
||||
className="Button Button--icon Button--flat"
|
||||
onclick={isCore ? this.updateCoreMinor.bind(this) : this.updateExtension.bind(this, extension)}
|
||||
aria-label={app.translator.trans('sycho-package-manager.admin.extensions.update')} />
|
||||
aria-label={app.translator.trans('sycho-package-manager.admin.extensions.update')}
|
||||
/>
|
||||
</Tooltip>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -135,73 +140,88 @@ export default class Updater extends Component {
|
|||
return Object.values(app.data.extensions).filter((extension: any) => extension.newPackageUpdate);
|
||||
}
|
||||
|
||||
getCoreUpdate(): UpdatedPackage|undefined {
|
||||
getCoreUpdate(): UpdatedPackage | undefined {
|
||||
return this.lastUpdateCheck?.updates?.installed?.filter((composerPackage: any) => composerPackage.name === 'flarum/core').pop();
|
||||
}
|
||||
|
||||
checkForUpdates() {
|
||||
this.isLoading = 'check';
|
||||
|
||||
app.request({
|
||||
method: 'POST',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/check-for-updates`,
|
||||
errorHandler,
|
||||
}).then((response) => {
|
||||
this.lastUpdateCheck = response as LastUpdateCheck;
|
||||
}).finally(() => {
|
||||
this.isLoading = null;
|
||||
m.redraw();
|
||||
});
|
||||
app
|
||||
.request({
|
||||
method: 'POST',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/check-for-updates`,
|
||||
errorHandler,
|
||||
})
|
||||
.then((response) => {
|
||||
this.lastUpdateCheck = response as LastUpdateCheck;
|
||||
})
|
||||
.finally(() => {
|
||||
this.isLoading = null;
|
||||
m.redraw();
|
||||
});
|
||||
}
|
||||
|
||||
updateCoreMinor() {
|
||||
app.modal.show(LoadingModal);
|
||||
this.isLoading = 'minor-update';
|
||||
|
||||
app.request({
|
||||
method: 'POST',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/minor-update`,
|
||||
errorHandler,
|
||||
}).then(() => {
|
||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.updater.minor_update_successful'));
|
||||
window.location.reload();
|
||||
}).finally(() => {
|
||||
this.isLoading = null;
|
||||
m.redraw();
|
||||
});
|
||||
app
|
||||
.request({
|
||||
method: 'POST',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/minor-update`,
|
||||
errorHandler,
|
||||
})
|
||||
.then(() => {
|
||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.updater.minor_update_successful'));
|
||||
window.location.reload();
|
||||
})
|
||||
.finally(() => {
|
||||
this.isLoading = null;
|
||||
m.redraw();
|
||||
});
|
||||
}
|
||||
|
||||
updateExtension(extension: any) {
|
||||
app.modal.show(LoadingModal);
|
||||
this.isLoading = 'extension-update';
|
||||
|
||||
app.request({
|
||||
method: 'PATCH',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${extension.id}`,
|
||||
errorHandler,
|
||||
}).then(() => {
|
||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.extensions.successful_update', { extension: extension.extra['flarum-extension'].title }));
|
||||
window.location.reload();
|
||||
}).finally(() => {
|
||||
this.isLoading = null;
|
||||
m.redraw();
|
||||
});
|
||||
app
|
||||
.request({
|
||||
method: 'PATCH',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${extension.id}`,
|
||||
errorHandler,
|
||||
})
|
||||
.then(() => {
|
||||
app.alerts.show(
|
||||
{ type: 'success' },
|
||||
app.translator.trans('sycho-package-manager.admin.extensions.successful_update', { extension: extension.extra['flarum-extension'].title })
|
||||
);
|
||||
window.location.reload();
|
||||
})
|
||||
.finally(() => {
|
||||
this.isLoading = null;
|
||||
m.redraw();
|
||||
});
|
||||
}
|
||||
|
||||
updateGlobally() {
|
||||
app.modal.show(LoadingModal);
|
||||
this.isLoading = 'global-update';
|
||||
|
||||
app.request({
|
||||
method: 'POST',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/global-update`,
|
||||
errorHandler,
|
||||
}).then(() => {
|
||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.updater.global_update_successful'));
|
||||
window.location.reload();
|
||||
}).finally(() => {
|
||||
this.isLoading = null;
|
||||
m.redraw();
|
||||
});
|
||||
app
|
||||
.request({
|
||||
method: 'POST',
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/global-update`,
|
||||
errorHandler,
|
||||
})
|
||||
.then(() => {
|
||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.updater.global_update_successful'));
|
||||
window.location.reload();
|
||||
})
|
||||
.finally(() => {
|
||||
this.isLoading = null;
|
||||
m.redraw();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ import Alert from 'flarum/common/components/Alert';
|
|||
import ExtensionPage from 'flarum/admin/components/ExtensionPage';
|
||||
import Button from 'flarum/common/components/Button';
|
||||
import LoadingModal from 'flarum/admin/components/LoadingModal';
|
||||
import Installer from "./components/Installer";
|
||||
import Updater from "./components/Updater";
|
||||
import Installer from './components/Installer';
|
||||
import Updater from './components/Updater';
|
||||
import isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled';
|
||||
|
||||
app.initializers.add('sycho-package-manager', (app) => {
|
||||
|
@ -15,23 +15,21 @@ app.initializers.add('sycho-package-manager', (app) => {
|
|||
if (!app.data.isRequiredDirectoriesWritable) {
|
||||
return (
|
||||
<div className="Form-group">
|
||||
<Alert type="warning" dismissible={false}>{app.translator.trans('sycho-package-manager.admin.file_permissions')}</Alert>
|
||||
<Alert type="warning" dismissible={false}>
|
||||
{app.translator.trans('sycho-package-manager.admin.file_permissions')}
|
||||
</Alert>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
})
|
||||
.registerSetting(() => {
|
||||
if (app.data.isRequiredDirectoriesWritable) {
|
||||
return (
|
||||
<Installer />
|
||||
);
|
||||
return <Installer />;
|
||||
}
|
||||
})
|
||||
.registerSetting(() => {
|
||||
if (app.data.isRequiredDirectoriesWritable) {
|
||||
return (
|
||||
<Updater />
|
||||
);
|
||||
return <Updater />;
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -48,16 +46,20 @@ app.initializers.add('sycho-package-manager', (app) => {
|
|||
onclick={() => {
|
||||
app.modal.show(LoadingModal);
|
||||
|
||||
app.request({
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${this.extension.id}`,
|
||||
method: 'DELETE',
|
||||
}).then(() => {
|
||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.extensions.successful_remove'));
|
||||
window.location = app.forum.attribute('adminUrl');
|
||||
}).finally(() => {
|
||||
app.modal.close();
|
||||
});
|
||||
}}>
|
||||
app
|
||||
.request({
|
||||
url: `${app.forum.attribute('apiUrl')}/package-manager/extensions/${this.extension.id}`,
|
||||
method: 'DELETE',
|
||||
})
|
||||
.then(() => {
|
||||
app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.extensions.successful_remove'));
|
||||
window.location = app.forum.attribute('adminUrl');
|
||||
})
|
||||
.finally(() => {
|
||||
app.modal.close();
|
||||
});
|
||||
}}
|
||||
>
|
||||
Remove
|
||||
</Button>
|
||||
);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import app from "flarum/admin/app";
|
||||
import ComposerFailureModal from "../components/ComposerFailureModal";
|
||||
import app from 'flarum/admin/app';
|
||||
import ComposerFailureModal from '../components/ComposerFailureModal';
|
||||
|
||||
export default function (e: any) {
|
||||
const error = e.response.errors[0];
|
||||
|
|
Loading…
Reference in New Issue
Block a user