A lot of moving parts moved to add one new feature, there's now a "Browse Saint by Name". This required adding a short_name column to the saints table (easy), and populating it with the minimal name of the saint, so removing all the titles (Bishop, Virgin, Martyr, etc) and all the localizing info (of Benevento, eg). That required some regex parsing of the saints and then a bunch of manual fixup, since the regex can't tell that the 'Virgin' of "of the Blessed Virgin Mary" is important to keep, even though in "Agnes, Virgin" it is not. Once that was completed, the new field was added to the Saints class and a new get_by_name function added to Saints, allowing one to retrieve a hash with the key as the short_name, rather than date. Along with that the get_by_name can restrict by letter of the alphabet, if you only want saints from a-c or somesuch.
All of that was rolled up into the new browse, which uses a series of vertical tabs to segment the alphabet into manigable lists of saints. The final display mode is mostly similar to "saints by date", with the same issues around gridlines to work out, but it's all live and working.
Tasks remaining are a better popup when you click a saint, probably including all name variants from the MS, and better display UI/UX
The "Saints by Date" page has been completely reformatted, using Foundation's Accordion as the main layout scheme and block-grid for each month. It's WAY less template code and actually works on a small screen, rather then just pretending. Currently there are still issues with the boxes around each day in the medium and large views, but that's on the short list to be fixed.
A personal code-victory, the entire layout was changed, and not a single line of code had to be touched. I had sucessfully kept all the layout in the template and only had to touch that!
a LOT of code changes in the last few days, (20 commits to git on the 5th alone):
- Formatting: seperate templates for calendar and manuscript metadata. In multi-view they are now different rows, valigned to the top, so they look better. In single view they are wrapped in a div with left pading so they're not too far to the edge
- Formatting: Fonts! Custom fonts throughout the website from Google Fonts. We are using Cardo, a slightly old-fashioned serif that's just a little different, for most things and Quintessential, a nearly perfect rendition of Sanvito's cursive hand, for titles (h1-h3).
- Formatting: Top-bar instead of bottom tabs! The old-school row-of-links at the bottom has been replaced with a fully-modern top bar, complete with mode highliting depending on where you are in the app (Saints vs Manuscript, for eg). No logo as of yet, but soon...
- Features: "Show all" in the main manuscript listing is up at the top, right below the restriction filters, and only appears when you're not currently "showing all"
- Features: Saint's on the compare MS view. If you've selected a saint (or 2!) in the compare window, they now appear as tags at the top, both saints to include and saints to exclude.
- Features: Multi-Saint search! This is the big one for the week, you can now keep searching by picking another saint to include or exclude and continue to get MS that match ALL of the criteria. The backend code needs some cleanup, but it seem to work. There was a lot of background work needed in the Saint and Calendar classes, updated to the tests were done to cover the new work
All of this means that the image on the left is 1 week ago, and on the right is today:
A minor change in the content, work has started to get "secondary_saint_color" values for all the entries put in before that field existed.
The work of converting the site to use foundation as layout library is complete. JQueryUI has been removed, everything is now formatted with Foundation and all popups are controlled by it. We are still using manualy HTML tables for a lot of formatting, but at least we're consistant in appearence. One caveat, due to the removal of support for AJAX Modal pop-ups in Foundation 6, we're currently running in 5.5.
Note that jQuery is still part of the application for loading remote content, it's only the UI layer that has been replaced