Tagged: Template versioning Toggle Comment Threads | Keyboard Shortcuts

  • David Julia 11:15 am on August 19, 2011 Permalink | Reply
    Tags: Template versioning,   

    Theme Versioning Week 16 

    Wow, where to even start- I’ve gotten so much done this week.
    I finished implementing the new UI which looks a lot more like the core UI (see screenshot below):

    Theme Versioning New UI

    Theme Versioning Plugin's New UI

    The following are the main points of what I have been doing this week:

    • Testing, testing, testing
    • I’ve fixed the bugs that cropped up (thanks to ocean90 for testing it so rigorously)
    • Added tons of inline code comments including phpdoc style comments
    • Generated php docs
    • Wrote a user doc -thanks to Mert, his user docs served as a great template 🙂
    • Added internationalization and translator comments
    • Got rid of useless old code that somehow stuck around from iterations long ago
    • Cleaned up code, got rid of some commented-out debugging code

    All in all, a very productive week. I couldn’t be happier 🙂

    • scribu 9:00 pm on August 19, 2011 Permalink | Reply

      Regarding the UI:

      • The revisions table should span the whole width of the box.
      • The textarea with the file contents should span the whole width of the screen.
      • The “Revert all files” button should be styled differently (gray?)
      • The “Return to Theme Editor” button should be a link
      • David Julia 9:56 pm on August 19, 2011 Permalink | Reply

        I’ll play with the UI and see what I can come up with… thanks for your feedback!
        Expect to see a new screenshot or two soon.

    • cassi 6:23 pm on October 18, 2011 Permalink | Reply

      Hello, I had been watching your progress on this over the summer because I think it would be useful to me. Is this project complete? I would love to try it out when it’s done.
      Thanks 🙂

      • David Julia 6:49 pm on October 18, 2011 Permalink | Reply

        Yes, Cassi, the project is complete – thanks for your interest!
        It’s available from the official plugins repo – you can either download it from inside of WordPress.
        Just search for “Theme Versioning” on the add new plugin page.

        Or get it directly at the url here:

        I’m in the process of updating the readme for the plugin, but right now there’s lots of documentation on how to
        use the plugin in the docs subfolder of the project.

        Although I think/hope that it’s very easy to use, if you run into any issues,
        there’s a screencast explaining the plugin here

        If you have any questions, comments, or suggestions I’d LOVE to hear your feedback!

    • cassi 6:51 pm on October 18, 2011 Permalink | Reply


  • David Julia 2:25 am on August 12, 2011 Permalink | Reply
    Tags: Template versioning,   

    Template Versioning Week 15 

    Hi guys, I’ve made a lot of progress this week.

    I’ve implemented the lazy loading functionality that I had been working on (which was more of a pain than you might expect due to the extra code needed in the database VCS).

    I have also cleaned up the code a lot and the code written going forward should conform more strictly to WordPress standards thanks to a crash course in WordPress coding standards by my awesome mentor ocean90 (Dominik Schilling).

    I’d really like for people to test it out- there’s one little annoyance with the lazy loading.
    Because I’m using a select element and loading things into it dynamically via jQuery, the scrollbar resets to the top of the select box upon every addition of revisions. I’m considering redoing this part of the UI in order to have the scroll bar position persist through the addition of revision information. I might even make it look a bit more like the document revisions’ styling for a more consistent look and feel.

    I’d love to hear your guys’ thoughts.

    Update: Definitely going forward with the revised UI!

  • David Julia 7:46 pm on August 4, 2011 Permalink | Reply
    Tags: Template versioning,   

    Theme Versioning weekly update #13 

    This week, in addition to cleaning up the code and documenting, I have been adding lazy loading functionality to the revision viewer. I decided to add this feature as a result of some feedback I have received.

    Once this functionality is added I will post the plugin to wordpress.org

  • David Julia 10:00 pm on July 28, 2011 Permalink | Reply
    Tags: Template versioning,   

    Template Versioning – Week 13 

    This week I have been working to address issues that Dominik brought up in his most recent code review. I have fixed most of the issues including escaping content pulled from a GET variable as well as other more cosmetic issues.

    In addition I am cleaning up my code and adding more documentation.
    I hope to clean up the plugin just a bit more and make it available on wordpress.org in the next few days.

  • David Julia 12:22 am on July 22, 2011 Permalink | Reply
    Tags: Template versioning,   

    Theme Versioning – Update 12 

    This week I have been mostly focusing on documentation.

    Going forward the focus will be on cleaning up code and further documentation and revising
    based on feedback.
    Tomorrow is my IRC chat, so I am hoping to get some valuable feedback.

  • David Julia 12:49 am on July 15, 2011 Permalink | Reply
    Tags: , Template versioning,   

    Theme Versioning- Week 11 

    Progress Made

    UI Overhaul
    This week I overhauled the UI to use a sliding pane that displaces the normal theme-editor interface.

    In addition, I implemented the advanced mode UI and the various ajax functions to support it. Users can now select from either the basic mode which automatically commits upon saving a theme file, or the advanced mode which allows users to control when they commit.

    I also created a separate settings page for the theme versioning plugin in which the user can select from the installed VCS Adapters as well as choose to use either the basic or advanced mode UI.

    Mentor Recommendations
    I fixed various usability, performance, and best-practice issues brought to my attention by one of my mentors, Dominik (ocean90)
    the fixes included:

    • Enqueuing the UI javascript in the footer instead of the header for performance reasons
    • Displaying more information including author name and timestamp in the revision viewer
    • Renaming the javascript file to something more descriptive
    • Got rid of a few bits of code that were no longer used in this version
    • Use empty() instead of sizeof()==0

    Clean Up and Refactoring
    I spent a little time cleaning up some code and refactoring. There is still some more work to be done on this front. My philosophy is make it work, even if it’s ugly, then iterate to beautiful, elegant code.

    Midterm Release

    I tagged version 0.3, the midterm release which includes the new UI (with both basic and advanced modes), the default VCS and the VCS Adapter Interface.

    It is available for download here

    Below are a few screenshots from the midterm release:

    Theme Editor Basic Mode UI

    Revision Viewer: Full Screen Shot

    Advanced Mode Theme Editor UI

    Settings Page

    • Azizur Rahman 11:21 am on July 15, 2011 Permalink | Reply

      Just wondering why you decided not to use the built-in (post/page) Revision Widget for your “Revision Viewer”? Surely that would be more inline with rest of the Core UI.

      • David Julia 10:04 pm on August 15, 2011 Permalink | Reply

        I’m actually finishing up a refresh of the UI right now-
        it’s going to look a lot more like the document revisions UI
        and uses a lot of the same CSS.

        Thank you for your feedback!

  • David Julia 7:31 pm on July 7, 2011 Permalink | Reply
    Tags: Template versioning,   

    Theme Versioning- Week 10 

    Hi guys!

    Progress Made

    This week things have really been coming together. I had my irc chat during which I received some valuable feedback which I have taken into account including ocean90’s suggestion to display only the basenames of the theme files as opposed to the full path. Additionally, I tagged version 0.1 of the plugin and have concentrated my efforts on refining the UI and implementing the ajax magic to make that possible.

    Version 0.1

    Earlier in the week, I tagged version 0.1, a stable version with the following features:

    • Automatically commits all files upon save
    • Revert theme files on a per-file basis, or revert all files to their state in a given revision
    • Ability to make use of external VCS adapter plugins that register themselves in an activation hook with the theme_versioning_register_adapter($vcs_adapter) function.
    • Settings section in which user can choose which of the registered VCS’s they would like to use
    • Popup window revision viewer with admittedly ugly styling 🙂

    Here is a screenshot of what version 0.1 looks like:

    version 0.1 screenshot

    Screenshot of version 0.1 UI

    Current Status

    I updated the UI, so it is now a jQuery UI modal dialog.
    In order to do this I had to implement more ajax functions to get the file contents and the
    revision information.

    Here is what it looks like right now:

    Current UI

    The jQuery UI modal dialog based UI

    *Note: I know that there is no “close” button in the dialog. That is because I haven’t entirely settled on using a dialog just yet, but I needed something better than a popup, and Daryl Koopersmith recommended this as a possible intermediate iteration.

    Going Forward

    Once I get the UI squared away, I intend to optimize the lazy loading of revisions via ajax and caching. I might even add some nice little progress bars or spinners.

    I expect to change the UI to something sleeker and more native-feeling. Instead of the “Open Revision Viewer” button, I’m considering adding a link under the Editor submenu of the Appearance section of the admin dashboard.
    Instead of the modal dialog for the viewer, I am considering changing it to a sliding panel that comes out from the side of the admin dashboard and covers the theme editor area. I’d really love any suggestions on the UI, or any input at all for that matter!

    When I implement the new UI, I also plan on adding the “advanced mode” interface which consists of additional buttons that allow users to choose when they commit as opposed to automatically committing upon save. This will be a setting they can choose to enable on the general settings page.

  • David Julia 9:39 pm on June 30, 2011 Permalink | Reply
    Tags: Template versioning,   

    Theme Versioning Week 9 

    Hi all!

    Progress Thus Far

    This past week I made a few little improvements to the UI, refined the VCSAdapter Interface, and have gained some major ground with integrating external VCSAdapter plugins. Currently the adapters are being stored and accessed using the options and settings APIs, and I have the default adapter as well as the dummy adapters registering themselves through the provided theme_versioning_register_adapter method.

    Current Tasks

    Currently I am working out how to use the Reflection API to include the proper external adapter files and to make the use of the external adapters run smoothly in general. I plan on having this all sorted out by the end of the week, at which point I will have a deliverable that works with external adapters!

    Plan for next week

    I had a good skype-chat with my mentors last night during which we have tentatively decided that I should make some revisions to the UI to make it feel a little more native. Apparently popup windows went out of style with AOL and dial-up :). After I make a few of those changes (probably early next week) I’d like to have the UI guys review it.

  • David Julia 11:18 pm on June 23, 2011 Permalink | Reply
    Tags: Template versioning,   

    Template Versioning – Week 8 

    This week I refined the UI a bit and then began work on supporting external VCS Adapter plugins. As it is now external plugins will register themselves via a call to theme_versioning_register_vcs_adapter($instance_of_the_external_adapter) I coded a dummy VCSAdapter plugin that implements the VCSAdapter interface but returns hard-coded values for testing purposes. I am also playing around with the settings API in order to allow the user to select which external adapter they wish to use.

    In addition I resolved some issues with the code in the repo- I had some conflicts which prevented code from being committed (as a result I have resolved never to use the eclipse plugin svn, and instead to do all commits via command line). I also resolved a few incompatibilities with php 5.2.4 – I was running 5.3 and Dominik pointed out that he was getting an error on his WordPress installation when he tried to activate my plugin. Going forward I will test the plugin using php 5.2.4 to ensure compatibility with all versions of php that WordPress supports.

  • David Julia 11:53 pm on June 16, 2011 Permalink | Reply
    Tags: Template versioning,   

    Theme Versioning Update 7 

    This week I’ve been working on the UI.

    so far I’m integrating it by using jQuery to add in a button below the editor pane. This button pulls up the basic revision viewer as a popup, so far it looks much like the revision viewer mockup that was included in my original project description. I’m still in the process of coding up the revision viewer UI.

    Additionally I fixed a few naming inconsistencies that were giving me some errors (this cropped up after I refactored some code and renamed methods/classes to make things nice readabe for my first code review).

    I also closed the trac tickets for the default version control system since that is working perfectly.

    The revision viewer is going to look like this:

    revision viewer

    revision viewer mockup

Compose new post
Next post/Next comment
Previous post/Previous comment
Show/Hide comments
Go to top
Go to login
Show/Hide help
shift + esc