Jump to content

ProcessWire Dashboard


Recommended Posts

ProcessWire Dashboard

1577998373376.thumb.jpg.0d9081029323d8788ec2e8e84662ae7c.jpg

Download

You can find the latest release on Github.

Documentation

Check out the documentation to get started. This is where you'll find information about included panel types and configuration options.

Custom Panels

The goal was to make it simple to create custom panels. The easiest way to do that is to use the panel type template and have it render a file in your templates folder. This might be enough for 80% of all use cases. For anything more complex (FormBuilder submissions? Comments? Live chat?), you can add new panel types by creating modules that extend the DashboardPanel base class. Check out the documentation on custom panels or take a look at the HelloWorld panel to get started. I'm happy to merge any user-created modules into the main repo if they might be useful to more than a few people.

Roadmap

  • Panel types
    • Google Analytics
    • Draft
    • At a glance / Page counter
    • 404s
  •  Layout options
    • Render multiple tabs per panel
  • Chart panel
    • load chart data from JS file (currently passed as PHP array)
  • Like 35
  • Thanks 11
Link to comment
Share on other sites

thanks @d'Hinnisdaël so i have this working on a site, but i have a question about the shortcuts, how do you make a shortcut to a custom URL, like say a module edit screen, or even an external URL?

Also, how did you get the icon for the Profile to not be a bookmark?

Lastly, I noticed that I had to put the hooks in ready.php, they weren't working in admin.php for some reason...

