Item10005: Implement AJAX-y workflow transitions

Priority: Enhancement
Current State: Needs Developer
Released In: n/a
Target Release: n/a
Applies To: Extension
Component: WorkflowPlugin
Reported By: AaronFuleki
Waiting For:
Last Change By: CrawfordCurrie
When building dashboard views, it's often very useful for users to act on the underlying topics directly, without time-consuming page loads.

It would be much easier to build user-friendly, powerful workflow dashboards if WORKFLOWTRANSITION could optionally work via AJAX calls, transitioning workflow-controlled topics in place.

Suggestions (in rough order of simplest/least functional to more complex/complete):
  1. Implement an optional redirectto parameter for WORKFLOWTRANSITION (default value: BASETOPIC), to control where users are directed after the transition is complete. Ideally this would preserve url parameters, so dashboards could get hints as to what happened (e.g., if you wanted to add some text above a table of topics that said something about what happened).
    If the transition requires additional edits (e.g., a form was added with mandatory fields), the user should be redirected to the value of redirectto once that's complete. Consider this the no-js fallback.
  2. Implement an optional method parameter for WORKFLOWTRANSITION, to control how the transition is enacted, which would accept the following values:
    • post [default]: preforms a normal form post, navigating the browser away from the current page.
    • ajax: generate a jQuery.ajax() call to perform the transition, so that the browser doesn't navigate away. After processing, some simple, default success/error callbacks should handle updating the transition form (effectively rendering the WORKFLOWTRANISTION macro again), so that the dashboard is updated to reflect the currently available transitions (or lack thereof).
      Again, if edits are required, then the browser should navigate to the the edit script, and come back to the original topic (dashboard) when complete. The documentation should be clear on what happens to custom callbacks in these cases, so wiki app developers don't paint themselves into any corners if they were depending on more ajax calls to fire off.
  3. Implement some method of passing settings to the jQuery.ajax() call. This would be particularly useful for defining custom success/error callbacks when building dynamic interfaces. The default success callback should take care of the WORKFLOWTRANISTION form, but more complex dashboards might have lots of things that should be updated to keep things in sync.

    For example, if a user changes the state of one topic in a table of workflow-controlled topics, a callback could be used to change the styling, animate, or completely remove that result from the table, as appropriate.

    Possible implementation ideas could be:
    • a single ajaxoptions parameter that accepts a Javascript object.
    • individual parameters for common options (e.g., successcallback, errorcallback, etc.).

-- AaronFuleki - 11 Nov 2010

Renamed and edited the feature proposal, as WorkflowPlugin already handles topic targets for the WORKFLOWTRANSITION macro.

-- AaronFuleki - 18 Nov 2010

All very reasonable. However requires a developer.

-- Main.CrawfordCurrie - 24 Nov 2017 - 10:23

ItemTemplate edit

Summary Implement AJAX-y workflow transitions
ReportedBy AaronFuleki
SVN Range
AppliesTo Extension
Component WorkflowPlugin
Priority Enhancement
CurrentState Needs Developer
TargetRelease n/a
ReleasedIn n/a
Topic revision: r4 - 24 Nov 2017, CrawfordCurrie
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy