Ticket #387 (closed Enhancement: fixed)

Opened 8 years ago

Last modified 8 years ago

Webclient: differentiated topic revelation behavior

Reported by: jri Owned by: jri
Priority: Major Milestone: Release 4.1
Component: DeepaMehta Standard Distribution Version: 4.0.12
Keywords: Cc: dgf, Malte, tsc, joern
Complexity: 3 Area: GUI / Usability
Module: deepamehta-webclient

Description

The user should be able to control how topics are revealed on the canvas when clicked in the detail panel. Two different gestures could cause different behavior:

1) Reveal
2) Reveal + Focus

The 2 gestures could be:

1) Clicking the topic's icon -> Reveal
2) Clicking the topic's label -> Reveal + Focus

BTW: this would be the "classic" Kiezatlas navigation then.
Malte pointed out earlier that DM Webclient would benefit from it.

This would easify revelation of a certain topic set e.g. from a search result.
The search result would keep focus (when gesture 1 is applied) and thus not change the order of the result items each time the search result is refocused.

I think this is a good idea and we should do this.

Change History

comment:1 Changed 8 years ago by jri

  • Status changed from new to accepted

comment:2 Changed 8 years ago by Jörg Richter

Webclient: reveal topic w/o selecting it (#387).

A styleguide is thoroughly applied to the webclient. It deals with how topics are revealed on the topicmap when clicked in the page panel:

  • when the *icon* is clicked the topic is revealed
  • when the *label* is clicked the topic is revealed AND selected

This provides for revealing a whole bunch of topics without loosing focus.

Webclient API:

  • dm4c.do_reveal_related_topic() has an optional 2nd parameter: "action". Its meaning is just the same as with dm4c.show_topic(): the action to perform on the revealed topic. 3 possible values:

"none" - do not select the topic (page panel doesn't change) -- the default.
"show" - select the topic and show its info in the page panel.
"edit" - select the topic and show its form in the page panel.

If not specified (that is any falsish value) "none" is assumed.

INCOMPATIBILITY

When your plugin calls dm4c.do_reveal_related_topic() it must be adapted.
Just pass "show" as the 2nd parameter as "none" is the default now.

    dm4c.do_reveal_related_topic(topic_id, "show")

Furthermore if you pass a custom click handler to dm4c.render.topic_list() you should care about fulfilling the styleguide mentioned above. For that purpose a 2nd parameter is passed to your click handler: "spot". That is the spot where the topic has been clicked: "icon" or "label" (a string).

Example:

dm4c.render.topic_list(topics, function(topic, spot) {
    var action = spot == "label" && "show"
    dm4c.show_topic(topic, action)
})

See ticket 387.

comment:3 Changed 8 years ago by Jörg Richter

Webclient: reveal topic w/o selecting it (#387).

A styleguide is thoroughly applied to the webclient. It deals with how topics are revealed on the topicmap when clicked in the page panel:

  • when the *icon* is clicked the topic is revealed
  • when the *label* is clicked the topic is revealed AND selected

This provides for revealing a whole bunch of topics without loosing focus.

Webclient API:

  • dm4c.do_reveal_related_topic() has an optional 2nd parameter: "action". Its meaning is just the same as with dm4c.show_topic(): the action to perform on the revealed topic. 3 possible values:

"none" - do not select the topic (page panel doesn't change) -- the default.
"show" - select the topic and show its info in the page panel.
"edit" - select the topic and show its form in the page panel.

If not specified (that is any falsish value) "none" is assumed.

INCOMPATIBILITY

When your plugin calls dm4c.do_reveal_related_topic() it must be adapted.
Just pass "show" as the 2nd parameter as "none" is the default now.

    dm4c.do_reveal_related_topic(topic_id, "show")

Furthermore if you pass a custom click handler to dm4c.render.topic_list() you should care about fulfilling the styleguide mentioned above. For that purpose a 2nd parameter is passed to your click handler: "spot". That is the spot where the topic has been clicked: "icon" or "label" (a string).

Example:

dm4c.render.topic_list(topics, function(topic, spot) {
    var action = spot == "label" && "show"
    dm4c.show_topic(topic, action)
})

See ticket 387.

comment:4 Changed 8 years ago by Jörg Richter

Webclient: more helpful topic list tooltips (#387)

The difference between "reveal" and "reveal and focus" is explained.

Webclient API: 3 methods have additional optional "title" parameter, the tooltip text:

  • dm4c.render.topic_link(topic, handler, title)
  • dm4c.render.icon_link(topic, handler, title)
  • dm4c.render.type_icon(type_uri, title)

See ticket 387.

comment:5 Changed 8 years ago by Jörg Richter

More informative topic lists (#308, #329, #387).

Topic lists displayed in the page panel, e.g. search results, are more informative: topics which are already visible on the canvas are displayed with an disabled icon. This provides for better orientation when revealing a whole bunch of topics and is particularily useful in conjunction with #387.

See ticket 308.
See ticket 329.
See ticket 387.

comment:6 Changed 8 years ago by Jörg Richter

Webclient: more helpful topic list tooltips (#387)

The difference between "reveal" and "reveal and focus" is explained.

Webclient API: 3 methods have additional optional "title" parameter, the tooltip text:

  • dm4c.render.topic_link(topic, handler, title)
  • dm4c.render.icon_link(topic, handler, title)
  • dm4c.render.type_icon(type_uri, title)

See ticket 387.

comment:7 Changed 8 years ago by Jörg Richter

More informative topic lists (#308, #329, #387).

Topic lists displayed in the page panel, e.g. search results, are more informative: topics which are already visible on the canvas are displayed with an disabled icon. This provides for better orientation when revealing a whole bunch of topics and is particularily useful in conjunction with #387.

See ticket 308.
See ticket 329.
See ticket 387.

comment:8 Changed 8 years ago by jri

  • Status changed from accepted to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.