Skip to content
This repository has been archived by the owner on Feb 3, 2021. It is now read-only.

Commit

Permalink
Fixes #48
Browse files Browse the repository at this point in the history
  • Loading branch information
claviska committed May 7, 2017
1 parent bbae6de commit 02229a0
Show file tree
Hide file tree
Showing 13 changed files with 71 additions and 73 deletions.
2 changes: 0 additions & 2 deletions source/controllers/admin/edit_post_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ const HttpCodes = require('http-codes');
const Promise = require('bluebird');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));
const AutocompleteSuggestions = require(Path.join(__basedir, 'source/modules/autocomplete_suggestions.js'));
const Themes = require(Path.join(__basedir, 'source/modules/themes.js'));

Expand Down Expand Up @@ -100,7 +99,6 @@ module.exports = {

// Render the template
res.render('admin/edit_post', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'edit-post',
title: I18n.term(create ? 'new_post' : 'edit_post')
Expand Down
5 changes: 0 additions & 5 deletions source/controllers/admin/edit_tag_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@

// Node modules
const HttpCodes = require('http-codes');
const Path = require('path');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));

module.exports = {

Expand Down Expand Up @@ -33,7 +29,6 @@ module.exports = {

// Render the template
res.render('admin/edit_tag', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'edit-tag',
title: I18n.term(create ? 'new_tag' : 'edit_tag')
Expand Down
5 changes: 0 additions & 5 deletions source/controllers/admin/edit_user_controller.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
'use strict';

// Node modules
const Path = require('path');
const HttpCodes = require('http-codes');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));

module.exports = {

//
Expand Down Expand Up @@ -39,7 +35,6 @@ module.exports = {

// Render the template
res.render('admin/edit_user', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'edit-user',
title: I18n.term(create ? 'new_user' : 'edit_user')
Expand Down
2 changes: 0 additions & 2 deletions source/controllers/admin/navigation_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ const Path = require('path');
const Promise = require('bluebird');

// Node modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));
const AutocompleteSuggestions = require(Path.join(__basedir, 'source/modules/autocomplete_suggestions.js'));

module.exports = {
Expand All @@ -22,7 +21,6 @@ module.exports = {
.then((links) => {
// Render the template
res.render('admin/navigation', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'navigation',
title: I18n.term('navigation')
Expand Down
5 changes: 0 additions & 5 deletions source/controllers/admin/posts_controller.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
'use strict';

// Node modules
const Path = require('path');
const Promise = require('bluebird');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));

module.exports = {

//
Expand Down Expand Up @@ -80,7 +76,6 @@ module.exports = {
// Render the template
.then((posts) => {
res.render('admin/posts', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'posts',
title: I18n.term('posts')
Expand Down
2 changes: 0 additions & 2 deletions source/controllers/admin/quick_post_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ const Path = require('path');
const Promise = require('bluebird');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));
const Themes = require(Path.join(__basedir, 'source/modules/themes.js'));

module.exports = {
Expand All @@ -26,7 +25,6 @@ module.exports = {
// Render the template
.then(() => {
res.render('admin/quick_post', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'quick-post',
title: I18n.term('quick_post')
Expand Down
2 changes: 0 additions & 2 deletions source/controllers/admin/settings_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ const Path = require('path');
const Promise = require('bluebird');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));
const Themes = require(Path.join(__basedir, 'source/modules/themes.js'));

module.exports = {
Expand Down Expand Up @@ -57,7 +56,6 @@ module.exports = {

// Render the template
res.render('admin/settings', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'settings',
title: I18n.term('settings')
Expand Down
5 changes: 0 additions & 5 deletions source/controllers/admin/tags_controller.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
'use strict';

// Node modules
const Path = require('path');
const Promise = require('bluebird');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));

module.exports = {

//
Expand All @@ -29,7 +25,6 @@ module.exports = {
.then((tags) => {
// Render the template
res.render('admin/tags', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'tags',
title: I18n.term('tags')
Expand Down
5 changes: 0 additions & 5 deletions source/controllers/admin/users_controller.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
'use strict';

// Node modules
const Path = require('path');
const Promise = require('bluebird');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));

module.exports = {

//
Expand All @@ -29,7 +25,6 @@ module.exports = {
.then((users) => {
// Render the template
res.render('admin/users', {
adminMenu: AdminMenu.getItems(req),
meta: {
bodyClass: 'users',
title: I18n.term('users')
Expand Down
26 changes: 15 additions & 11 deletions source/controllers/api/search_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ module.exports = {
// { invalid: [] }
//
index: function(req, res, next) {
const I18n = req.app.locals.I18n;
const Settings = req.app.locals.Settings;
const User = req.User;
const MakeUrl = require(Path.join(__basedir, 'source/modules/make_url.js'))(req.app.locals.Settings);
Expand Down Expand Up @@ -58,20 +59,23 @@ module.exports = {
}

// Search menu items
let adminMenu = AdminMenu.getItems(req);
let adminMenu = AdminMenu.get(I18n, User, Settings);
let adminMenuResults = [];
// Loop through groups
adminMenu.forEach((group) => {
group.forEach((item) => {
if(!item.noSearch && item.label.toLowerCase().indexOf(req.query.search.toLowerCase()) > -1) {
adminMenuResults.push({
title: item.label,
description: null,
icon: item.icon,
link: item.link
});
}
});
// Loop through items
if(Array.isArray(group.items)) {
group.items.forEach((item) => {
if(!item.noSearch && item.label.toLowerCase().indexOf(req.query.search.toLowerCase()) > -1) {
adminMenuResults.push({
title: item.label,
description: null,
icon: item.icon,
link: item.link
});
}
});
}
});

// Search users
Expand Down
13 changes: 7 additions & 6 deletions source/modules/admin_menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@ const self = {
//
// Gets all admin menu items.
//
// Returns an array of menu item objects.
// Returns an array of menu item groups: [{ items: [] }, { items: [] }, ...]
//
getItems: (req) => {
const I18n = req.app.locals.I18n;
const User = req.User;
const MakeUrl = require(Path.join(__basedir, 'source/modules/make_url.js'))(req.app.locals.Settings);
get: (I18n, User, Settings) => {
const MakeUrl = require(Path.join(__basedir, 'source/modules/make_url.js'))(Settings);
let primary = [];
let secondary = [];

Expand Down Expand Up @@ -75,7 +73,10 @@ const self = {
noSearch: true
});

return [secondary, primary];
return [
{ items: secondary },
{ items: primary }
];
}

};
Expand Down
25 changes: 25 additions & 0 deletions source/modules/helpers/theme_helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ const Trim = require('trim');
const TruncateHtml = require('truncate-html');

// Local modules
const AdminMenu = require(Path.join(__basedir, 'source/modules/admin_menu.js'));
const SignedUrl = require(Path.join(__basedir, 'source/modules/signed_url.js'));
const Slug = require(Path.join(__basedir, 'source/modules/slug.js'));

Expand Down Expand Up @@ -187,6 +188,30 @@ module.exports = (dust) => {
});
};

//
// Gets all admin menu items.
//
// Examples:
//
// {@getAdminMenu}
// {#groups}
// {#items}
// <a href="{link}">{label}</a>
// {/items}
// {/groups}
// {/getAdminMenu}
//
dust.helpers.getAdminMenu = (chunk, context, bodies) => {
const I18n = context.options.locals.I18n;
const Settings = context.options.locals.Settings;
const User = context.options.locals.User;
let groups = AdminMenu.get(I18n, User, Settings);

chunk = bodies.block(chunk, context.push({ groups: groups }));

return chunk;
};

//
// Gets one or more authors.
//
Expand Down
47 changes: 24 additions & 23 deletions source/views/admin/partials/admin_menu.dust
Original file line number Diff line number Diff line change
Expand Up @@ -82,28 +82,29 @@

{! Menu items !}
<div class="admin-menu-items">
{! Iterate menu item groups !}
{#adminMenu}
{! Iterate menu items !}
{#.}
<a
class="admin-menu-item {class} {@urlCompare url=link}admin-menu-current{/urlCompare}"
href="{link}"
title="{label}"
>
{?image}
{! Image !}
<img src="{image}" alt="{label}">
{:else}
{! Icon !}
<i class="{icon}"></i>
{/image}
<span class="admin-menu-label">{label}</span>
</a>
{/.}

{! Draw a divider between each group !}
{@sep}<hr class="admin-menu-divider">{/sep}
{/adminMenu}
{@getAdminMenu}
{! Iterate menu groups !}
{#groups}
{! Iterate menu items !}
{#items}
<a
class="admin-menu-item {class} {@urlCompare url=link}admin-menu-current{/urlCompare}"
href="{link}"
title="{label}"
>
{?image}
{! Image !}
<img src="{image}" alt="{label}">
{:else}
{! Icon !}
<i class="{icon}"></i>
{/image}
<span class="admin-menu-label">{label}</span>
</a>
{/items}
{! Draw a divider between each group !}
{@sep}<hr class="admin-menu-divider">{/sep}
{/groups}
{/getAdminMenu}
</div>
</nav>

0 comments on commit 02229a0

Please sign in to comment.