diff --git a/extensions/package-manager/js/src/admin/components/ComposerFailureModal.tsx b/extensions/package-manager/js/src/admin/components/ComposerFailureModal.tsx index 5fd616aa7..49afeac8e 100755 --- a/extensions/package-manager/js/src/admin/components/ComposerFailureModal.tsx +++ b/extensions/package-manager/js/src/admin/components/ComposerFailureModal.tsx @@ -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; diff --git a/extensions/package-manager/js/src/admin/components/Installer.tsx b/extensions/package-manager/js/src/admin/components/Installer.tsx index cac506a4e..71840c0e4 100755 --- a/extensions/package-manager/js/src/admin/components/Installer.tsx +++ b/extensions/package-manager/js/src/admin/components/Installer.tsx @@ -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; @@ -21,11 +21,13 @@ export default class Installer extends Component { return (
-

{app.translator.trans('sycho-package-manager.admin.extensions.install_help', { - extiverse: extiverse.com - })}

+

+ {app.translator.trans('sycho-package-manager.admin.extensions.install_help', { + extiverse: extiverse.com, + })} +

- + @@ -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(); + }); } } diff --git a/extensions/package-manager/js/src/admin/components/Updater.tsx b/extensions/package-manager/js/src/admin/components/Updater.tsx index bada011eb..1fb30e76f 100755 --- a/extensions/package-manager/js/src/admin/components/Updater.tsx +++ b/extensions/package-manager/js/src/admin/components/Updater.tsx @@ -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 {

{app.translator.trans('sycho-package-manager.admin.updater.updater_help')}

{Object.keys(this.lastUpdateCheck).length ? (

- {app.translator.trans('sycho-package-manager.admin.updater.last_update_checked_at')} + + {app.translator.trans('sycho-package-manager.admin.updater.last_update_checked_at')} + {humanTime(this.lastUpdateCheck?.checkedAt)}

) : 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')}
@@ -82,21 +86,21 @@ export default class Updater extends Component {
- ) : (extensions.length || core ? ( + ) : extensions.length || core ? (
{core ? this.extensionItem(core, true) : null} {extensions.map((extension: any) => this.extensionItem(extension))}
- ) : null)} + ) : null}
); } extensionItem(extension: any, isCore: boolean = false) { return ( -
+
{extension.icon ? icon(extension.icon.name) : ''}
@@ -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')} + />
@@ -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(); + }); } } diff --git a/extensions/package-manager/js/src/admin/index.js b/extensions/package-manager/js/src/admin/index.js index 0e71bffb0..99571479a 100755 --- a/extensions/package-manager/js/src/admin/index.js +++ b/extensions/package-manager/js/src/admin/index.js @@ -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 (
- {app.translator.trans('sycho-package-manager.admin.file_permissions')} + + {app.translator.trans('sycho-package-manager.admin.file_permissions')} +
); } }) .registerSetting(() => { if (app.data.isRequiredDirectoriesWritable) { - return ( - - ); + return ; } }) .registerSetting(() => { if (app.data.isRequiredDirectoriesWritable) { - return ( - - ); + return ; } }); @@ -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 ); diff --git a/extensions/package-manager/js/src/admin/utils/errorHandler.ts b/extensions/package-manager/js/src/admin/utils/errorHandler.ts index a5aff2a93..679fa9e8d 100755 --- a/extensions/package-manager/js/src/admin/utils/errorHandler.ts +++ b/extensions/package-manager/js/src/admin/utils/errorHandler.ts @@ -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];