adrian

Tracy Debugger

Recommended Posts

Hi @bernhard - I have upped them to 9999 here locally - I'll commit it to the next version.

Hi @rick - that might be possible, but I am curious about why you want this - for me it's about quickly and temporarily getting every Tracy related hidden so I can see what's behind on the main page content. 

  • Thanks 1

Share this post


Link to post
Share on other sites

When I have a panel maximized, sometimes the 3 or 4 lines of the tracy bar cover some content. It's no biggie, I just expected the panel to remain in view and surprised me when it kept closing after minimizing the toolbar.

 

Share this post


Link to post
Share on other sites
On 8/10/2018 at 11:24 AM, rick said:

When I have a panel maximized, sometimes the 3 or 4 lines of the tracy bar cover some content. It's no biggie, I just expected the panel to remain in view and surprised me when it kept closing after minimizing the toolbar.

Typically the simple solution for this would be to drag the Tracy debug bar out of the way - this will work so long as you don't have the "Fixed Position" option checked in the config settings.

 

Share this post


Link to post
Share on other sites

Hi everyone - @netcarver has mentioned to me that he's not a fan of some of the ambiguity of the icon colors in the debug bar - mostly the blue for the System Info icon and the PW pink color used by the PW Info and Captain Hook panels, and the purple used by the PHP Info panel. I have quickly mocked up a version where these are all grey:

image.thumb.png.523ac587c1e3956e5d7715c3fed14eff.png

He wanted me to poll you guys to get some input on this change and also any other changes you might like to see. 

In general the idea with icon colors is:

grey - no significance
green - everything ok - no attention needed
orange - warning or attention to a new entry/item of interest
red - warning, fail, or something else that you should be aware of

So please post your thoughts - what do you think can be done to make it look cleaner and also more meaningful/useful?

Thanks!

  • Like 2
  • Thanks 2

Share this post


Link to post
Share on other sites
1 hour ago, adrian said:

In general the idea with icon colors is:

grey - no significance
green - everything ok - no attention needed
orange - warning or attention to a new entry/item of interest
red - warning, fail, or something else that you should be aware of

I haven't found the icons ambiguous so far, but the colour scheme you're suggesting sounds like it would be a good enhancement.

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, Robin S said:

I haven't found the icons ambiguous so far, but the colour scheme you're suggesting sounds like it would be a good enhancement.

+1

  • Like 1

Share this post


Link to post
Share on other sites

Just to clarify my request to Adrian, it's not the icons that I'm finding ambiguous - there's nothing wrong with them IMO - it's what the colours are signalling in the current version of Tracy that I find a little confusing.

This is what I'm trying to avoid - particularly the part between 24 and 43 seconds...

Here's the current state of play...

screeny-0049.png.d1efee3239fdf9e9fdbd91afa7b79617.png

To me - with my now aging eyes - the colours of...

  • 2, 5 & 7 seem to be signalling an error condition or something that needs my attention and that this icon could be another colour when the error is sorted out.
  • 3, D & H are warning me of something and these icons could be another colour at other times.
  • 4, 6, 8, 9, A, (all the green ones) have no error - but they could have warnings or errors at other times.
  • All the grey ones are - well, I don't know - are they OK? Or Off? Or just buttons to press when I need them?
  • 1 & F are signalling something else to me that's different to all the above.

Whilst some of the above is correct, I don't think it's clear in the current incarnation.

I also think that the decision to colour some icons green rather than grey when there are no warnings or errors, might, arguably, need revisiting. (For example - I think B (Mail interceptor) and C (Module switcher) would probably be better as Grey in the above if there is no interception or disabling going on.)

Basically I'd like to have Tracy only use non-grey colour signalling to me if there is something that needs my attention or constant reminder. I think that would stop me feeling a little like Richmond from the IT Crowd.

BTW - I'm not dishing Tracy or the work Adrian's put in. I think one of the top modules there are for PW and I'm very pleased that Adrian's produced it and for all the hard work he's put in on it.

Hope that clarifies where I'm coming from,
Steve

 

  • Like 4

Share this post


Link to post
Share on other sites
13 hours ago, adrian said:

grey - no significance
green - everything ok - no attention needed
orange - warning or attention to a new entry/item of interest
red - warning, fail, or something else that you should be aware of

