From the ground up
It was a good, bad, and ugly day in DSpace-land today.
The good: After the redirection fiasco (which I have adopted the 80% solution to, videlicet and to wit: auto-redirection from the homepage to the DSpace install), I was leery of touching the dratted server again. But I can’t redesign it until I can get a redesign to stick, so I copied all the JSPs off the main install, stuck ’em on the staging server, and rebuilt DSpace on the staging server.
Then I took a deep breath, and surfed over to see what was broken. Mirabile visu, nothing was; it just worked. Since nobody else was in the office yet, I executed a small victory dance. (Very small. If I dance big, I’ll damage a machine somewhere.)
Shortly thereafter I strolled over to the copyright office, which I’m terribly, terribly glad we have. I left with considerable reassurance about handling potential challenges, as well as several good workshop ideas and a decent new working relationship, which is always a good thing.
The bad: DSpace templates aren’t coded very well. I know, I know, I’m not a Java guru and I have no status to say such a thing. But they still aren’t. Take the navigation sidebar. There are two templates for it, one for the admin pages and one for the ordinary-user pages. This is fine. What isn’t fine is that the two templates use completely different code to get the same effect (those little arrows that you see on an out-of-the-box DSpace install)—the admin template refactors the code into a mini-function and the user-page template doesn’t. That’s just sloppy bad, and it hurts Java neophytes like me most, upending our expectations.
The DSpace developers could take a page out of MovableType or WordPress as far as templating goes. The actual templates shouldn’t have nearly the amount of raw Java code in them that they do, I suspect. Should I become enough of a Java guru to hack on this thing, I think that’s where my effort will go.
The ugly: The markup. Oh my goodness me. Tables inside tables inside more tables, and let’s bung another table in just for the heck of it. Enough to give a text artisan a major case of vapors.
I’ve managed to strip down the markup and juggle some page elements in the five most-used templates. Before I go any further I need to write down class and ID names for what I’ve done, though, or I’ll forget them when it’s CSS time. Dozens of templates to go, unfortunately… I went into my informal Gantt chart at the end of the day and gave myself another week to finish the staging-server redesign. I’m now thinking that seriously wasn’t enough.