PRX / feeder.prx.org

Dovetail podcast content management system
https://podcasts.dovetail.prx.org
GNU Affero General Public License v3.0
5 stars 0 forks source link

Import UI refinements #1049

Open farski opened 1 month ago

farski commented 1 month ago

I was playing around with the UI for imports today for the first time, and there were a few things that tripped me up. Noting them here as areas for potential refinement.

  1. When importing midroll timings, and the upload option is selected, there's a tooltip that describes the CSV format. When paste it in is selected, there's no such tooltip but having that format information available would be helpful.
  2. We have a help page with more information about importing midroll timings. Maybe it could be linked in the info box.
  3. Neither the help page nor the info box clearly describe the CSV format for these timings imports. Having no knowledge of how this system works, it seems like it will helpfully/magically identify the two requisite columns, even if the CSV includes many other columns. It doesn't explain how that determination is made, though. Even as someone who has wrestled with a lot of CSV files, I wouldn't feel confident creating a valid CSV for this import based on the information available. The help page indicates that if an episode includes multiple breaks, they should be delimited with commas…in a comma separated file. Without clarification, that will probably lead to user errors. I've seen some files (like the template file on the help page) that wraps the timings in double quotes. I've seen other files (like the sample file we use for acceptance tests of this feature) that wrap the timings in either curly brackets or double quotes and curly brackets. I think there needs to be somewhere that explains more clearly how formatting of this file actually works. The help.prx.org page would be fine, if it's linked from the UI.
  4. There seems to be inconsistencies around calling these midroll timings or episode timings. In my mind, those two terms seem to describe the same thing, so I'm not sure why we use both. If they do refer to different things, I can't figure out what the distinction is.
  5. The table that shows import results includes a Count column. When I first landed on the page, there was a preexisting RSS import, and the count said 2. My assumption was that it meant that the import had been run twice. Later I decided that it actually meant that the import included 2 episodes. After importing some midroll timings, that also has a count. As best I can tell that also indicates the number of episodes that were included in the import. I think there needs to be some label(s) somewhere to explain what these counts are. If they are going to consistently indicate episodes, the column header maybe could just be Episodes. I could also see some value in the count for midroll timing imports to be the total number of timings imported, so then maybe each value gets its own label.
  6. Right now, the only cells in the table that are links to view more details about any given import are the Source column values. From my testing, the values in this column end up always looking like a URL or a file name, but they always take you to the import detail page. Clicking on, for example, a link that reads https://example.com/my-podcast.rss and doesn't take you to that address is very counterintuitive. If a link looks like a URL, I think the strong assumption is that the link takes you to that URL. And if a link looks like a file name, it's reasonable to assume that the link takes you to or downloads that file. Neither is the case with how the table currently works. Relatedly, I would not expect the source value to be the thing to click to get more details about a given import. Obviously it's currently the only link in a given table row, but that led me to believe there was no detail view for these imports at first. I did eventually click on the source URL just to see what happened, but ending up at the import detail page was sort of a surprise.
  7. On the RSS import detail page, at the bottom it says Displaying all 2 episode rss imports. I would expect RSS to be uppercase there. Also, I think labeling these as "episode rss imports" is unclear. This whole page is describing a single import, not multiple imports, right? What's being displayed and counted in this cases is just episodes, I believe.
  8. Similarly on the Midroll Timings import detail page, the footer says episode timings imports. I believe this is showing midroll timings for a single import, so that could be changed to better reflect the table.
  9. On the RSS import detail page, the status for individual episodes says Complete, but there's not an option for Complete in the filter selector. There is an option for Done. Are those the same thing? That either seems inconsistent, or there are some statuses that can explicitly be filtered on.
  10. On both the RSS and Midroll Timings import detail page, there's a search box. The search box appears to only search on episode title. I would expect the search box to filter based on pretty much all the values in the table, like status and GUID. If it is only searching on episode title, I wish that were more clear in the UI.
  11. The RSS import form includes an option labeled Import Existing Episodes. When I first saw this option, I really didn't understand what it meant. My assumption is that an import will import the episodes that exist in the given RSS feed. I don't actually know what it would mean to import a feed and to ignore its contents. The tooltip explains that the option is actually determining if the RSS feed's contents should overwrite existing data. This to me is very confusing. In the label, the context of the word "import" is the RSS feed (that's the only thing that can be imported), and the context of "existing episodes" is Feeder data (that's the only thing that can be overwritten). Import implies a constructive action, but this option is doing something potentially destructive: overwriting. It's also on by default. I think this label needs to be changed to be more clear about what it's doing, because as it is write now, given that it's a default, I think it's likely that a user could see it and go "oh yeah, import that episodes that I'm importing, that's what I want," and not have a reason to look at the tooltip to understand what it's actually doing. I think the label and the tooltip need to really clearly indicate that this is an option that specifically affects collision handling.
  12. Similarly, there's an option labeled Import Podcast Metadata. This has many of the same pitfalls as Import Existing Episodes. In this case, though, I believe this option isn't strictly about collision handling. It does determine how collisions are handled, but as it's phrased currently, it seems like it would also prevent any channel-level values from being imported. For example, if the podcast in Feeder does not currently include a Managing Editor, but the RSS feed does, that's not a collision. It seems like turning this option on would import the Managing Editor, but also overwrite any existing data, and turning it off would not pull in the otherwise-not-conflicting Managing Editor. The tooltip only describes how this option affects collisions, but I suspect it also affects other fields in the RSS as well. In the tooltip I would also avoid the term "RSS feed channel", since I think there are very few users who will understand what the means.
  13. The Complete badge on the import detail pages has a title with a missing translation. The Complete badge on the import index page has no title attribute.