User Manager Plugin - Panel Extention v0.4.5 released

I created a new user management plugin (once more- my job is driving me crazy) that allows a couple of new things - define a custom user folder (that will be different from the regular accounts - to separate admins from users) - it will also allow the use of @ and . in usernames (to allow emails as usernames) if you set a custom directory. Lastly it allows you to use a datatable to see the users (you access that from a widget)

usersManager git

Lastly I’m excited about this because this is the first plugin that works as a full panel extention - it’s not a field, but new routes and pages inside the panel itself. I achieved this using a lot of inheritance.

Cheers guys!

p.s. this is stage one - I am planning to incorporate some interesting integrations to this later, including stripe and emailing capabilities.

edit

I integrated the plugin with another plugin I created now it has an extra page where you can mail your users!
Added a way to make users expire, also added a way to set which fields are show in the datatable.

Version 0.4.5
Added an optional way to store users in DB.

Sounds interesting … but I think your readme on github has a wrong headline :wink:

1 Like

Indeed it did have. Not anymore. Sorry, excitement, too much work… and many other excuses :slight_smile:

2 Likes

If you need to readme in the future, you can use this readme file if you want:

https://github.com/jenstornell/kirby-boiler-readme

It’s ment to contain everything you might possibly want in a readme file. :slight_smile:

1 Like

Thanks jens, now this github has a readme! (thanks to you)

I updated the plugin to integrate a my mailer wrapper plugin (changes will only apply if you have both plugins). Now if you have both then there will be an extra page where you can mail the users (and with the phpmailer driver you could also add attachments!)

1 Like

Dude, big respect to your plugin!!!

A little bit off-topic to your plugin: Maybe you can find a way even to create a boilerplate version where people can create their own subpages in the panel – a function I’m seeking since weeks.

1 Like

Yes, I was thinking to making a quick guide/boiler plate anyway, and since your asking I’ll try to do it soon enough. I am traveling to Santiago De Chile for a week, so I’m not sure when, but should be within a week-ish. In the mean time, if you want, we can PM about it.

3 Likes

By the way: when I try to switch through the pagination at the bottom with the datatable, kirby loads a new page and begins again with the first page. Is there some way to prevent.default the loading of the kirby app js?

Good catch! I didn’t notice this, I’m looking into that now.

1 Like

Great, I was trying to fix it but I failed. Maybe – as for learning purposes – if you fix it, it would be great if you can tell me the problem :slight_smile:

It is now fixed.

I basically added a href attribute to the datatable pagination.

userManagement.on('init page.dt processing.dt order.dt',function(){
   $(".paginate_button").attr("href","#");
});

Problem is that every time you paginate, it redraws them, so I have to hook in to every pagination event… and still I managed, by clicking different pagination really fast, to break my solution, but it’s the best I have atm. and I think it would work 99% of times.

I copied your git 1:1 in my kirby installation and still the kirby loadbar is working and it loads the page again :frowning:

Am I doing something wrong?

mm… hard to say, since i don’t see what you have - try opening the view for the userManager (Panel/Views/UserManager/index.php)

and make sure the next line is in it -

userManagement.on('init page.dt processing.dt order.dt',function(){
   $(".paginate_button").attr("href","#");
});

if yes,

then you can also try adding this just under that line, see if it improves behavior

$(document).ready(function(){
   $(".paginate_button").attr("href","#");
});

And try again, as I said, sometimes, if you press to quickly after load the # doesn’t get added yet.

Ok I got it working now, with a little help from the readme (https://datatables.net/reference/event/).

I know it’s not nice code, but it’s working atm.

$('#subscriptionsTable').on( 'init page.dt processing.dt order.dt draw.dt', function ( e, settings, processing ) {
	$(".paginate_button").attr("href","#");
	$(".paginate_button").bind('click',function(e) {
		e.preventDefault();
	});
}).DataTable({
	responsive: true,
	autoWidth: false
});

Thanks anyway!!! You helped me soooo much again :slight_smile:

1 Like

No no, this is very nice, it’s a way better solution :slight_smile: it works in all cases as far as I can see.

I’m stealing it.

1 Like

I’m so glad helping you out. Maybe a little bit I can give you back for your work :slight_smile:

I have used your plugin in one project and works great! Nice solution to separate kirby users from frontend members.

Thank you!

No problem man.
Keep an eye out, I’m going to be updating it today/tomorrow - to support structure field for the users, also adding an option to store your users in database (you don’t have to if you don’t want, its an option that will be loaded conditionally)

For sure!
We are working in the same direction, I’ve modified your extension to store users in a database, I’m very interested to see how do you code it.

you should show your code as well… I’ve already have the db thing working (that wasn’t much of a problem) - but I’m trying to get the structure element to work with it.
Also I’m basing my code on Illuminate/database as it will allow you to do a lot of other things easily with the users as well.