Artificial Intelligence and Repetitive Tasks in a CMS

[Dec 18-08: I’ve updated my list below with solutions and issue URLs, where possible.]

Yesterday, Steve Dondley (owner/founder @ Prometheus Labor) and myself were working on some very repetitive work for a client site; discussing how we can’t wait for the intelligent CMS to come along and do all this repetitive work for us.

Office Clippy AssistantThis got me thinking.  A lot of the repetitive tasks we were doing could have been served much more nicely with a bit of software intelligence.  Microsoft office has some examples of intelligent and some non-intelligent ways of making tasks easier.  One bad example: Office Clippy.  One good example: Excel’s dragable rows.

image

Drupal had the ability to do a much better job at anticipating the users desires and making it easier to perform repetitive tasks.  Here are just a few ways:

  1. In the content area of administer, when the user filters the nodes and then chooses to select all those nodes on the page, they should be given the option to select all nodes that match the search.
    1. Populate form fields in the Firefox Web Developer extension would ease this, but not fix entirely.
  2. Content type bulk clone.  It should be possible to select a content type, clone it, and then enter a comma separate list of machine names, and display names for the clones to allow users to make multiple clones of a content type at once.
  3. Views bulk clone.  Same as above but for views.
    1. Re #4: I had to copy a view yesterday 24 times, each view only had a different name, and one taxonomy filter changed.  (do to how the view was used, arguments were not an option).
  4. Views should allow you to enable, order, and set block options directly from the view rather than needing to enter the admin/build/block pages.
    1. Yes, I mean that the options that are on Admin->Build->Blocks->{block name} should be available as a table directly under {view}->edit. 
  5. When you create a node, in the success message at the top of the new node, there should be a “create another” link.
    1. As per a suggestion in one of the comments; I’m working on a module to implement this, although I’d love to see it in core Drupal.
  6. It should be possible to disable drag-and-drop sorting on an admin page, perhaps view a toggle, and the system should remember not to use JQuery sorting on that page for that user.
    1. Disabling JS browser-wide would not be a solution here, since only some pages are anonying with the JavaScript turned on.  An excellent example is the drag and drop in admin -> build -> menus.  If you have a menu with a large number of children, and then move it, it becomes nearly impossible to do with the drag and drop, necessatating manual intervention with weights.
  7. When a user enables modules, the success message should include links to each of those modules primary admin pages.
    1. Re #2: If a module had no pages, then the usual message should disable.  Also, menu access checks should ensure a user has permissions to view the links that could be displayed.  A link to the modules help page would also be most helpful.
    2. Issue 198919: Enabling modules results in display of links for those module.
  8. Modules should be sortable by enable status.
    1. Re #2: One possible solution would be to filter out all enabled modules before displaying the group to the user and still maintain grouping.  Since if you’ve just downloaded a new module, you don’t want to scroll though all the enabled ones to get to it.  And vice/versa for disabling a module.  In a perfect world, JavaScript would do this with a toggle.
  9. status_update’s messages should be dismissible.  In the case of security updates, for x number of minutes/hours; much like how Windows Update reminds you to restart.
    1. Possible solution for 5.x: jGrowl
  10. Watchdog pages should automatically refresh.
    1. A possible solution to this is to instead of logging errors to the database, log to syslogd instead; then use another tool to display the content of syslogd (suggestions for that?).
  11. Administrator theme should be a checkbox under admin/build/themes.
    1. Issue 135976: Usability: Make picking administration theme more user-friendly
  12. admin/build/block should give the option to organize by the module producing the block.
  13. Dates entered into the publishing options of a node should automatically be transformed into the standard date on blur.
  14. There should be a key combination to hit submit, even when Preview is the default node add action.
    1. Possible solution on 5.x: Hotkey
  15. In fact, there should be a key combination to hit save/submit from every page no matter what field you’re in.
    1. Possible solution on 5.x: Hotkey
  16. Like views, blocks should have an [edit] option that appears on hover.
    1. Zen theme implements this at the theme level.
    2. block_edit module offers something similar, and including inline editing of custom blocks.
  17. Like views, any node should be able to become a block.
    1. Re #2: I think I will make a module to demonstrate this as well.  Because, the idea of a view for every node is a bit messy at best.

