tpr

AdminOnSteroids

Recommended Posts

Hey @tpr - I just noticed that AOS removes the 3px border radius on Page List Action buttons. Is there a particular reason for this? Is it just a stylistic choice on your part, or a remnant of some old code? No big deal, just thought I'd ask :)

  • Like 1

Share this post


Link to post
Share on other sites

Hi @tpr,

AOS has a stylesheet rule...

html.noFilenameTruncate i.fa-file-image-o, html.noFilenameTruncate .InputfieldFileInfo i {
    left: -21px !important;
    top: 3px;
    float: left;
}

...but this is too broad and affects the FontAwesome icon 'file-image-o' outside of the image inputfield when the noFilenameTruncate option is active (e.g. in the icon picker or in the module listing if that icon is used for a module).

  • Like 1

Share this post


Link to post
Share on other sites

@tpr Thank you for this great module.

Note to self: When your site is doing something fabulous and you can't remember for the life of you how you did it, check AOS first :lol:

  • Like 4

Share this post


Link to post
Share on other sites

Thanks! Use the code you find there with caution, it doesn't always follow the best practices :)

Plus unfortunately your quote is also valid when changing a word in it:

When your site is doing something weird and you can't remember for the life of you how you did it, check AOS first  :) 

  • Like 1

Share this post


Link to post
Share on other sites

When working with the NavItems submodule, which is incredibly useful, i have encountered some caveats, and not sure if these can be fixed/addressed...

1) The js that adds those items seems to only work on the first menu item, and if that has child items. Usually this is Pages, and has children;  but in my case, i have a dashboard module that takes the top position under the admin, and is the landing page for the admin. In this case, the nav items don't show, since there are no child items present under the dashboard process.

2) For custom nav items, i often will need to be able to place the menu items in specific places, like under a 'Content' or 'Company' menu, and i know that won't be possible currently in AOS,  so as a workaround, I used the technique of adding a menu item, using ProcessPageEdit as the selected process, and then doing the trick of of hooking in ready.php to specify the id of the edit page (courtesy @Jonathan Lahijani), but the issue with this is that the $input->get doesn't seem to be available to other modules (maybe the order in which they are loaded), and therefore any modules used in the admin that rely on $input->get->id don't work, since the URL that you are on is the url (name) of the process page.

if($page->template=="admin" && $page->name == "homepage-config") {
  $input->get->id = $pages->get("/settings/homepage-editor/")->id;
}

So anyway i have a somewhat hacky process module (ProcessMenuLink) that $session redirects to the edit page for the item; ultimately would be cool if there were some way to have the menu item itself link directly to the edit page w/o redirect, but for now this is the workaround i'm using...

thanks for listening!

Share this post


Link to post
Share on other sites

@tpr, I've been having a look at getting the field edit links working inside repeaters.

The solution is pretty simple. At line 2342...