Also, i think there needs to be a fix for the loading of the module only in admin, may be loading stuff in $config without checking if admin and frontend that use $config->styles might be picking those up (i'm getting errors as i have modules that put css/js into $config only for front end)...

Link to comment
Share on other sites

@Macrura

1 hour ago, Macrura said:

how do you make a shortcut to a custom URL, like say a module edit screen, or even an external URL?

Also, how did you get the icon for the Profile to not be a bookmark?

Lastly, I noticed that I had to put the hooks in ready.php, they weren't working in admin.php for some reason...

Also, i think there needs to be a fix for the loading of the module only in admin, may be loading stuff in $config without checking if admin and frontend

Shortcut URLs

I have pushed a release that treats strings as URLs so that any of the following options should work:

[
  'shortcuts' => [

    // Page
    $this->pages->get(1132),

    // Page ID
    1020,

    // Overwrite page title
    'New things' => 1020,

    // Set custom URL
    'Backups' => "{$config->urls->admin}setup/db-backups/backup/",

  ],
]

Profile page icon

Check out the PageIcon module which lets you set custom icons for every page.

Hooks in admin.php

That's strange. Do you have any other hooks in admin.php that work? I have tons of hooks there and never had a problem.

$config->styles

True, I don't use the styles array myself so I haven't run into this. Will research a fix.

  • Like 3
Link to comment
Share on other sites

thanks - and i guess the version file needs to be updated (?)..

this is working well for me; I have my own dashboard module, but it uses templates, pages and fields, and is thus cumbersome for smaller/low budget sites. My dashboard module uses AdminLTE, so it has stuff like collapsible panels with state recall; For some of the more complex panels like Formbuilder entries, etc, i'll just build custom panels and hook into this module.

Thanks again for building this! This is very extensible, looks and works great, and seems like it will be a very popular module! Here's the dashboard i just threw together...

Dashboard_ibtc.thumb.jpg.92f7b9d64667983954227234848e5448.jpg

  • Like 9
Link to comment
Share on other sites

@matjazp I added a release that adds the margins back in for the default admin theme.

Concerning the user name display: I can't reproduce that on the current master version (3.0.148) with AdminThemeDefault. However, the latest release only displays 'Welcome' without a comma if the user name comes out empty. Why it would be empty, I don't know, since it's working fine here.

  • Like 1
Link to comment
Share on other sites

Title is not displayed even if I use AdminThemeUikit. Problematic is this line:

$userLabel = $this->modules->getConfig('AdminThemeUikit', 'userLabel') ?: 'title|name'; // return "{Name}"

Note that $userLabel is always {Name}, regardless of what theme is used. What happens if AdminThemeUikit is not installed? If I set $userLabel to 'title|name' then the title is displayed. Perhaps you should specify in module settings the minimum PW version (guess its 3.0.66 - when getConfig() is introduced) and minimum PHP version (at least 7.0?).

Link to comment
Share on other sites

Perhaps actions col in collections (DashboardTableColumn__actions__) don't need to be sortable? Would be nice if we could set the icon for every shortcut in Shortcuts panel, regradless if page has the icon set. On the other hand, I can create my own panel :-) Is support for IE11 planned?

Link to comment
Share on other sites

14 hours ago, matjazp said:

Perhaps actions col in collections (DashboardTableColumn__actions__) don't need to be sortable? Would be nice if we could set the icon for every shortcut in Shortcuts panel, regradless if page has the icon set. On the other hand, I can create my own panel 🙂 Is support for IE11 planned?

You're right about the actions column — I pushed a release that hides the table sort arrows. Also, I added a readme section on how to set custom icons per shortcut:

  'shortcuts' => [
    'Updates' => 1020,           // Override title
    'Updates' => [1020, 'gear'], // Override title + icon
  ],

Support for IE is definitely not planned. I'm happy to take pull requests, though, if you find a way to pull it off 🦜

  • Like 4
Link to comment
Share on other sites

Thanks for this nice Module... 

Unfortunately I have a problem, I can't open the admin area any more, only the following error occurs:

Fatal error: Class 'ProcessWire\DashboardPanel' not found in /var/www/vhosts/**MYHOSTING**/site/modules/Dashboard/DashboardPanelNumber.module on line 5

😞  ProcessWire 3.0.148

 

/edit: I could fix the error, I did not upload the module via the ZIP file, but directly via the FTP 😉 

Are there any problems here if you install the module directly via Processwire?

 

And one question:

How to configure the "collection", that a edit modal is used, and not target=_blank?

 

 

Found a little bug 🙂 

1643964198_2020-01-1409_29_31-Window.png.6fa1ffef5abf840b378e29ed9dead9e4.png

Link to comment
Share on other sites

@zoeck That error means one of the panel modules is loaded before the base class. This shouldn't be an issue anymore since I raised the main module's autoload priority. I made a note try out the web installer soon.

The empty dashboard message looks fine here, rendered as a link. Does the dashboard itself render correctly once you configure the panels? The template file doesn't escape any of the output values, so I'm a bit confused as to why this could be. Do you have any modules installed that might overwrite or change the _() function of ProcessWire in any way?

Link to comment
Share on other sites

1 hour ago, d'Hinnisdaël said:

The empty dashboard message looks fine here, rendered as a link. Does the dashboard itself render correctly once you configure the panels? The template file doesn't escape any of the output values, so I'm a bit confused as to why this could be. Do you have any modules installed that might overwrite or change the _() function of ProcessWire in any way?

Hm, thats strange...

The following modules are used:
ListerPro, ProcessWireUpgrade, Pages Sum, LoginPersist, Inputfield Decimal, Front-End Edit Lightbox

I don't think that anything here changes the _() function

 

Is it possible to configure the "collection", that a edit modal is used, and not target=_blank?

 

/edit: ok i found it... when the LanguageSupport module is activated, the problem occurs. even if only one language is active

Link to comment
Share on other sites

22 minutes ago, d'Hinnisdaël said:

The modal editing of collection links is work in progress, but it's not as straight-forward as I hoped it would be ⚙️

What's the problem? 🙂 

Just tested it with a quick and dirty edit of "DashboarPanelCollection.module". I just added the "pw-modal" class to the link, and removed the target...

And the Jquery UI is needed:

wire('modules')->get('JqueryUI')->use('modal');

It is not so easy if the modal should be closed automatically when you save 😞 

 

/BTW: i love your dashboard 👍

Link to comment
Share on other sites

50 minutes ago, zoeck said:

What's the problem? 🙂 

What you said: closing the modal on save is a requirement for me. I'll have to have a look at how the core does it in the template field editor, for example.

I was looking into having the PageList links open in a modal as well, but that can be a later release as well.

  • Like 1
Link to comment
Share on other sites

Haven't tried out the module **yet**, but I love the look of these dashboards.

One panel that could be useful is a content overview panel like in Wordpress.  It would show the amount of pages for each type of page with a link to the built in pages lister that shows all pages filter for that page type.

image.png.7c68dfab0cdd0cdd580de7566bc41b9a.png

Another feature that might be useful would be the ability to create multiple dashboard pages, or tabs within dashboards like what is shown in the Drupal Workbench module?  This could be a dashboard for the user?

image.thumb.png.db81048cb564a504d9e8389f4bd41abc.png

Maybe you could have a site dashboard(displayed when clicking on the main logo or the Processwire logo or visiting the main processwire admin page at /processwire) and a user dashboard(displayed when a user first logs into the Processwire Admin)?

Here is what a "My dashboard"(from drupal.org) for users could look like

138499719_HomeboxDrupal.org2020-01-1409-42-23.jpg.cfb534b2212dbe70060c434d8698f30d.jpg

If we had the ability to create multiple dashboard pages then while creating/editing each dashboard page, you can choose which roles are allowed to view the page. If you do not choose any roles, then only admins can view the dashboard page.  For obvious reasons, anonymous users will not be able to save pages or add custom items.

All of this might be too complex, but I thought would just get these thoughts out of my head in case anybody liked them.

Here is another dashboard I found just to give others some ideas of what could probably be created with this module.

varbase-total-control-admin-dashboard_0.jpg.ee8aae33e674f8224b4e96bbc59bc4b1.jpg

Anyways, thanks for making this module.  Look forward to trying it soon.

  • Like 2
Link to comment
Share on other sites

I just installed the latest release from github and get the same "Your dashboard is empty" error as zoeck

I have not installed multilanguage and it is a fresh install of the latest ProcessWire 1.0.148

To site/template/admin.php I added after the 

require $config->paths->adminTemplates . 'controller.php';
wire()->addHookAfter('Dashboard::getPanels', function ($event) {
    /* Get list of panels */
    $panels = $event->return;

    /* Add panels */
    $panels->add([
        'panel' => 'collection',
        'title' => 'News items',
        'data' => [
            'collection' => 'template=basic-page, limit=10',
            'sortable' => true,
        ],
    ]);
});

but the "Your dashboard is empty" message still appears.

I did not set the dashboard as the entry point. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...