Sounds great, just one question: how will you decide which "warning color" to use, orange vs red? I guess red should not be used for warnings at all. On the same account: "something else that you should be aware of" will be "fail / error / you-MUST-be-aware-of", right?

Share this post


Link to post
Share on other sites

I just wanted to clarify that the grey/green/orange/red color scheme is already in place and has been since the beginning of the module. As per my mockup above I am more than happy to make all the icons that don't need this scheme grey instead of PW pink or PHP purple, or blue (the System Info icon). Hopefully we're all good with that change.

7 hours ago, netcarver said:

I also think that the decision to colour some icons green rather than grey when there are no warnings or errors, might, arguably, need revisiting. (For example - I think B (Mail interceptor) and C (Module switcher) would probably be better as Grey in the above if there is no interception or disabling going on.)

Basically I'd like to have Tracy only use non-grey colour signalling to me if there is something that needs my attention or constant reminder. I think that would stop me feeling a little like Richmond from the IT Crowd.

I think this approach of grey instead of green to indicate no attention needed will be fine - I can't currently see any reason not to make this change. 

 

4 hours ago, szabesz said:

just one question: how will you decide which "warning color" to use, orange vs red? I guess red should not be used for warnings at all.

I think there will always be some difficulties in determining what should be orange and what should be red, although I do think that if we get rid of green altogether it will actually be simpler, for example I always felt a bit weird about debug mode set to on resulting in red. I think a new grey / orange only combo is probably much nicer. Orange being a warning that you need to be aware of the fact that it's on and this is a security concern on a live site.

 

8 hours ago, netcarver said:

BTW - I'm not dishing Tracy or the work Adrian's put in. I think one of the top modules there are for PW and I'm very pleased that Adrian's produced it and for all the hard work he's put in on it.

No problem at all - as with most things, Tracy has evolved and wasn't really planned from the beginning, so more than happy to revisit this stuff now and I really appreciate everyone's input.

  • Like 2

Share this post


Link to post
Share on other sites

Also, if there are any icon geeks out there, I'd love some help to revamp the icons on the debug bar - many of them are very ugly 🙂 

Any takers?

Share this post


Link to post
Share on other sites
19 minutes ago, adrian said:

Any takers?

I can do it on a one-by-one basis. Not too much free time these days but if we are not in a hurry... 🙂 

  • Like 2

Share this post


Link to post
Share on other sites
3 minutes ago, szabesz said:

I can do it on a one-by-one basis. Not too much free time these days but if we are not in a hurry... 🙂 

Sounds good - I don't think you need to go creating them - probably just need to spend some time looking around for better free ones, but whatever you think would be great.

I think regardless of how you go about creating or finding them we should wait till you have them all ready before committing any changes.

  • Like 2

Share this post


Link to post
Share on other sites

Just the default icons to give you guys an idea, but how's this looking?

image.png.46fba262511a7dabcee0bc52d56c8aff.png

Still not sure if Debug Mode icon on should be orange or red?

Perhaps I should check if on local dev or live server and go with grey for the former and red for the latter where it really is important!

  • Like 2

Share this post


Link to post
Share on other sites
1 hour ago, adrian said:

local dev or live server and go with grey for the former and red for the latter

+1

2 hours ago, adrian said:

Sounds good - I don't think you need to go creating them - probably just need to spend some time looking around for better free ones, but whatever you think would be great.

I think regardless of how you go about creating or finding them we should wait till you have them all ready before committing any changes.

I don wanna reinvent the wheel 🙂 but even free ones should be used as starting points only and most importantly they must look like one family, so that is where most efforts should be put into (besides pleasing the eye, of course...).

Edited by szabesz
typo
  • Like 1

Share this post


Link to post
Share on other sites

New version just committed contains all the icon color changes. Mostly it's just consolidating the default color to grey and changing a few instances of when orange (WARN) vs red (ALERT) is used.

Let me know if you find anything I have missed or any inconsistencies.

image.thumb.png.a70e0d1703859d163101324b5a2370d4.png 

  • Like 5

Share this post


Link to post
Share on other sites
4 minutes ago, bernhard said:

thanks - already using it and i like it! 🙂 

Thanks!

Also, just an FYI that your bdb and db 999 has been changed to 9999 in that version.

  • Thanks 1

Share this post


