Back in the saddle

Last night I got my wp-SwimTeam development environment back up and running.  Since I last worked on the plugin I have gotten a new computer (Dell E4300) and changed how I was using VMware Workstation to manage the various things I am working on.

Because my computer actually belongs to my employer, I keep my hobby projects running under virtual machines (which I also use for a number of things at work which is why I have VMware).  I used to have a separate VM for each project but they tend to consume a lot of disk space so I have moved to using SnapShots (see page 189 of the VMware Workstation Users Guide) and they are really working well.

I had migrated all of my projects over to my new VM with various SnapShot configurations (PHP4, MySQL 4, PHP5, MySQL 5, etc.) with the exception of two – my wp-SwimTeam development and the MacDolphins web site development (which I still need to do).

Once I got it all moved I needed to figure out where I left off.  I still had a few files uncommitted so I simply committed them and started running the plugin through its paces.  I found a few issues right away (e.g. I removed the ability to add a new swimmer – oops) but that was quickly fixed.  Starting with an empty database turned out to a good idea as it exposed a couple mistakes, one of which I am still chasing – the roster isn’t showing everything it should and I am not sure why.

I fixed a few other odds and ends and now that WordPress 2.7 is released, I know for sure how the plugin behaves with the new Dashboard.  It isn’t too bad but I definitely will create a new top level menu with an icon.  This will almost certainly mean that 2.7 will be required to use the plugin.  The 2.7 Dashboard also changes the background on the #wrap DIV from white (#ffffff) to a very light grey (#f9f9f9).  To integrated the ActiveTab widget properly, this color change needs to be accounted for so I am opting to do it in the 2.7 color.

Swim Team season is just around the corner!

Before I know it swim team season will be here again and it has been a while since I worked on the plugin.  Uh-oh.  This fall has been busy, busy, busy with other stuff and I put the plugin development on the back burner for a while.

Since I last worked on the plugin, WordPress 2.7 has been released.  WordPress 2.7 is so much better than any of the prior releases, going forward I expect it will be a requirement to continue to use the plugin.  The Dashboard integration will be much more elegant if I require 2.7.

Look for some new updates in the very near future.

Progress on Meet Events

Saturday morning I had a little time to work on wp-SwimTeam and started working on managing events for a particular swim meet.  As I had noted in another post, the idea is to import a set of standard events and then tweak them.

For the most part I have it working but now it needs some clean up.  The way WordPress loads up pages means you have to monitor the URL if you need to append GET values to control the flow for the user.  I had to work this out when I implemented to tabbed UI and now will have to do something similar for meet events.  Right now the meet id gets appended to the URI and by repeating a set of actions as you modify meet events, it can end up repeated N number of times.  Once I get that worked out, I think I will be ready to import meet results.

More WordPress 2.7 Impacts

I updated one of my development areas to the current bleeding edge version of WordPress 2.7 this morning to see how things look.  Everything with my plugin still seems to work just fine – if you can find it!

I am torn with the new menu structure in the Dashboard.  I like the icons and how much cleaner they are but at the same time, it isn’t obvious where the menus for my plugin should live.  I expect I will have to make a new top level menu and icon.  I am glad the plugin still works but am a little concerned about the way it will integrate with the new WordPress Dashboard UI.

How to handle meet events?

Now that I have the standard events working with drag and drop reordering, I need to propagate events to each meet.  My thinking has been that a meet will start by importing the standard events and then add, delete, edit, and reorder as necessary to support a specific swim meet.

While I have had this model in my head, my first look at actually implementing it raised a bunch of questions – where I do put it?  How does it work?  The event management isn’t as simple as other meet management tasks so it sort of breaks in the way that I implemented the meet data.  I have an idea how to solve it but it will take some experimenting to see if it will work.

Need a new approach for Event Ordering

After getting the Portlet drag and drop working, or so I thought, it looks like I am going to have to abandon that approach.  It turns out the drag and drop works just find – it does what it is supposed to.  However, getting the new arrangement information so it can be sent back to the server as an Ajax post does not.  I am unable to get any sort of serialization to work and even the Portlet example indicates it is obsolete and references jQuery UI.

I have subsequently found a jQuery based Table Drag-and-Drop solution which looks like it will do what I want.  I am now in the process of implementing this in hopes that it will be a little easier to work with.  Stay tuned …

Phase 1 of Drag and Drop Event Ordering

Today I got the first part of Ajax based Drag and Drop Event Ordering working.  A few weeks ago when I was skimming the Internet looking for some Ajax tips I found this interesting jQuery demo called Portlets.  You really need to see the example to get the idea of how it works.  When I found it I knew it was exactly what I was looking for to do event order (and hopefully heat sheets at some point).

I finally got some cycles to work on it yesterday and earlier today I got the first phase of it working.  I can display the events to the user and they can drag and drop them to order them however they see fit.  This part of it works as I hoped it would.  Now that it is working, I need to get Ajax handshaking worked out so the database gets updated with the new sort order.  Hopefully that won’t be to difficult but working with this type of Ajax problem is new ground for me.

Drag and Drop Event Ordering

Drag and Drop Event Ordering

Better Solution for Event Ordering

I haven’t made much progress over the last few weeks as I have been working on a project at work which was taking a lot of my free cycles.  Fortunately the project at work also uses phpHtmlLib so some of the work I did for the work project will roll out to this project as well.

Even though I haven’t put a lot of active cycles into wp-SwimTeam, I have been looking for some ideas on how to deal with event ordering better.  Event ordering was one of the last things I checked in and I went back and used it and it is clunky.

I have concluded that Event Ordering and ultimately heat sheet management needs to be AJAX based so drag and drop can be implemented.  I want to implement something similar to this jQuery Portlet demo.  Since I have never done anything with AJAX (other than a Google Maps implementation), this is new ground for me.