Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial thoughts on design #3

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

cbeach47
Copy link
Contributor

Using this PR to nail down the concept of the initial slideshow effort, and some future goals, into a README

Copy link
Member

@ChristianMurphy ChristianMurphy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good! Thanks @cbeach47!

Some general questions

  • would this slideshow run inside oEQ, external to oEQ, or both?
  • what (if any) constraints around authorization and sessions apply to the component?

```

## Future goals
- Support audio files
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


## Future goals
- Support audio files
- Support video files
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://plyr.io and https://videojs.com are slick, Kaltura also has some embedding features IIRC


The slideshow allows 'in app' configuration of the search query to dynamically change the slideshow. Alternatively, the slideshow can be configured with a `search-query` property the handles the configuration.

For items with multiple images, the slideshow will iterate through all of them, displaying them one at a time.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A good starting point, something which will likely come up would be having multiple items, paging, and autoplay

uPortal's slideshow components ended up adding these by popular request
https://uportal-contrib.github.io/uPortal-web-components/en/components/dashboard-carousel/demo
https://uportal-contrib.github.io/uPortal-web-components/en/components/content-carousel/demo

https://glidejs.com and https://kenwheeler.github.io/slick offer some good options for creating these types of experiences.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a bit of experience with slick, zero with glidejs. I like glidejs in that it seems we wouldn't be tied into a framework. slick requires jquery. not necessarily bad, but gives me a bit of pause. Ideally, I'd like the main image to fill the screen with captions overlaid, and then have an optional carousel at the bottom to show prev / next. Not sure if either of those support that, I'll have to do some research.

Copy link
Member

@ChristianMurphy ChristianMurphy Jan 19, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like glidejs in that it seems we wouldn't be tied into a framework. slick requires jquery

Agreed, I'd prefer the solution to be jQuery free.

the main image to fill the screen with captions overlaid, and then have an optional carousel at the bottom to show prev / nex
Not sure if either of those support that

It likely can with some work, it's more what layer of abstraction would work best.
We could go higher level than glide or slick, with something like https://www.linxtion.com/demo/react-image-gallery, but it may be challenging to make it work with audio/video.
We could also go lower level, with something like https://www.react-spring.io/docs/hooks/use-springs or https://www.framer.com/api/motion/examples which give fine grained control/apis at the cost of needing to manage the animations, accessibility, and state.

I'll have to do some research.

More ideas, are welcome!
There are a ton of carousel and image gallery components/ui widgets out there.

Copy link
Member

@edalex-ian edalex-ian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good @cbeach47

Couple of things to also ponder:

  1. I'd recommend using the new search2 api - as we put a lot of work into making the interface more concrete and ideally suited to a variety of uses (not so heavily UI coupled);
  2. There is also the new Lightbox component in the oEQ source. Further work is planned on this for 2021.1 to add manually scrolling through multiple assets (i.e. next/prev), so there may be some useful overlap. (It currently supports images, videos and audio.)
  3. In 2021.1 we'll also be looking at the search gallery view, so again there might be some overlap there which you may find useful.

<div style="width:600;">
<oeq-slideshow
oeq-url="https://some-hosted-oeq-site/"
search-query="/api/search?q=keyword%20query&start=0&length=10&order=name&reverse=false&info=attachment&showall=false&status=LIVE">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd suggest rather than having a massive query string param, instead break the values out as needed - and there's no need to go as raw as having to enter /api/search?.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

makes sense 👍

@cbeach47
Copy link
Contributor Author

cbeach47 commented Jan 19, 2021

I'd recommend using the new search2 api - as we put a lot of work into making the interface more concrete and ideally suited to a variety of uses (not so heavily UI coupled);

Sounds good!

There is also the new Lightbox component in the oEQ source. Further work is planned on this for 2021.1 to add manually scrolling through multiple assets (i.e. next/prev), so there may be some useful overlap. (It currently supports images, videos and audio.)

Thanks for flagging this. This may have already been surfaced in a CDM - since one of the design goals is to be decoupled from oEQ, is Lightbox something that we could fold into an oEQ library of sorts in NPM so we can leverage the same components and it'll have a similar L&F?

In 2021.1 we'll also be looking at the search gallery view, so again there might be some overlap there which you may find useful.

My next oEQ mini-project is a gallery-view-like tagging interface to make it simple to tag (via simple metadata tags backed by a taxonomies) multiple items. Interested to see what enhancements are planned.

@edalex-ian
Copy link
Member

Thanks for flagging this. This may have already been surfaced in a CDM - since one of the design goals is to be decoupled from oEQ, is Lightbox something that we could fold into an oEQ library of sorts in NPM so we can leverage the same components and it'll have a similar L&F?

Probably is. Indeed, we could maybe look at an oEQ Component library perhaps based on what's in the tsrc/components directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants