Skip to main content
harshitb6843
July 6, 2022
Question

Feature request: a!sectionLink

  • July 6, 2022
  • 21 replies
  • 0 views

This post is regarding a feature request I want to make. The feature is about being able to click on a hyperlink and able to navigate to that section on the same screen. Like how we have on websites where clicking on something scrolls the page and takes the user to a certain section. Similarly, something like a!sectionLink that takes the section label or some identifier as input and takes the user to that section on the same page. 

This would be helpful when there are dense interfaces or long interfaces having a lot of scrolls. And as portals come into the picture, this can also be very well used on Appian portals as they are expected to have long scrolls. 

21 replies

richardm900458
July 6, 2022

hmmm.... i get where are you coming from. If im honest, my first thougt was. "but why are your interfaces so big"?
Usually i am fan of a higher number of interfaces but with a limited amount of interaction/information per interface than just 1,2 very big ones.
They become complicated to maintain especially the original designer is not available any more.

Am i right, that this issue comes in general from the wish to navigate on large interfaces?

harshitb6843
July 6, 2022

Yes. That is right. Sometimes, we tend to have like activity trackers/history timelines that do not look good with paging. Similarly, sometimes, the interfaces are intentionally kept long so the user can experience the feel of browsing through some feed. 

richardm900458
July 6, 2022

hm...got it.... I Think it should be possible to jump to section or boxlayout.
Perhaps with an additional parameter like "validationgroup" but than called "sectionName" per layout you try to jump to.


mikes0011
Brainy
July 6, 2022

Or just a!interfaceLink() where the main parameter it accepts is a UID (string).  Simultaneously, all on-form components (including sections, boxes, and input fields etc) are upgraded with a new optional parameter where an arbitrary UID can be set for that item (where the only requirement is that each one is unique).  Then on click of a!interfaceLink, the form would auto-focus (along with scrolling to) that component.

(note: i'm not in love with the name interfaceLink, but the main point is that it can and should be something much more general than "section", IMHO)

richardm900458
July 6, 2022

but is the UID sufficient to jump to a refreshing section?

mikes0011
Brainy
July 6, 2022

I didn't mention anything about refreshing (and neither did Harshit in the original post) - can you explain what this would entail and/or what constraint you're imagining?

AFAIK what I describe above (just like what Harshit lays out) could be made to work just like on-page links do in classic HTML.

harshitb6843
July 6, 2022

[mention:6b9f80ff18f9420082d13ef2d5121d56:e9ed411860ed4f2ba0265705b8793d05] any thoughts about it? 

peter.lewis
Employee
July 6, 2022

It's an interesting thought - do you think this is something that is more common because of the release of Portals? I say this because most of the time I see this kind of paradigm, it's on a read-only page, and historically forms are much more common that read-only pages within Appian. Or is there an example you're thinking of with a long form where you'd rather have this navigation paradigm than a wizard?

csteward
July 6, 2022

One example I could see using this is for Record Summary interfaces.  Often there, I'll have one longer read-only page of all data entered in the request, approval history, related employee information, etc.  Sort of the single place for all with access to review anything and everything that occurred with the request, which can get long.  As we don't want to 'wizard' them through a review, only scroll, to be able to create sort of a table of contents with bookmarks/anchor links at the top would be nifty. 

On a related note, this reminds me of a feature request (that I'm not sure has been submitted?), where we could dynamically collapse/open section layouts on an interface.  It is not possible now, but could solve a similar use case in a different way, with dynamic links that open/close sections on the form below.  Would also be nice!  Then we could avoid the scroll, scroll, collapse, scroll, scroll, collapse, scroll, finally arrive at your section.

a!localVariables(
  local!sectionCollapsed: false,

  {
    a!linkField(
      links: a!dynamicLink(
        label: concat(if(local!sectionCollapsed,"Show","Hide")," the section below"),
        value: not(local!sectionCollapsed),
        saveInto: local!sectionCollapsed
      )
    ),
    a!sectionLayout(
      label: "This is a Section",
      isCollapsible: true,
      isInitiallyCollapsed: local!sectionCollapsed /* Does not work dynamically :( */
    )
  }
)