if ($field = $inputfield->hasField) {
//...

And because of the suffix added to the name of inputfields inside a repeater I think it would be good to make this change at line 2354...

$editFieldTooltip = '<em class="aos_EditField">' . $field->name . '<i class="fa fa-pencil"></i></em>';

...to use $field->name instead of $inputfield->name.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks,  I'll check all the issues and fixes when I finally get out of this less productive holiday season :)

  • Like 2

Share this post


Link to post
Share on other sites
On 12/27/2017 at 3:07 AM, Robin S said:

The solution is pretty simple. At line 2342...


if ($field = $inputfield->hasField) {
//...

Thanks for this - this has solved the issue with FieldDescriptionsExtended that i posted about...

Share this post


Link to post
Share on other sites

Hi @tpr,

Could you please give some comment about where things stand with AOS with regard to AdminThemeUikit? Have you done much testing with the Uikit theme and would you say that AOS is officially supports the Uikit theme at the moment?

So far I have been holding off switching to the Uikit theme - for a few reasons, one of which is that AOS is a pretty important part of my custom profile and I want to be sure the module works well with the theme before I switch my clients over to it. I haven't tested AOS much with the Uikit theme but at a quick glance I noticed a few things that made me think that the theme might not be officially supported by AOS yet.

AOS toggle/config link doesn't align with the left edge of the content container:2018-01-10_114345.png.9f63eb45f34bcb101bcacb6ac30b3f6a.png

Module config icon position is a bit off and icon is fuzzy (wrong size?):
2018-01-10_114421.png.a85d942c7962c66d68586d101658d813.png

Also, the Escape key does not clear the notices.

No pressure if AOS is not ready for AdminThemeUikit yet - just wanted to check.

  • Like 1

Share this post


Link to post
Share on other sites

No, I haven't dealt with every detail yet, mostly only with the issues you reported here and on github. I do not use pw nowadays too much and even if I do I use the Reno theme so I cannot spot all the issues. But I think the majority of them are easy to fix, apart from the fact that now 3 admin themes are there to check which slows down things. I plan to iron out the known issues in the following weeks. 

  • Like 1

Share this post


Link to post
Share on other sites
54 minutes ago, tpr said:

I do not use pw nowadays too much

Noooooooooo! :o

You have been seduced by some other sexy CMF??? (The hussy!) Tell me it isn't true! :-)

  • Like 2
  • Haha 1

Share this post


Link to post
Share on other sites

No, things are not that obvious.  We are using other tools that allow separating admin and frontend to different servers,  so even if fronted gets hacked they can't get hold of sensitive data but only static html files. This is something pw can't do afaik,  perhaps with procache but I haven't tried that workaround so far. 

  • Like 1

Share this post


Link to post
Share on other sites
20 hours ago, tpr said:

apart from the fact that now 3 admin themes are there to check which slows down things. I plan to iron out the known issues in the following weeks. 

I recommend dropping classic Default admin theme support. After all, AdminThemeUikit is becoming the new default in the near future.

Share this post


Link to post
Share on other sites
On 10/01/2018 at 6:20 AM, tpr said:

No, things are not that obvious.  We are using other tools that allow separating admin and frontend to different servers,  so even if fronted gets hacked they can't get hold of sensitive data but only static html files. This is something pw can't do afaik,  perhaps with procache but I haven't tried that workaround so far. 

Can you elaborate on "other tools that allow separating admin and frontend to different servers". Do you mean tools like Gatsby and the likes ?

Share this post


Link to post
Share on other sites

I meant CMSes that can output the whole site to a different server. One example is WordPress + Simply Static plugin.

  • Like 1

Share this post


Link to post
Share on other sites

Yesterday I've fixed a few things mentioned earlier. Some remarks:

On 1/9/2018 at 11:49 PM, Robin S said:

Also, the Escape key does not clear the notices.

For me it works fine. Does it happen on other sites too? Others?

On 12/19/2017 at 5:19 PM, Macrura said:

In this case, the nav items don't show, since there are no child items present under the dashboard process.

Yep, navItems are hacky because there is no hook to add menu items properly.

To add items only to specific pages would require to rewrite the whole thing, but my biggest concern is how to make the admin for it simple.

On 12/15/2017 at 1:25 PM, adrian said:

AOS removes the 3px border radius on Page List Action buttons. Is there a particular reason for this?

I don't remember why it's there :) 

On 1/10/2018 at 8:25 PM, szabesz said:

I recommend dropping classic Default admin theme support. After all, AdminThemeUikit is becoming the new default in the near future.

Sure, when the time comes.

 

  • Like 1

Share this post


Link to post
Share on other sites
On 10/01/2018 at 6:20 PM, tpr said:

We are using other tools that allow separating admin and frontend to different servers,  so even if fronted gets hacked they can't get hold of sensitive data but only static html files. This is something pw can't do afaik,  perhaps with procache but I haven't tried that workaround so far.

I opened a feature request topic about this in the ProCache sub-forum (not sure if you have access to that). Will be interesting to see if Ryan will consider adding such a feature.

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, tpr said:

 

On 10/01/2018 at 11:49 AM, Robin S said:

Also, the Escape key does not clear the notices.

For me it works fine.

I think the issue is here. Because the index may be 0 this line should be:

if (HotkeysSettings.indexOf('removeNoticeHotkey') !== -1) {

 

  • Like 1

Share this post


Link to post
Share on other sites

I will check the procache forum, thanks! (I need a different account there). 

Seems like I missed the - 1 for the indexOf, thanks for the help. 

Share this post


Link to post
Share on other sites

In the upcoming 1.7.4 version there will be a new tweak for the Logs page. The helpers field on top can be expanded by default, and the select box of Actions replaced with radios.

I don't really get why the actions are in a select, radios are easier to use. I've requested this change in the core on GitHub (and got a few likes there too) but so far there's no response.

loghelpers.gif

  • Like 3

Share this post


Link to post
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


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By BitPoet
      Since I was stuck to my flat today I took up a wish and rolled a Process module / CKEditor plugin combo that adds @-autocomplete like the mentions here in the forum to CKEditor fields. It's configurable, but only in module settings for now, the positioning of the select list is quite off and there's still some visual work to be done, so it is in early alpha state.
      Nonetheless, if you want to take a look, here it is:
      https://github.com/BitPoet/ProcessMention

       
      After installation, you may want to look into the "Additional selector" entry in the module's settings. You will most likely want to limit results to certain templates there.
       
      Edit: Updated to version 0.0.30 with fixed positioning of the dropdown.
      Edit2: Settings are configurable in field context now. If pwmentions is enabled, the according settings are shown on the "Input" tab.
       
    • By thuijzer
      https://github.com/thuijzer/processwire-FieldtypeBusinessHours
      Fieldtype Business Hours
      ProcessWire Fieldtype for entering business hours (opening hours)
       
      Input format
      Leave a day empty when closed on that day
      Times are in 24 hour format.
      9:00-12:00 9:00-12:00, 13:00-17:30 16:00-2:00  
      Usage in templates
      Days are from 1 to 7 where 1 is Monday and 7 is Sunday (ISO-8601)
      echo $page->field_name->isNowOpen() ? 'Now open' : 'Now closed'; if($page->field_name[1] == null) { echo 'Closed on Monday'; } if($page->field_name[2]->inRange('11:00')) { echo 'Tuesday at 11:00 open'; } echo $page->field_name[1]; echo $page->field_name[1]->getEntries()->getFrom()->format('H:i');  
    • By hellomoto
      I was working on this:
      class PWCRM extends WireData implements Module { public static function getModuleInfo() { return array( 'title' => 'Client Relationship Management', 'version' => .001, 'singular' => true, 'autoload' => true ); } public function init() {} public function ready() { $this->pages->addHookBefore('render', $this, 'accessHook'); $this->pages->addHookAfter('render', $this, 'hookAfterPageRender'); } public function accessHook(HookEvent $event) { $page = $this->wire('page'); if (!strpos($page->template->tags, 'crm')) return; if (!$this->wire('user')->hasRole('crm')) $this->wire('session')->redirect($this->wire('config')->urls->login);//throw new Wire404Exception(); } public function hookAfterPageRender(HookEvent $event) { $page = $event->object; echo $page->template->tags; if (!strpos($page->template->tags, 'crm')) return; echo $this->wire('config')->urls->templates; include_once($this->wire('config')->urls->templates.'functions.inc'); $pagehtml = $event->return; $pagehtml = str_replace( '</head>', '<link id="css_crm" rel="stylesheet" href="'.$this->wire('config')->urls->templates.'css/crm.css"> </head>', $pagehtml ); $event->return = $pagehtml; //$event->replace = true; } } I have tried placing the hooks into the init() function, and more... Neither method is effective. The echoes now output, but no redirection (although I have the access settings for the top-level template for this set to render a 404 for underprivileged users, which it does, overriding this, but nonetheless this should work aside from that.
      Then I wrote this up quick:
      <?php namespace ProcessWire; class MaintenanceMode extends WireData implements Module { public static function getModuleInfo() { return array( 'title' => 'Maintenance Mode', 'version' => 1, 'summary' => 'Disables the website frontend for non-superusers.', 'singular' => true, 'autoload' => true, 'permanent' => false ); } public function init() { $this->addHookBefore('Page::render', $this, 'displayDecide'); } public function displayDecide($event) { $page = $event->object; if ($page->template == 'admin' || $this->wire('user')->hasRole('superuser')) return; // replace the method hooked $event->replace = true; $event->return = "Patience please while we undergo some brief maintenance work."; } } which likewise avails nothing. What the hell is my problem here? 
    • By adrian
           Tracy Debugger for ProcessWire
      The ultimate “swiss army knife” debugging and development tool for the ProcessWire CMF/CMS
       

       
      Integrates and extends Nette's Tracy debugging tool and adds 30+ custom tools designed for effective ProcessWire debugging and lightning fast development
      The most comprehensive set of instructions and examples is available at: https://adrianbj.github.io/TracyDebugger
      Modules Directory: http://modules.processwire.com/modules/tracy-debugger/
      Github: https://github.com/adrianbj/TracyDebugger
      A big thanks to @tpr for introducing me to Tracy and for the idea for this module and for significant feedback, testing, and feature suggestions.