This is my wish-list for ways to make Drupal work faster and smarter.  Have more ideas?  Post them here and over at the Usability Group.

 

Reblog this post [with Zemanta]

18 thoughts on “Artificial Intelligence and Repetitive Tasks in a CMS

  1. re: #16. If you’re using the Zen theme as your base theme, this already happens. I agree though, would be nice to have that feature (and most of these others) make it into core.

  2. 1: I don’t get it. If the user filters then nodes and then selects all, they *are* selecting all of the nodes that match their search… Otherwise they wouldn’t be able to select them.

    2 & 3: Not quite following what you’re saying there.

    4: I disagree, especially since some views will display in small blocks which would be difficult to fit the full Views UI into. This is best done on a separate page.

    5: A module could easily be put together in a few minutes which does this. Use hook_form_alter() to add your own submit function to node forms, and use drupal_set_message() to add your own link back to the new node form after submission.

    6: Hmm. Disable JavaScript?

    7: The problem is that some modules do not have any administration pages. There may also be some permissions concerns here.

    8: This is a decent idea, though I’m not sure how it would work without removing the grouping from the module list.

    17: Again, with a few minutes of custom module development, this would be quite easy to do. Or, simply use Views to create a view which only shows a single node (filter by ID equals X).

  3. Can you tell me a use case for bulk view cloning? I’m not sure it’s really feasible, since you still have to change a view you’ve cloned, and cloning lots at once leaves you in kind of an odd position where you have many copies that don’t have a plan (kind of like the cylons).

  4. I think 2, 3, 5, 7, 8, 14, 15, 17 are all good ideas. Some of them will require a good rethink of structuring/sorting the some admin page layouts.

  5. We’ve tried the ‘edit links show on hover’ for blocks and views and all our developers/designers found it so annoying that we just removed the functionality altogether.

    It doesn’t help when you do heavy themeing of the blocks and views either, as the edit links could end up anywhere. It gets even worse when the hover links cover up certain menu links, thus interrupting your workflow.

  6. @Garrett

    1. Select all only selects all matching nodes on that page of results. If you have more nodes matching that can fit on a single page you’re not selecting all the matching nodes.

    2&3. If you have the need to create multiple similar content types, where 10 fields are the same but 2 aren’t, this could be useful.

    4. I don’t think we’re talking about views admin in a block, just when you create a views block you can set page visibility from the views admin and not the default block admin.

    6. I don’t get the advantage of either.

  7. Although I don’t agree with many of the “shoulds” on this list, sharing solutions to these kinds of usability issues and oversights is important. Thanks for posting this!

    I hope that you update this list with solutions that are currently available (like the jGrowl and Hotkey modules). That’s what I’m doing with a list of usability problems I wrote about recently:

    Worst case scenarios for new Drupal administrators
    http://exaltations.net/node/2187

    Meanwhile, for the first item in your list, I recommend the “Populate Form Fields” command in the Web Developer extension for Firefox:

    Web Developer
    http://chrispederick.com/work/web-developer/

  8. RE: #8 Modules should be sortable by enable status

    I recently start using module filter () and I now find it indispensable. It not only allows you to sort by enabled, it will also sort by required or inactive, and it has an autocomplete search to boot. No more 8 screens of modules to wade through.

  9. what if.. Save/Submit/Preview were an always in view floating tab/button/set of links (module) like “feedback”? No user training/memory required, optional add-on.

  10. I may have missed it so apologies if I am repeating something already identified (or possible by another module) but what would make this simple module that has accelerated input to my site so dramatically would be the option to bring forward the values in some fields to the next record. This would be useful where a series of records is to be entered where the same data is to be entered into a field in each record. I am no expert here but that seems simple enough? Perhaps token fields and default values could do something like this but not as effectively as an “auto-dup” function form a field. It would have to be set at field level – would that be tricky?

Leave a Reply to jon Cancel reply