The CSS Filter list gets DB'd and .Net'd
This weekend I made the final steps needed to convert the static CSS filter chart to a database-generated application. I had Monday off which meant I actually had time to do a relaxed “go-live” before breakfast too. There should be more go-lives over coffee and baps.
I was concerned that I should keep intact the structure originating from dithered.com but also make some much needed modifications. These included:
- Removing broken links;
- Streamlining the code a little;
- Compacting the design a little;
- Update the browser and filter list;
- Convert to C#.Net from its static HTML;
- Standardise the way the browser versions were displayed.
So, all of this was relatively simple ... ish. Amidst the list above I needed to make sure that I could update every aspect of the chart and associated information. This meant a database schema that was somewhat complex considering the simplicity of the chart. You would at first sight think 2 entities? Filters, Browsers and a link table? Nope. Filter, Filter Type, OS, Browser, Browser Version, Support Type, and a FilterVersionSupport link table. Maybe I over-cooked it? I didn’t think so and I certainly gave it enough flexibility to store everything it needed.
Then of course not satisfied with this flexibility, I demanded more. I also didn’t want to have to maintain 51 different filter pages. I wanted one page which displayed everything but that page should be accessible via any number of different non-id-based URLs. I figured that users should be able to link to page names should they wish, which meant that using pages with id querystrings was out. So I included a URL rewriter which has the effect of making it look like your being directed to multiple different pages but in fact it’s just the one file feeding off the file alias.
Streamlining the chart was simple enough. Since the entire thing is generated through .Net repeaters, white space could be made minimal. I have removed many irrelevant classes and ids. I have even elaborated on the dynamically generated title attributes and the file size is still below what it was. Joygasm.
And so much of my list then took care of itself. Broken links aren’t an issue since they’re all generated dynamically. Browser versions are always listed in the same order (by OS, Browser then Version), so it’s easy to find the ones your after when viewing the support lists in the rules’ individual pages.
I spent far too much time d*cking around with CSS and styles to make it look good, but I think I managed. It’s now a tool that I can be proud of, even if the idea was someone elses!
So what next? I now need to rebuild the functionality for hiding specific versions. This was by far the nicest feature of the dithered.com list. And although my list is ok at a resolution 1024 x 768 and perfect at erm, 1152 x 864, its just not complete.
Check back for an update, I’m guessing later this month!