This patch solves the usability issue on the blocks page created when a user has made changes and then clicks a link such as "configure" and loses all of their work. It does so by introducing the infrastructure for modal dialogs, and creating an Unsaved dialog that can be applied to links on a page with unsaved changes. The Unsaved dialog offers the user the opportunity to save their work, to proceed and lose their changes, or to cancel. This technique could be applied to many situations in the administration pages, but I am starting with Blocks as a solid use case, and also because I am so inspired by Nate/quicksketch's amazing "drag and drop for blocks" patch.
This patch also uses the new dialogs infrastructure to create a View-page-in-popup dialog. This patch demonstrates this popup on the blocks page's configure links. The popup effect is requested by adding a 'popup' => true option to l(). Again, this technique could be applied many places on various administration pages. It would be particularly powerful in places like the menu page's delete item links.
I have tested this patch against the windows XP versions of: