1
0
mirror of https://github.com/flarum/core.git synced 2025-07-22 01:01:28 +02:00

Improve extensions page

- Allow extensions to define an icon in their flarum.json
- Show a "please wait" modal when enabling/disabling an extension
- Styling tweaks
This commit is contained in:
Toby Zerner
2015-08-07 08:51:03 +09:30
parent 154f93c72e
commit a34cebd94b
6 changed files with 65 additions and 21 deletions

View File

@@ -4,7 +4,9 @@ import Button from 'flarum/components/Button';
import Dropdown from 'flarum/components/Dropdown';
import Separator from 'flarum/components/Separator';
import AddExtensionModal from 'flarum/components/AddExtensionModal';
import LoadingModal from 'flarum/components/LoadingModal';
import ItemList from 'flarum/utils/ItemList';
import icon from 'flarum/helpers/icon';
export default class ExtensionsPage extends Component {
view() {
@@ -36,7 +38,9 @@ export default class ExtensionsPage extends Component {
menuClassName: 'Dropdown-menu--right'
})}
<div className="ExtensionListItem-content">
<span className="ExtensionListItem-icon ExtensionIcon"/>
<span className="ExtensionListItem-icon ExtensionIcon" style={extension.icon}>
{extension.icon ? icon(extension.icon.name) : ''}
</span>
<h4 className="ExtensionListItem-title">
{extension.title}{' '}
<small className="ExtensionListItem-version">{extension.version}</small>
@@ -65,7 +69,7 @@ export default class ExtensionsPage extends Component {
}
items.add('toggle', Button.component({
icon: enabled ? 'times' : 'check',
icon: 'power-off',
children: enabled ? 'Disable' : 'Enable',
onclick: () => {
app.request({
@@ -73,22 +77,24 @@ export default class ExtensionsPage extends Component {
method: 'PATCH',
data: {enabled: !enabled}
}).then(() => window.location.reload());
app.modal.show(new LoadingModal());
}
}));
if (!enabled) {
items.add('uninstall', Button.component({
icon: 'trash-o',
children: 'Uninstall'
}));
}
// if (!enabled) {
// items.add('uninstall', Button.component({
// icon: 'trash-o',
// children: 'Uninstall'
// }));
// }
items.add('separator2', Separator.component());
// items.add('separator2', Separator.component());
items.add('support', LinkButton.component({
icon: 'support',
children: 'Support'
}));
// items.add('support', LinkButton.component({
// icon: 'support',
// children: 'Support'
// }));
return items;
}

View File

@@ -0,0 +1,19 @@
import Modal from 'flarum/components/Modal';
export default class LoadingModal extends Modal {
isDismissible() {
return false;
}
className() {
return 'LoadingModal Modal--small';
}
title() {
return 'Please Wait...';
}
content() {
return '';
}
}