Link to post
Share on other sites
1 minute ago, adrian said:

Also, just an FYI that your bdb and db 999 has been changed to 9999 in that version.

Thank you. Actually I came up with a somewhat different idea. I had to debug something yesterday and needed ['debugInfo' => false] several times. In fact I need it that often that I can even remember it by heart 😄 

My Idea: What if we had a bdv() method instead of bdb, meaning barDumpVerbose() that has a limit of 9999 AND debuginfo set to false?

Share this post


Link to post
Share on other sites
1 minute ago, bernhard said:

Thank you. Actually I came up with a somewhat different idea. I had to debug something yesterday and needed ['debugInfo' => false] several times. In fact I need it that often that I can even remember it by heart 😄 

My Idea: What if we had a bdv() method instead of bdb, meaning barDumpVerbose() that has a limit of 9999 AND debuginfo set to false?

I am getting a little annoyed with the debugInfo output myself actually - there are lots of holes in it's output - there is a bit of a discussion about it here: https://github.com/processwire/processwire-issues/issues/575 but it would be a lot of work for Ryan to go through all of PW and set this up properly. 

Of course there is a config setting to make the default behavior show the full PW object, but there are times when the debugInfo output is better/easier.

I mentioned above somewhere that I was thinking about having an option to dump both versions automatically with any dump/bardump call - best of both worlds. What do you think about this as an alternative?

Not saying I don't like the verbose idea - I just want to make sure we don't end up with more options than we need. It might also be confusing if you already have debugInfo off by default in the config settings. I don't know - anyone else have any thoughts?

  • Like 2

Share this post


Link to post
Share on other sites
2 minutes ago, adrian said:

I mentioned above somewhere that I was thinking about having an option to dump both versions automatically with any dump/bardump call - best of both worlds. What do you think about this as an alternative?

not sure how that should look like exactly but it sounds good to me 🙂

  • Like 2

Share this post


Link to post
Share on other sites
44 minutes ago, adrian said:

New version just committed contains all the icon color changes. Mostly it's just consolidating the default color to grey and changing a few instances of when orange (WARN) vs red (ALERT) is used.

Let me know if you find anything I have missed or any inconsistencies.

image.thumb.png.a70e0d1703859d163101324b5a2370d4.png 

Thank you for working on this, Adrian. Looks a lot clearer now.

  • Like 2

Share this post


Link to post
Share on other sites
5 hours ago, bernhard said:
5 hours ago, adrian said:

I mentioned above somewhere that I was thinking about having an option to dump both versions automatically with any dump/bardump call - best of both worlds. What do you think about this as an alternative?

not sure how that should look like exactly but it sounds good to me 🙂

Would it mean that we have to click twice to see one of them? First a click on the arrow next to the class name, after that another click on either debugInfo or PW object? Or maybe you "extend" debug info and PW object gets injected into it?

Either way, I think it would be nice to see the id of a Page object without clicking on anything, somewhere between the class name and the arrow. Is that possible?

Share this post


Link to post
Share on other sites
7 hours ago, adrian said:

New version just committed contains all the icon color changes. Mostly it's just consolidating the default color to grey and changing a few instances of when orange (WARN) vs red (ALERT) is used.

Let me know if you find anything I have missed or any inconsistencies.

image.thumb.png.a70e0d1703859d163101324b5a2370d4.png 

I think non-grey default icons would look nicer, eg. a darker blue like #354B60 (borrowed from the Uikit admin theme).

tracysvgicons.png.4bd4c5241745b78c8c8a8f3b19bd811c.png

It's just a quick devtools preview but for me the current grey is too pale, and rather suggests that those icons are in an "off" state.

To further complicate things, here is an inverted version where the whole bar is blue and icons/texts are white:

tracysvgicons-invert.png.55458fbc83752f44e9cf2a898f1714ed.png

I'm not sure this would be better but wanted to share. The biggest advantage would be that it would pop out more from the rest of the page. Orange and red icons would require some brightening to be more visible though.

  • Like 4

Share this post


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

I'm not sure this would be better but wanted to share. The biggest advantage would be that it would pop out more from the rest of the page. Orange and red icons would require some brightening to be more visible though.

I like both actually - the first option really does look a lot nicer than the grey which is pretty awful now that I see the difference 🙂

The second one is nice but you're right, it will be problematic for the orange and red icons.

