Git Product home page Git Product logo

Comments (10)

DavidMStraub avatar DavidMStraub commented on May 30, 2024

Yes, you're right; this applies to all the "secondary objects" in Gramps that can have notes and attributes: media references, event references, child references, repository references ... in Gramps' data model, there are even crazier things like notes for attributes. While it's great to have that flexibility, I find it very hard to come with an intuitive UI to display (let alone edit) that information. Any ideas?

from gramps-web.

brucejackson avatar brucejackson commented on May 30, 2024

from gramps-web.

cdhorn avatar cdhorn commented on May 30, 2024

I tried to take a pass at doing that with the view I was playing around and experimenting with. You can find it at https://github.com/cdhorn/profileview

It is misnamed, should probably call it linked mode since the idea was to be able to navigate across all the objects to be able to view and edit anything.

Secondary objects that contain other secondary objects like the event reference above kind of throw a monkey wrench in the navigation. I kind of set it aside when I hit that to take a break for a while to spend some time on other interests. Hope to get back to it in another month or so.

from gramps-web.

brucejackson avatar brucejackson commented on May 30, 2024

This is my first thought about an approach (without yet looking at the ProfileView gramplet). I'm going to use the same data as above for simplicity.

Starting at the Event Tab for a person (https://host/person/I0394). I have Increased the size of the icons so they can be activate links. I changed how the table is linked. For each row the columns Date, Type, Description, and Place all link to the Event. The icons (photos, notes, etc) link directly to a Tab within the Events page (e.g. the photo icon leads directly to the Gallery tab in the event). I have added an icon, details (outline_details_black_24dp). This icon links to the EventRef information for this person.

EventListing

I have mocked up the concept of the page to show the EventRef (https://host/events/E2129/person/I0394). The title of the page is written to try and illustrate that the tabs below reflect the information specific to the participant at this event.

I've created this example by editing the text in the my browser's developer tools, this is why the blank tabs are present - please ignore them.
EventRef-Participant

from gramps-web.

brucejackson avatar brucejackson commented on May 30, 2024

Here are some real mock-ups for presenting the Event Reference. The first image could be the main view. The second image attempts a drill down to see the details of an attributes. I would see the Person name and Event Title linked to the appropriate pages. I'm trying to give the user context about the attributes by prominently showing the Person and Event. I am hoping this layout is extendable beyond this example to other Secondary Objects.

Main View
EventRef-Mail

Drill down to Attribute Details
EventRef-Attribute-DrillDown

from gramps-web.

DavidMStraub avatar DavidMStraub commented on May 30, 2024

Thanks @brucejackson, great mockups & ideas!

What I would really like to avoid is having to have views with dedicated URLs for all the secondary objects. This would complicate the routing and I don't really see the necessity of deep-linking an event reference. Moreover, I am pretty sure for many people (e.g. myself), almost all of those pages would be completely empty. Actually, the reason I'm note using notes/citations on secondary objects is because I find them hard to find even in Gramps desktop!

In general, I also think we have to be careful to avoid mapping the Gramps data structure directly onto the structure of the user interface/navigation.

For instance, whether the note or citation above is attached to the person, the census, or the event reference is in my opinion a subtle difference. And it's great that Gramps is so powerful that we can make these subtle distinctions; however, in a web app, I think we should assume that the average user (~ my aunt) is not familiar with this data structure and these subtleties and will expect this information to be shown along with the primary object (in that case person) they are looking at.

I really like the idea of indicating the existence of event reference details in the event list view. I can think of the following possibilities, which would not require a new page/view/URL:

  1. a "more info" icon that opens a pop-up (modal) with the notes/citations/attributes of the reference (like the lower half of your event ref mockup); this modal could be full-screen on mobile
  2. Showing the event ref details directly on the person event tab, below the table - basically like footnotes.
  3. Showing them as collapsible (by default collapsed) table rows in the event table, expandable with an icon like in your first picture.
  4. Showing the notes in the person "notes" tab and the citations in the person "citations" tab. This could then have subsections: person notes, event reference notes, etc. (it would require showing a short summary of the event above the event ref note/citations)

from gramps-web.

brucejackson avatar brucejackson commented on May 30, 2024

I agree that a lot of these pages would be blank. In my case, most of this information was populated by a Gramplet.

The cases where I know (and remember) that I add notes in secondary objects relates to Citations. For example, if I attach a death certificate of a child to the birth of their parent to demonstrate something about the parent (e.g. place of birth). In this case, I add a note to remind myself why this citation is used.

Thinking through ideas you've outlined. My preferences would be, in order: 3, 1, 2. Putting 3 before 1 is just because I'm not a big fan of pop-ups (purely a personal preference). When I try and visual Idea #4, it feels like information would be more fragmented.

from gramps-web.

DavidMStraub avatar DavidMStraub commented on May 30, 2024

Ok, I looked at the data model and the API to understand how many of those object types we have to implement if we want to cover all of them. I found the following:

Person/Family → EventRef → notes, attributes
Person → Name → citations, notes
Person → PersonRef → citations, notes
Family → ChildRef → citations, notes
All → MediaRef → citations, notes, attributes
Source → RepoRef → notes
... → Attribute → citations, notes

It's amazing that attributes themselves can have citations and notes. What if someone adds a note to an attribute of and event ref?

What I also realized is that in the API call for a person with ?extend=all, that is currently used to fetch (almost) all the info required for the person view, we don't have the details of the secondary objects (citations, notes, attributes), only their handles. In that case, having a collapsed detail view in the table is not that nice because expanding the element is not just a CSS operation but requires fetching data from the backend. So having a modal might make more sense.

from gramps-web.

cdhorn avatar cdhorn commented on May 30, 2024

Attribute is messy because SrcAttribute for Sources and Citations does not have notes and citations while a regular Attribute does. So the meaning of Attribute has basically been overloaded, and I think use of SrcAttribute would have been better for EventRef and MediaRef objects.

The Gramps view I have been experimenting with takes the 1 page per object approach and this misuse of Attributes greatly complicates history tracking for navigation. Kind of made me step back for a while hoping when I get back to it I'll have a fresh set of eyes and different perspective so the discussion here and both of your thoughts as to how to handle this in Gramps.js are of interest. I think you are right that using modals makes more sense.

Did you notice another issue in the Gramps model is with EventRef as it is missing citations? Every peice of information should have a supporting citation and it is the EventRef and not the Event itself that tracks the fact the Person participated in the Event and the role they played.

from gramps-web.

DavidMStraub avatar DavidMStraub commented on May 30, 2024

Update: EventRef will have citations starting from 5.2.

The UI for many of these objects has changed since the issue was raised, current status:

  • EventRef: uses list view
  • Name: new custom view
  • PersonRef: will use list view from next release
  • ChildRef: still uses table view
  • MediaRef: uses gallery view as always
  • RepoRef: still uses table view
  • Attribute: uses list view

from gramps-web.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.