1
0
mirror of https://github.com/flarum/core.git synced 2025-10-11 06:54:26 +02:00

Replace Ember app with Mithril app

This commit is contained in:
Toby Zerner
2015-04-25 22:28:39 +09:30
parent 6f67b8c247
commit b68a4711dc
377 changed files with 5641 additions and 7330 deletions

View File

@@ -0,0 +1,14 @@
import Component from 'flarum/component';
import icon from 'flarum/helpers/icon';
import NavItem from 'flarum/components/nav-item';
export default class AdminNavItem extends NavItem {
view() {
var active = this.constructor.active(this.props);
return m('li'+(active ? '.active' : ''), m('a', {href: this.props.href, config: m.route}, [
icon(this.props.icon+' icon'),
m('span.label', this.props.label),
m('div.description', this.props.description)
]))
}
}

View File

@@ -0,0 +1,54 @@
import Component from 'flarum/component';
import UserDropdown from 'flarum/components/user-dropdown';
import AdminNavItem from 'flarum/components/admin-nav-item';
import DropdownSelect from 'flarum/components/dropdown-select';
import ItemList from 'flarum/utils/item-list';
import listItems from 'flarum/helpers/list-items';
export default class AdminNav extends Component {
view() {
return DropdownSelect.component({ items: this.items().toArray() });
}
items() {
var items = new ItemList();
items.add('dashboard', AdminNavItem.component({
href: app.route('dashboard'),
icon: 'bar-chart',
label: 'Dashboard',
description: 'Your forum at a glance.'
}));
items.add('basics', AdminNavItem.component({
href: app.route('basics'),
icon: 'pencil',
label: 'Basics',
description: 'Set your forum title, language, and other basic settings.'
}));
items.add('permissions', AdminNavItem.component({
href: app.route('permissions'),
icon: 'key',
label: 'Permissions',
description: 'Configure who can see and do what.'
}));
items.add('appearance', AdminNavItem.component({
href: app.route('appearance'),
icon: 'paint-brush',
label: 'Appearance',
description: 'Customize your forum\'s colors, logos, and other variables.'
}));
items.add('extensions', AdminNavItem.component({
href: app.route('extensions'),
icon: 'puzzle-piece',
label: 'Extensions',
description: 'Add extra functionality to your forum and make it your own.'
}));
return items;
}
}

View File

@@ -0,0 +1,7 @@
import Component from 'flarum/component';
export default class AppearancePage extends Component {
view() {
return m('div', 'appearance');
}
};

View File

@@ -0,0 +1,7 @@
import Component from 'flarum/component';
export default class BasicsPage extends Component {
view() {
return m('div', 'basics');
}
};

View File

@@ -0,0 +1,7 @@
import Component from 'flarum/component';
export default class DashboardPage extends Component {
view() {
return m('div', 'dashboard');
}
};

View File

@@ -0,0 +1,7 @@
import Component from 'flarum/component';
export default class ExtensionsPage extends Component {
view() {
return m('div', 'extensions');
}
};

View File

@@ -0,0 +1,15 @@
import Component from 'flarum/component';
import ItemList from 'flarum/utils/item-list';
import listItems from 'flarum/helpers/list-items';
export default class HeaderPrimary extends Component {
view() {
return m('ul.header-controls', listItems(this.items().toArray()));
}
items() {
var items = new ItemList();
return items;
}
}

View File

@@ -0,0 +1,19 @@
import Component from 'flarum/component';
import UserDropdown from 'flarum/components/user-dropdown';
import ItemList from 'flarum/utils/item-list';
import listItems from 'flarum/helpers/list-items';
export default class HeaderSecondary extends Component {
view() {
return m('ul.header-controls', listItems(this.items().toArray()));
}
items() {
var items = new ItemList();
items.add('user', UserDropdown.component({ user: app.session.user() }));
return items;
}
}

View File

@@ -0,0 +1,7 @@
import Component from 'flarum/component';
export default class PermissionsPage extends Component {
view() {
return m('div', 'permissions');
}
};

View File

@@ -0,0 +1,35 @@
import Component from 'flarum/component';
import avatar from 'flarum/helpers/avatar';
import username from 'flarum/helpers/username';
import DropdownButton from 'flarum/components/dropdown-button';
import ActionButton from 'flarum/components/action-button';
import ItemList from 'flarum/utils/item-list';
import Separator from 'flarum/components/separator';
export default class UserDropdown extends Component {
view() {
var user = this.props.user;
return DropdownButton.component({
buttonClass: 'btn btn-default btn-naked btn-rounded btn-user',
menuClass: 'pull-right',
buttonContent: [avatar(user), ' ', m('span.label', username(user))],
items: this.items().toArray()
});
}
items() {
var items = new ItemList();
var user = this.props.user;
items.add('logOut',
ActionButton.component({
icon: 'sign-out',
label: 'Log Out',
onclick: app.session.logout.bind(app.session)
})
);
return items;
}
}