Anyone have any thoughts?

 

1 hour ago, szabesz said:

Would it mean that we have to click twice to see one of them? First a click on the arrow next to the class name, after that another click on either debugInfo or PW object? Or maybe you "extend" debug info and PW object gets injected into it?

Either way, I think it would be nice to see the id of a Page object without clicking on anything, somewhere between the class name and the arrow. Is that possible?

Not sure yet - I don't think I can hook into debugInfo though - I'll see what I can do about this sometime soon.

Share this post


Link to post
Share on other sites
4 minutes ago, adrian said:

grey which is pretty awful now that I see the difference

So did I on my very old designs 🙂

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   1 member

  • Similar Content

    • By bernhard
      WHY?
      This module was built to fill the gap between simple $pages->find() operations and complex SQL queries.
      The problem with $pages->find() is that it loads all pages into memory and that can be a problem when querying multiple thousands of pages. Even $pages->findMany() loads all pages into memory and therefore is a lot slower than regular SQL.
      The problem with SQL on the other hand is, that the queries are quite complex to build. All fields are separate tables, some repeatable fields use multiple rows for their content that belong to only one single page, you always need to check for the page status (which is not necessary on regular find() operations and therefore nobody is used to that).
      In short: It is far too much work to efficiently and easily get an array of data based on PW pages and fields and I need that a lot for my RockGrid module to build all kinds of tabular data.

      Basic Usage

       
      Docs & Download
      https://modules.processwire.com/modules/rock-finder/
      https://gitlab.com/baumrock/RockFinder/tree/master
       
      Changelog
      180817, v1.0.6, support for joining multiple finders 180810, v1.0.5, basic support for options fields 180528, v1.0.4, add custom select statement option 180516, change sql query method, bump version to 1.0.0 180515, multilang bugfix 180513, beta release <180513, preview/discussion took place here: https://processwire.com/talk/topic/18983-rocksqlfinder-highly-efficient-and-flexible-sql-finder-module/
    • By OLSA
      Hello for all,
      ConfigurationForm fieldtype module is one my experiment from 2016.
      Main target to build this module was to store multiple setup and configuration values in just 1 field and avoid to use 1 db table to store just single "number of items on page", or another db table to store "layout type" etc. Thanks to JSON formatted storage this module can help you to reduce number of PW native fields in project, save DB space, and reduce number of queries at front-end.
      Install and setup:
      Download (at the bottom ), unzip and install like any other PW module (site/modules/...). Create some filed using this type of field (ConfigurationForm Fieldtype) Go to field setup Input tab and drag some subfields to container area (demo). Set "Name" and other params for subfields Save and place field to templates ("Action tab") How to use it:
      In my case, I use it to store setup and configurations values, but also for contact details, small content blocks... (eg. "widgets").
      Basic usage example:
      ConfigForm fieldtype "setup" has subfields:
      "limit", type select, option values: 5, 10, 15, 20
      "sort", type select, option values: "-date", "date",  "-sort", "sort"
      // get page children (items) $limit = isset($page->setup->limit) ? $page->setup->limit : 10; $sort = isset($page->setup->sort) ? $page->setup->sort : '-sort'; $items = $page->children("limit=$limit, sort=$sort");  
      Screenshots:


       
      Notes:
      Provide option to search inside subfields Provide multilanguage inputs for text and textarea field types Provide option for different field layout per-template basis Do not place/use field type "Button" or "File input" because it won't works. Please read README file for more details and examples Module use JSON format to store values. Text and textarea field types are multilanguage compatible, but please note that main target for this module was to store setup values and small content blocks and save DB space. Search part inside JSON is still a relatively new in MySQL (>=5.77) and that's on you how and for what to use this module.
      Thanks:
      Initial point for this fieldtype was jQuery plugin FormBuiled and thanks to Kevin Chappel for this plugin.
      In field type "link" I use javascript part from @marcostoll module and thanks to him for that part.
      Download:
      FieldtypeConfigForm.zip
      Edit: 14. August 2018. please delete/uninstall previously downloaded zip
      Regards.
         
    • By bernhard
      @Sergio asked about the pdf creation process in the showcase thread about my 360° feedback/survey tool and so I went ahead and set my little pdf helper module to public.
      Description from PW Weekly:
       
      Modules Directory: https://modules.processwire.com/modules/rock-pdf/
      Download & Docs: https://gitlab.com/baumrock/RockPdf
       
      You can combine it easily with RockReplacer: 
      See also a little showcase of the RockPdf module in this thread:
       
    • By Thomas Diroll
      Hi guys I'm relatively new to PW and just finished developing a page for a client. I was able to include all necessary functionality using the core fieldtypes but now I it seems that I need to extend them with a custom one. What I need is a simple button, that copies the absolute url (frontend not PW-backend) of the page which is currently edited to the clipboard. As this feature is only needed inside a specific template, I tend to use a custom fieldtype which provides this feature. I've been looking inside the core modules code (eg. FieldtypeCheckbox.module) but I don't really get the structure of it and how its rendered to the admin page. I also didn't find a lot of tutorials covering custom fieldtypes.
      Maybe some of you could give me some tips on how to write a basic custom fieldtype that renders a button which copies the value of
      page->httpUrl() to the clipboard using JS. Thanks!
    • By bernhard
      Some of you might have followed the development of this module here: https://processwire.com/talk/topic/15524-previewdiscussion-rockdatatables/ . It is the successor of "RockDataTables" and requires RockFinder to get the data for the grid easily and efficiently. It uses the open source part of agGrid for grid rendering.
       
      WHY?
      ProcessWire is awesome for creating all kinds of custom backend applications, but where it is not so awesome in my opinion is when it comes to listing this data. Of course we have the built in page lister and we have ListerPro, but none of that solutions is capable of properly displaying large amounts of data, for example lists of revenues, aggregations, quick and easy sorts by the user, instant filter and those kind of features. RockGrid to the rescue 😉 
       
      Features/Highlights:
      100k+ rows Instant (client side) filter, search, sort (different sort based on data type, eg "lower/greater than" for numbers, "contains" for strings) extendable via plugins (available plugins at the moment: fullscreen, csv export, reload, batch-processing of data, column sum/statistics, row selection) all the agGrid features (cell renderers, cell styling, pagination, column grouping etc) vanilla javascript, backend and frontend support (though not all plugins are working on the frontend yet and I don't plan to support it as long as I don't need it myself)  
      Limitations:
      While there is an option to retrieve data via AJAX the actual processing of the grid (displaying, filtering, sorting) is done on the client side, meaning that you can get into troubles when handling really large datasets of several thousands of rows. agGrid should be one of the most performant grid options in the world (see the official example page with a 100k row example) and does a lot to prevent problems (such as virtual row rendering), but you should always have this limitation in mind as this is a major difference to the available lister options that do not have this limitation.
      Currently it only supports AdminThemeUikit and I don't plan to support any other admin theme.
       
      Download: https://gitlab.com/baumrock/RockGrid
      Installation: https://gitlab.com/baumrock/RockGrid/wikis/Installation
      Quikckstart: https://gitlab.com/baumrock/RockGrid/wikis/quickstart
      Further instructions: https://gitlab.com/baumrock/RockGrid/wikis/quickstart#further-instructions
       
      Module status: alpha, License: MIT
      Note that every installation and uninstallation sends an anonymous google analytics event to my google analytics account. If you don't want that feel free to remove the appropriate lines of code before installation/uninstallation.
       
      Contribute:
      You can contribute to the development of this and other modules or just say thank you by
      testing, reporting issues and making PRs at gitlab liking this post buying me a drink: paypal.me/baumrock/5 liking my facebook page: facebook.com/baumrock hiring me for pw work: baumrock.com  
      Support: Please note that this module might not be as easy and plug&play as many other modules. It needs a good understanding of agGrid (and JavaScript in general) and it likely needs some looks into the code to get all the options. Please understand that I can not provide free support for every request here in the forum. I try to answer all questions that might also help others or that might improve the module but for individual requests I offer paid support for 60€ per hour.
       
      Changelog
      180730 support subdir installations 180711 bugfix (naming issue) 180630 alpha realease  
      Use Cases / Examples:
      Colored grid cells, Icons, Links etc. The Grid also has a "batcher" feature built in that helps communicating with the server via AJAX and managing resource intensive tasks in batches:

      Filters, PW panel links and instant reload on panel close:

      You can combine the grid with a chart library like I did with the (outdated) RockDataTables module: