Jump to content

bernhard

Members
  • Posts

    6,638
  • Joined

  • Last visited

  • Days Won

    360

Everything posted by bernhard

  1. Cool, thx! I've just pushed your suggested fix and it will be available soon as v1.3.2 πŸ™‚
  2. Ever wondered how long it takes for RockDevTools to collect the filemtime() for all watched files? I did, so I built a nice little info/debugging tool that will also help with customising /debugging which files are being watched: Result: For 541 files it takes around 1ms on my macbook air m1 😎
  3. This is not a specific request and might be no issue, just sharing what I observed and asking if that's maybe something that can easily be improved? Today I got a dump like this for my ajax request: This is the url hook used: wire()->addHook('/test/', function () { bd('test!'); return true; }); And this is how I fired the request in the devtools: fetch('/test'); note that I'm using "/test" as url (without a trailing slash). If I use the correct url the dump works as expected. Now obviously this is not a bug on tracys side, but I'm wondering if tracy can do anything about that? This is how the request looks in the debug bar: As you can see there are two requests, which makes sense, but if there are two requests shouldn't the second one have the correct dump? Or could it somehow show a warning that a wrong endpoint has been used to make it more obvious not to forget about trailing slash yes/no?
  4. PS: The "Flipper" feature has been possible before quite easily as well, but it got a lot nicer today!! --- code necessary for flipper buttons before today --- // year buttons RockGrid.on("button:year", (button) => { // set headerfilter of day column to // current date in format yyyy // reset all other columns filters table.clearHeaderFilter(); table.setHeaderFilterValue("day", luxon.DateTime.local().toFormat("yyyy")); }); RockGrid.on("button:prevyear", (button) => { // get current header filter of day column const filter = table.getHeaderFilterValue("day"); const year = filter ? luxon.DateTime.fromFormat(filter, "yyyy") : luxon.DateTime.local(); // set header filter to previous year table.clearHeaderFilter(); table.setHeaderFilterValue( "day", year.minus({ years: 1 }).toFormat("yyyy") ); }); RockGrid.on("button:nextyear", (button) => { // get current header filter of day column const filter = table.getHeaderFilterValue("day"); const year = filter ? luxon.DateTime.fromFormat(filter, "yyyy") : luxon.DateTime.local(); // set header filter to next year table.clearHeaderFilter(); table.setHeaderFilterValue("day", year.plus({ years: 1 }).toFormat("yyyy")); }); --- code as of today --- <span rg-flipper="field:date;range:year;">Y</span> <span rg-flipper="field:date;range:month;">M</span> <span rg-flipper="field:date;range:day;">D</span> So cool πŸ˜πŸš€
  5. RockGrid has seen a lot of great improvements over the last few days 😍 The whole codebase has been cleaned up and all javascript files have been split into several files to make maintenance easier. All of that was easily possible thanks to RockDevTools. RockGrid now supports so called "magic attributes" that can pull data from the grid and create UI elements completely automatic. TagsFilter The new tags filter pulls data from one column of your grid and lists all available options as clickable filter tags: All you have to do: <div rg-tagsfilter="field:your_field_name;"></div> --- Flipper I realised that when building grids for my custom bookkeeping software I built the same stuff over and over again, for example buttons to quickly flip over time periods (like the current year, previous year, this month, previous month, etc...). Now that's also built into RockGrid and can be used with a single dom attribute! 😎 All you have to do: <div rg-flipper="field:date_column;range:year;">Y</div> <div rg-flipper="field:date_column;range:month;">M</div> <div rg-flipper="field:date_column;range:day;">D</div> Go and check out RockGrid v1.6.0 πŸš€πŸš€
  6. Here we go!!! https://github.com/processwire/processwire/pull/322 Fingers crossed πŸ€žπŸš€πŸ˜
  7. Hey @gebeer unfortunately these migration properties do not work 100%. They work most of the time but not always. The code field and shift-click feature are supposed to be helpers, but you always have to confirm that it works. Some props can be used as they are, some props need transformers in RM and already have them and some might be missing. If you find any we might add an exception to the getCode() method or maybe somewhere else, I'm not 100% sure atm: https://github.com/baumrock/RockMigrations/blob/883b9e8f3bed37728fa1666514ae22042344681f/RockMigrations.module.php#L1852
  8. @ryan now that NativePHP reached v1 we could build native mobile and desktop apps with ProcessWire if it supported SQLite πŸ€―πŸš€ How cool would that be???
  9. Sounds terrible! Surprisingly they have quite good ratings here https://www.wpbeginner.com/hosting/wpengine/ and here https://www.trustpilot.com/review/wpengine.com
  10. @marie.mdna @kongondo I have just indexed PWCommerce as Deepwiki: https://deepwiki.com/kongondo/ProcessWireCommerce Maybe it helps. Maybe it's crap. I don't know πŸ™‚
  11. Thx @millipedia can you please try the lastest version from the dev branch? πŸ™‚
  12. Thx @millipedia anything I can do about it or that I can improve?
  13. Regarding using nginx I want to mention that if any module you are using relies on .htaccess (which many of my modules do) you'll have to make sure that these rules also apply to your system. For example in my RockInvoice module I protect all generated invoices in their related folder (eg /site/assets/files/123) with an .htaccess file like this: <FilesMatch ".*"> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order deny,allow Deny from all </IfModule> </FilesMatch> Which means, as far as I understand, that on nginx systems the invoices would be publicly available if someone knew the path, right?
  14. This is really neat and I'm not sure why I didn't have that idea earlier! The filesOnDemand feature now supports callbacks!! πŸ˜ŽπŸš€ From the docs: Callback Feature Sometimes you want to prevent the filesOnDemand feature to kick in. For example in the RockInvoice module I have a pdf field that stores invoices, but these invoices are protected from direct download by htaccess. When I develop locally this leads to time consuming page requests and HTTP error messages that the requested file could not be downloaded. Callbacks to the rescue! $config->filesOnDemand = function (Pagefile $file) { if ($file->field->name === RockInvoice::field_pdfs) return false; return 'https://my-live-site.com/'; };
  15. Your question is very vague. Are you talking about a blog with some kind of tagging feature? Is the challenge the backend implementation or the frontend? Or both? What "did not work" with your approach of using ListerPro / radio select. The more context you give us the better we can help. For tagging the TextTags module can be a great choice. It's imho a bit cumbersome to setup but once you got it setup its great for such use cases: https://processwire.com/blog/posts/pw-3.0.177/
  16. In my case when updating an ancient site today the issue was that I had this line in my config.php: include('../files/config.php'); This file did exist on my remote server but not on my local DDEV setup. Changing this to my "new" setup from 2018/2022 fixed the issue πŸ™‚
  17. In my case when updating an ancient site today the issue was that I had this line in my config.php: include('../files/config.php'); This file did exist on my remote server but not on my local DDEV setup. Changing this to my "new" setup from 2018/2022 fixed the issue πŸ™‚
  18. Recurring Events just got a whole lot better thx to @FireWire sponsoring an update!!! ❀️ Please grab v1.9.0 😎
  19. AlpineJS is only used for the frontend of the store to show instant price updates when variations are changed: Payment is, of course, handled via PHP/Backend as everything client side can be manipulated easily by the client and thus would not be secure. I'll send you a PM See here for example: https://www.maletschek.at/nautics/motore/elektromotore/temo-der-tragbare-elektroantrieb/#7055:7059,7060-7071:7070-amount:2 As you can see it will even remember product variations via url hash 😎
  20. @LMD good news πŸ™‚ I think this issue should be fixed with v1.3.0 of RockCommerce. You also need to upgrade RockGrid to v1.3.0! The reason for the issue was that mysql does not support indexes on json columns and I'm using JSON for the "data" column of FieldtypeRockGrid So the issue was actually an issue in the RockGrid module, not RockCommerce itself.
  21. @adrian sorry for causing work πŸ™ˆ Seems like the "find user" filter input does not filter mail addresses even though I set the config of the panel to "{name} ({email})". Maybe you can address this at some point as well? Thx a lot!
  22. Sure, that's also great, thank you πŸ™‚ Already tried it and it helps a lot, thx! πŸ™‚
  23. Hey @adrian I'm developing a project where users are identified by their mail addresses and their usernames are random strings: Would it be possible to set a custom user property to display in the user switcher panel? A simple textfield would be enough for my use case where I can enter "email" and it would display the email instead of the username. Or maybe show the mail address by default in brackets?
  24. @Stefanowitsch asked whether it is possible to add sourcemaps to the compiled files. Now it is! πŸ™‚
  25. Hey @gebeer I have added support for this on the dev branch, please check πŸ™‚ Here are the docs: https://github.com/baumrock/RockDevTools/tree/dev/docs/livereload#disabling-livereload-for-specific-pages
Γ—
Γ—
  • Create New...