Difference between revisions of "Development/Treeview"

From AtoM wiki
m (make internal link point internally instead of to qubit wiki)
m (minor heading spacing fix)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{#pagetitle: Treeview }}
 +
[[Main Page]] > [[Development]] > Development/Treeview
  
== Introduction ==
 
  
The '''Treeview''' is a graphical representation of the current resource hierarchy (ascendants and descendants). The Treeview structure is used with archival descriptions and taxonomy term pages. In the archival description page, the Treeview gives a graphical representation of the description hierarchy, revealing the relationship between parent-level description (e.g., fonds or collection) and lower child-level descriptions (e.g, series, file, item). On the archival description page, the Treeview is included within the [https://www.ica-atom.org/doc/Glossary#Context_menu Context menu area], which includes hyperlinks to the related archival repository, creator's authority record, related physical storage and the [https://www.ica-atom.org/doc/Glossary#Cover_flow Cover flow viewer] graphically representing related digital objects. In the term page, the Treeview gives a graphical representation of the taxonomy hierarchy, revealing the relationship between taxonomy type (e.g., subject, places) and broad and narrow terms.
+
The '''treeview''' is a contextual and navigation element located in the context menu for archival descriptions, and term browse pages (such as places and subjects). It shows the current record’s relationships to other records, with links - for example, the hierarchical placement of archival descriptions within a fonds, or the hierarchical placement of a term (such as a subject or place) within a taxonomy. The treeview can also be used for navigation, offering users a graphical representation of the descriptive or taxonomic hierarchy that can be clicked on to move from one record or another.
  
== Background ==
+
On this page you'll find historical development documentation about the treeview in earlier versions of ICA-AtoM, information about development enhancements added to 2.x, and discussions about  future development considerations for enhancing the treeview, including improvements to its usability, performance, and scalability.
  
The <b>Treeview</b> has been a feature since early beta versions of the software. The following is a review of the Treeview feature and its functionality in ICA-AtoM 1.2 and 1.3, as well as in AtoM 2.0. The purpose of providing Users with the background of Treeview is to demonstrate the developments of this feature in response to User's feedback, software performance and scalability.
+
<admonition type="seealso">
 +
For information on the current functionality of the treeview in AtoM, please see the Treeview entry on the Context menu page, in the "Access content" section of the AtoM [https://accesstomemory.org/docs User Manual.]
 +
</admonition>
  
=== 1.2 ICA-AtoM Treeview ===
 
  
*Treeview in Archival description view page
+
__TOC__
** Presented within the context menu for a selected fonds/collection
 
** Nested presentation
 
** Plus and minus signs are used to indicate if a level includes descendents and can be opened further to reveal additional descriptions
 
** All levels open for viewing
 
** Highlight is used to indicate specific archival description being viewed
 
** Users can move archival descriptions within a fonds via drag-and-drop in the treeview
 
  
<div class="clearfix">
 
  
[[Image:1.2Treeview.png|400px|right|thumb|1.2 Treeview in Archival description view page]]
 
  
</div>
+
===[[Development/Treeview/Historical|Historical development documentation]]===
  
*Fonds/collections with descendent and numerous siblings are displayed in a single page and Users need to click on hyperlink number to view siblings. See [https://wiki.accesstomemory.org/mediawiki/index.php/Development/Treeview#.2BXX_.._link "XX...link"] discussion below for additional information.
+
Early development documentation, copied from the now-defunct Qubit-Toolkit wiki, which was originally used to capture development focused resources and documentation for AtoM development. For users interested in the initial design considerations that went into the treeview, changes made in earlier versions, and community feedback received about those changes, this is a good place to start.
  
<div class="clearfix">
+
* [[Development/Treeview/Historical]]
  
[[Image:1.2Treeview-many.png|400px|right|thumb|1.2 Treeview showing numerous descendents]]
 
  
</div>
+
===[[Development/Treeview/2.x development|2.x development]]===
  
*The +XX or "See all" button in the treeview received reports of performance and usability issues, as parent level descriptions with numerous children would result in loading errors or long wait times. This is best summed up in User Feedback Issue 1943, and related discussions (linked in the issue).
+
This page will capture a brief summary of bug fixes and enhancements added to the treeview since the AtoM 2.0.0 release
*In response to the issue, changes are made to how ICA-AtoM handles archival descriptions with numerous siblings and a separate browse screen is added, which the user is redirected to when viewing child records beyond the initial 10 treeview records loaded.
 
  
<div class="clearfix">
+
* [[Development/Treeview/2.x development]]
  
[[Image:1.2Treeview-expand.png|400px|right|thumb|1.2 Treeview browse function for numerous siblings]]
 
  
</div>
+
===[[Development/Treeview/Future development|Future development]]===
</div>
 
  
*Treeview in Terms view page
+
This page is a place to document feature requests, add wishlist items, consider implementation challenges, add requirements, and other considerations and content related to possible future development of the treeview in AtoM. Note that considerations posted here '''do not guarantee inclusion in a future release.''' It's also a place for developers to discuss design and implementation challenges, for analysts to post wireframes, and more.
** Nested presentation
 
  
<div class="clearfix">
+
* [[Development/Treeview/Future development]]
  
[[Image:1.2Terms.png|400px|right|thumb|1.2 Treeview in Terms view page]]
+
<admonition type="seealso">
 +
You can check our [[Releases/Roadmap|Project roadmap]] to see if there is any upcoming treeview development!
 +
</admonition>
  
</div>
 
</div>
 
  
==== User responses to 1.2 Treeview improvements ====
+
-----
* Though the improvement to performance has been welcomed, user response to the redirected browse page when seeking to view all children in the treeview was mixed. Users felt that the difference in sort order and visual style between the Treeview and search results was disorienting, and removed necessary context. Uniquely identifying the parent description in a human-readable manner in the search query also proved to be difficult - the description title is the natural choice, but titles are not unique in many collections. In addition the search results page is not hierarchical so it cannot be used to descend or ascend the description hierarchy.
 
** To encourage design discussion on a dedicated hierarchy browser page, a [[Hierarchy browser|separate wiki page]] was created for discussion on how best to proceed. Currently the page holds one suggestion for a [http://en.wikipedia.org/wiki/Miller_Columns Miller column view]; <strong>community users are encouraged to offer further suggestions and wireframes/mock-ups.</strong>
 
* Problems have also been identified with nesting multiple child levels in a visual display with limited screen real-estate, as the treeview currently exists on the right or left hand side of the screen (depending on the [https://www.ica-atom.org/doc/Themes theme selected]). As users drill down to lower levels, the nesting provided for less and less room to display label information (such as title, identifier, etc.).
 
  
<br />
+
* [[Development|Back to Development]]
  
=== 1.3 ICA-AtoM Treeview ===
 
  
In response to community feedback and known performance issues in 1.2, further changes to the treeview were made in the 1.3 release.
 
 
<strong>Treeview in Archival description view page</strong>
 
*All fonds in the database are shown in the context menu. Users have an option to Show All or view only one Fonds
 
*Vertical presentation is added to resolve nesting display issues reported in 1.2 - all levels of description are given equal screen real-estate in the context menu, and the treeview alters the view in response to the record selected.
 
**Arrows are used to indicate if a level includes descendents and can be opened further to reveal children
 
**Parent and immediate descendent are open at the same time, all other descendents and siblings are closed until selected
 
*Highlight is used to indicate specific archival description being viewed
 
*Users can sort descendents within a level by using drag-and-drop. See the [https://www.qubit-toolkit.org/wiki/Treeview#Natural_sort "Natural Sort"] discussion below for additional information.
 
 
<div class="clearfix">
 
 
[[Image:1.3Treeview.png|400px|right|thumb|1.3 Treeview in Archival description view page]]
 
 
</div>
 
 
*In response to usability feedback about description titles being truncated in the treeview,  a hover pop-up  is added to reveal full description title
 
*In response to user feedback about being redirected to a browse page when clicking "see all" in the treeview, users are now able to see all descendants without leaving the treeview
 
**As in 1.2 a set number of child descriptions is loaded (10)
 
**Ellipses at bottom of treeview enable User to open additional descendents
 
**As the user scrolls, the list will auto-populate with further results
 
 
<div class="clearfix">
 
 
[[Image:1.3Treeview-float.png|400px|right|thumb|1.3 Treeview with float function and ellipses for expanding list of descendents]]
 
 
</div>
 
</div>
 
 
<strong>Treeview in Terms view page</strong>
 
*Vertical presentation
 
<div class="clearfix">
 
 
[[Image:1.3Terms-2.png|400px|right|thumb|1.3 Treeview open in Terms view page]]
 
 
</div>
 
</div>
 
 
== Next Steps ==
 
*A review of <b> Treeview </b> functionality in ICA-AtoM 1.3, identified two key problems to be fixed and released as a 1.3.1 Patch:
 
** Issue 2406: Displaying all fonds in the database in the Treeview is confusing
 
** Issue 2409: Default Treeview should present entire hierarchy with all descendents
 
 
*Additionally, problems with viewing archival descriptions in treeview while working in languages other than English have been reported by users of 1.3:
 
** Issue 4409: Treeview shows duplicate entries in language other than English
 
** Issue 4410: Title of archival description dropped from Treeview in Language OTHER than English
 
* Further community consultation on future improvements and changes to Treeview will be implemented as well (see below):
 
<br />
 
 
== Use Case Reviews and Possibilities for Treeview Development ==
 
 
 
 
In an effort to remain transparent, responsive to user feedback, and to better outline the challenges and opportunities that further Treeview development presents, [http://artefactual.com/ Artefactual Systems] (lead developers of the AtoM application) has prepared the following table, based on comments and suggestions received via the [https://groups.google.com/forum/#!forum/ica-atom-users '''AtoM''' user discussion forum]. In each case, Artefactual's systems analysts have attempted to outline a summary of the feedback received, the requirements for an ideal outcome that would resolve the issues noted in the feedback, and several potential solutions that might be incorporated into the development roadmap. Artefactual developers will then review the possible solutions and post commentary on what is feasible given the coding structure, as well as an estimate of development costs associated with the proposed improvement.
 
 
As the chart is developed, Artefactual intends to invite further user feedback on the proposed solutions, as a means of garnering a community consensus on the development roadmap for Treeview in AtoM's 2.x releases and beyond. Artefactual is exploring the best means to gauge community interest on these possible solutions, and may incorporate the use of simple user polls via [http://www.surveymonkey.com/ Survey Monkey] or similar public services. '''Users are also invited to submit wireframes and mockups for potential solutions''' - either via freely available, web-based wireframe programs such as [https://moqups.com/ Moqups], or through personal wire-frame software design submissions. These will be hosted on the Treeview wiki page, and users will be encouraged to discuss the solutions via the User Discussion Forum.
 
 
<br />
 
 
'''Tell us what you think in the ICA AtoM User Discussion Forum: we have a [https://groups.google.com/forum/?fromgroups=#!topic/ica-atom-users/Ndr1yBk5GpM discussion on Treeview] already started, and would love to hear from users about their preferred solutions from the chart below!'''
 
 
<br />
 
 
 
{| border="1" cellpadding="10" cellspacing="0" width=99%
 
|-
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
|  rowspan="4" | Default display of all collections/fonds in a repository is confusing for users, especially as the default view (user comments: [http://code.google.com/p/qubit-toolkit/issues/detail?id=2406#c2 1], [http://code.google.com/p/qubit-toolkit/issues/detail?id=2406#c4 2], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/84GiuzxuBiwJ 3], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/sNJb5LpQTkgJ 4], [https://groups.google.com/forum/#!msg/ica-atom-users/Ndr1yBk5GpM/Ks5COxXWO50J 5], and [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/gnjNbQfj4z4J 6]).
 
|  rowspan="4" | Users should have the ability to change this default, or default display should not show all collections/fonds
 
| Default display is changed to show the top-level description currently in the show screen at the top of the treeview, with its children visible beneath
 
| -
 
| Expected to be released by Artefactual as a 1.3.1 Patch
 
|-
 
| Same as above, AND the “Show All” option (currently in Treeview when a top-level description is selected and its children opened) is maintained as a visually separate option above the treeview, allowing users to see all fonds/collections in the current repository.
 
| $1,000
 
| (comments here)
 
|-
 
| Default display is changed as above, AND a separate list of all records in the repository is placed elsewhere in the context menu (vertical list, top level only)
 
| $2,000
 
| (comments here)
 
|-
 
|Add a treeview section to the Admin > Settings menu that would allow administrators to set default display behaviours: whether or not a record viewed in the show screen is displayed as collapsed or open in the treeview; whether or not all fonds/collections in a repository can be viewed in treeview, etc.
 
| $1,000
 
| (comments here)
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
|  rowspan="3" | Default display of a record being viewed in the show screen appearing  collapsed in the treeview (i.e., not displaying its children) can be confusing for users; difficult to navigate (user comments: [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/84GiuzxuBiwJ 1], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/sNJb5LpQTkgJ 2], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/7ZInBmsUP8QJ 3], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/KxhrChX8M14J 4], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/gnjNbQfj4z4J 5], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/YpOxrGA5G30J 6]).
 
|  rowspan="3" | Users should have a clear sense of context when viewing a record in the show screen, including children descriptions
 
| Default display is changed to show the top-level description currently in the show screen at the top of the treeview, with its children visible beneath
 
| -
 
| Expected to be released by Artefactual in Release 1.4
 
|-
 
| Change default display, '''AND''' add a dedicated button (either in context menu or at bottom of show screen) “Browse children”, that will take users to a browse results page similar to 1.2’s hierarchy browse, but with added context
 
| $1,000
 
| (comments here)
 
|-
 
| Change default display, AND add a dedicated browse children bar at the bottom of the show screen that will open children browse results in the same screen, accordion-style (max 25 results at a time, option to repeat request)
 
| $7,500
 
| (comments here)
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
|  rowspan="4" | Determining number of children beneath a description is difficult to establish ; user does not know how far down they will have to navigate ([https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/7ZInBmsUP8QJ user comment]).
 
|  rowspan="4" | Treeview should display a count of children somewhere that is clear and accessible
 
| Add a simple children count to the hover menu of any parent description
 
| $1,000
 
| (comments here)
 
|-
 
| Add a child count to the record show screen
 
| $750
 
| (comments here)
 
|-
 
| Add a child count (either in context menu or show screen), '''AND''' add a “Browse Children” button that will take the users to an improved version of the 1.2 hierarchy browse results page
 
| $2,000
 
| (comments here)
 
|-
 
| Add a new section to the context menu above or beneath the treeview that would provide further contextual information to a selected record, including number of children, and  title (link) / identifier of last child
 
| $1,500
 
| "replace context menu with additional information in the treeview node popup"
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
|  rowspan="3" | 1.3 use of triangle icons for treeview hierarchy navigation less intuitive than 1.2’s “Explorer” style  + buttons; users sometimes challenged in navigation, interface less intuitive ([https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/KxhrChX8M14J user comment]).
 
|  rowspan="3" | Administrators should have ability to revert to old icons, or select icons from a predefined list of options
 
| Release an optional icon changing plugin that will maintain the current vertical browse of treeview, but replace current icons with “Explorer” style icons from AtoM 1.2
 
| X
 
| "This would require maintaining a separate theme plugin for a few icon changes, which is not sustainable for Artefactual.  We encourage our community to develop a theme that fits this use case if the desire for it is strong."
 
|-
 
| Include 2-4 icon options in an ''Admin > Settings > Treeview'' page
 
| $1,000
 
| (comments here)
 
|-
 
| Allow administrators to choose between 1.2 treeview and 1.3 treeview in an ''Admin > Settings > Treeview page''
 
| X
 
| "This would massively increase the codebase of the AtoM application, and the 1.2 treeview had a number of issues that would need to be resolved. The Artefactual developers are not currently considering this an option"
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
|  rowspan="4" | Displaying the ''Draft/Published'' status of a record in the Treeview hover popup is confusing for users who understand the word “published” to mean something different; other useful information could be contained in the hover ([https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/7ZInBmsUP8QJ user comment]).
 
|  rowspan="4" | Administrators should have the ability to determine if the ''Draft/Published status'' appears in the treeview hover pop-up; ideally Administrators should be able to determine exactly what appears in the hover pop-up
 
| Remove publication status from hover pop-up entirely
 
| $125
 
| In AtoM 2.0, publication status does not appear in the hover tooltip for unauthenticated users. If a user is authenticated (i.e. logged in with permissions to view draft records, "(Draft)" will appear in next to the title in the hover tooltip for draft records - the word "published" has been removed entirely for clarity.
 
|-
 
| Set publication status in hover to appear only when user is logged in as authenticated user (non-authenticated users see only level and  title)
 
| $375
 
| See above - this has essentially been implemented in AtoM 2.0
 
|-
 
| Set publication status in hover to appear only when authenticated user has editor permissions or above
 
| $375
 
| (comments here)
 
|-
 
| Add admin controls for hover behavior display: publication status, date range, identifier, title included as options
 
| $2,000
 
| (comments here)
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
|  rowspan="3" | Users cannot view all records in a finding aid in one screen, limiting context;  Report mode cuts out information; current dependence on treeview for navigation limits users in terms of W3C content accessibility guidelines (user comments [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/su7b8n9ip4MJ 1], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/gnjNbQfj4z4J 2]).
 
|  rowspan="3" | Users should have a way to view an entire finding aid on one page without losing the broader context, or information provided in the show screens ([https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/su7b8n9ip4MJ user suggestion]). This option should also be available in Report Mode, for printing and simplified viewing
 
| Make the current report option more robust, so no information from the show screen is lost in the report
 
| $10,000
 
| "using xslt to render xml as html plus css and printing format compatibility"
 
|-
 
| Make the Report Mode more robust, '''AND''' Incorporate an ability to view and expand child descriptions dynamically within the same page – accordion style browse-hierarchy results (not full record) at the bottom of the current show screen, each which can be expanded further
 
| $15,000
 
| "performance issues, limited to direct descendants only and dynamic loading in chunks of 25"
 
|-
 
| Make the Report Mode more robust, '''AND''' incorporate Treeview elements into the showscreen itself – either under the ''Scope and Content'' field or at the bottom of the Description show screen
 
| $20,000
 
| "Full treeview included in body of record"
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
|  rowspan="2" | Clicking on the title of a record currently displayed in the showscreen in the treeview simply reloads the current page; users often confuse this with the arrow to open the children, reducing usability ([https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/KxhrChX8M14J user comment]).
 
|  rowspan="2" | Record currently being displayed in the show screen should not be displayed as a link leading to the same show screen page in the treeview
 
| Remove link from the record currently being displayed
 
| $125
 
| (comments here)
 
|-
 
| Remove link as above, '''AND''' make entire label in treeview open children when clicked (rather than just clicking the arrow icon to open)
 
| $500
 
| (comments here)
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
| No way to remove Unit Identifier information from treeview display; often titles are not visible when long Unit ID’s have been used, making navigation in treeview harder for users ([https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/su7b8n9ip4MJ user comment]).
 
| Administrators should have the ability to control field display in treeview labels, turn off and on display elements such as Unit Identifier
 
| Add an Admin display control to turn on/off Unit ID display in treeview labels in a new ''Admin > Settings > Treeview'' menu
 
| $1,000
 
| (comments here)
 
|- style="background-color:#cccccc;"
 
!style="width:25%" align="center"|'''Feedback / Use Case Issue'''
 
!style="width:20%" align="center"|'''Use Case Requirements'''
 
!style="width:25%" align="center"|'''Possible solutions'''
 
!style="width:12%" align="center"|'''Projected Development Costs'''
 
!style="width:18%" align="center"|'''Developer Comments'''
 
|-
 
|  rowspan="8" | The context menu does not currently offer enough screen real estate to take advantage of collapsible levels and nested hierarchical browsing; all contextual navigation within a fonds must be done through treeview (user comments [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/su7b8n9ip4MJ 1], [https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/gnjNbQfj4z4J 2]).
 
|  rowspan="8" | Users require a means of full-screen browsing through descriptions, that maintains hierarchical context and other useful descriptive information (identifier, year range, repository, part of, extent, level of description, etc.)
 
| Implement treeview functionality with nesting into the description show screen at the fonds level, beneath the fonds description ([https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/su7b8n9ip4MJ user suggestion]).
 
| $2,500
 
| "We don't recommend this solution because many users won't see the treeview if it is located after the full description."
 
|-
 
|  Limit treeview to current fonds + its series (+ all sub-series levels);  move file and item lists/links showscreen of the parent description as its own area at the end of the description;  Add breadcrumb trail links at the head of the description to the parent levels so immediate context is always visible ([https://groups.google.com/d/msg/ica-atom-users/Ndr1yBk5GpM/gnjNbQfj4z4J user suggestion]).
 
| $5,000
 
| "Breadcrumb is part of 2.0. We don't encourage implementing this solution because it doesn't solve the problem with not having enough space to show full fond/series/subseries title and it also brings the problem of the case described above, with the added confusion that the hierarchy is now broken into two different parts in the screen."
 
|-
 
|  Add the ability to expand and pin treeview to full page view; employ visual nesting rather than vertical view with increased screen space when pinned open
 
| $7,500
 
| "Analysis needs to be done regarding descriptive data not being visible while viewing full treeview."
 
|-
 
| Add the abilty to expand and pin treeview into a 2-pane full-screen view, where one side shows treeview with nested hierarchies, and other side displays whatever content is selected, without the treeview collapsing or reordering on select
 
| $5,000
 
| (comments)
 
|-
 
| Offer a Toggle to full-screen [https://en.wikipedia.org/wiki/Miller_Columns Miller Column] view, where users can determine the sort of each column, limit by repository, by date, etc. Showscreen for last record selected is  displayed below the Miller column (top 3rd of screen)
 
| $20,000
 
| Example of implementation elsewhere: http://eadview.lds.org/findingaid/CR%20100%20137
 
|-
 
| Re-implement a better variation of 1.2’s separate hierarchy browse screen, with added contextual fields and the ability to expand a displayed record with children in page (ex: collapsible accordion, 25 children descriptions added at a time, ability to repeat request)
 
| $
 
| (comments here)
 
|-
 
| Same as above, '''AND''' keeping the Treeview in the page when the user redirects to a separate hierarchy browse screen
 
| $ ???
 
| "This possibility requires some clarification around how treeview and browse functionality would interact."
 
|-
 
| Incorporate dropdowns that appear on hover, as in the [http://htmldog.com/articles/suckerfish/dropdowns/example/# Suckerfish Dropdowns] example provided, so that all levels of hierarchy can be explored dynamically and in context
 
| $
 
| (comments here)
 
|-
 
|}
 
 
 
== Developer Discussion (1.x) ==
 
 
== +XX .. link ==
 
 
*As part of the [[Scalable UI controls]] upgrades the total number of resources shown in the '''Treeview''' was restricted.  In cases where there are more than ten (10) resources at any level of the hierarchy, only the first 10 resources will be displayed, with an '''+XX... link''' showing the number of hidden resources at that level.  Clicking the link will expand that branch to show ''all'' descriptions at that level.
 
** Original discussions on this requirement can be found in issue 1068, and more specifically, issue 1303.
 
 
* <b>Behaviour:</b>
 
* The '''+XX ..''' button appears only when there are more than 10 children or more than 10 siblings for the current branch on the show screen (see Figure 1);
 
<div class="clearfix">
 
* Any object that has more than 10 children displays the first 10 children followed by a number indicating how many children are hidden (see examples in screenshots - + 23..., +126 ... etc.)
 
* The '''+XX ..''' button shows a spinner as soon as you click it indicating some activity that an AJAX request is being processed
 
* When the Ajax response is returned, then the treeview is dynamically expanded, and all resources in that branch are shown
 
 
<div class="clearfix">
 
 
[[Image:Treeview_2a.png|400px|right|thumb|Figure 1:Series show screen: this series has 33 files. Note that clicking the "+ 23 ..." link would show all 33 files in the series]]
 
 
</div>
 
</div>
 
 
* When viewing an information object that is sorted further down the sibling list than the first 10 siblings, show the first nine objects in the list, then the current object as the 10th item in the sibling list (See Figure 2)
 
* Reloading the page or clicking a link to another resource in the current hierarchy resets the Treeview to the default state
 
 
<div class="clearfix">
 
 
[[Image:Treeview_3.png|400px|right|thumb|Figure 2:Show screen for file 18 out of 33]]
 
 
</div>
 
 
== Natural sort ==
 
 
Sorting the treeview by title or identifier+title (available in the Admin > Settings > [https://www.ica-atom.org/doc/Global_settings Global]) often produces unexpected results because they are not sorted in "natural" order.
 
 
For instance, identifiers:
 
* IMG 1
 
* IMG 2
 
* IMG 10
 
* IMG 11
 
* IMG 100
 
 
Currently sort as:
 
* IMG 1
 
* IMG 10
 
* IMG 100
 
* IMG 11
 
* IMG 2
 
 
See http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.html for a description of natural sort vs. "ASCII" order (though note that MySQL is case-insensitive for sorts).
 
 
<b> Adding Natural sort to SQL </b>
 
 
MySQL [http://bugs.mysql.com/bug.php?id=1588] and PostgreSQL [http://2kan.tumblr.com/post/361326656/postgres-natural-ordering] do not support natural sort natively.
 
 
A web search for "MySQL natural sort" brings up numerous posts on how to do natural sorting in MySQL, but they are mostly too simplistic (i.e. they sort by length of string, then by string, which only works in some cases).
 
 
There is a fairly robust natural sort for MySQL/PostgreSQL using stored procedures http://drupalcode.org/project/natsort.git/tree/refs/heads/5.x-1.x but the README indicates that this procedure is quite slow, and thus it uses a hash table to compensate.  This raises issues of trying to maintain the hash table when data values change. Using stored procedures also has administrative and security implications.
 
 
<b> Pre-sorting </b>
 
 
Another option is to do the sorting on the backend
 
# Administrator would select a fonds, series, etc.
 
# There would be a "sort" button that would allow sorting the fonds, series, etc. children by title or identifier+title
 
# Clicking the "sort" button would re-order the children permanently by updating the [[Nested set]] values or by populating a hash table
 
 
Pros:
 
* Front end sort is fast, because it's using simple nested set sort, or hash table
 
* Can be slow on the backend, if it only needs to be run occassionaly
 
* Can use existing PHP natsort() functions, instead of writing our own in MySQL
 
* Administrator can tweak arrangement afterwards if there are anomalies with Drag-n-drop sorting feature
 
 
Cons:
 
* Sorting I18n values is impossible with nested set sort, but possible (if complicated) with by introducing a "culture" column to a hash table
 
* Hash table maintenance issues?
 
* Sort table + Nested set is somewhat redundant and may conflict
 
 
 
 
<br />
 
  
 
[[Category:Development documentation]]
 
[[Category:Development documentation]]

Latest revision as of 13:58, 20 July 2015

Main Page > Development > Development/Treeview

The treeview is a contextual and navigation element located in the context menu for archival descriptions, and term browse pages (such as places and subjects). It shows the current record’s relationships to other records, with links - for example, the hierarchical placement of archival descriptions within a fonds, or the hierarchical placement of a term (such as a subject or place) within a taxonomy. The treeview can also be used for navigation, offering users a graphical representation of the descriptive or taxonomic hierarchy that can be clicked on to move from one record or another.

On this page you'll find historical development documentation about the treeview in earlier versions of ICA-AtoM, information about development enhancements added to 2.x, and discussions about future development considerations for enhancing the treeview, including improvements to its usability, performance, and scalability.

Seealso

For information on the current functionality of the treeview in AtoM, please see the Treeview entry on the Context menu page, in the "Access content" section of the AtoM User Manual.

Historical development documentation

Early development documentation, copied from the now-defunct Qubit-Toolkit wiki, which was originally used to capture development focused resources and documentation for AtoM development. For users interested in the initial design considerations that went into the treeview, changes made in earlier versions, and community feedback received about those changes, this is a good place to start.

2.x development

This page will capture a brief summary of bug fixes and enhancements added to the treeview since the AtoM 2.0.0 release

Future development

This page is a place to document feature requests, add wishlist items, consider implementation challenges, add requirements, and other considerations and content related to possible future development of the treeview in AtoM. Note that considerations posted here do not guarantee inclusion in a future release. It's also a place for developers to discuss design and implementation challenges, for analysts to post wireframes, and more.

Seealso

You can check our Project roadmap to see if there is any upcoming treeview development!