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

Feature/add presentations #108

Merged
merged 12 commits into from
Apr 9, 2020
Merged

Conversation

AMontagu
Copy link
Contributor

@AMontagu AMontagu commented Mar 29, 2020

First draft to display/filter speaker presentation in the event website.

RFC related:

#87

What it does

Adding a new item in the top menu presentation that list presentation stocked in src/data/presentations.

What missing

  • Github template to submit presentation and a link in the presentation page in the Submit category
  • Design.
  • Label for filter.
  • Test on PR templating

What can be improved

  • Using a free text for filter by title
  • Using a combobox for the filter. I can do it if I can add vuetify to the website.
  • Using accordion on presentation. I can do it if I can add vuetify to the website
  • Having presentation theme on the left navbar (do not now how to do it)

This come from the work done here: Vue-Organizers/Events#1. With the help of @carwack

Update 04/04/2020

  • Try a pull request templating
  • Add select and input design
  • Filter by title
  • Using accordion on presentation
  • Display number of presentation by theme
  • Display message if no presentation for filter and not display theme without presentation
  • add vue version to json data to prepare talk about vue3
  • Update wording with pr comments
  • Add real presentation
  • Add new line at the end of file
  • Delete env variable as real presentation are here now

src/.vuepress/components/PresentationFilters.vue Outdated Show resolved Hide resolved
src/.vuepress/components/PresentationList.vue Outdated Show resolved Hide resolved
src/.vuepress/components/PresentationList.vue Show resolved Hide resolved
presentationDataFiles.keys().forEach((fileName) => {
let fileData = presentationDataFiles(fileName);
fileName = fileName.replace(/\.\//, '').replace(/\.json/, '')
const [theme, year, title] = fileName.split("/", 3)
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 prefered keep a directory architecture. It really simple to put everything in a big json.
But I really think it will be more easier to contribute with this directory architecture.

Copy link
Member

Choose a reason for hiding this comment

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

So are you thinking each person will add their own markdown file that has YAML / JSON in it?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's a possibility if they want to. Actually I will strongly recommend json to keep same format across every talk.
Just saying that finding informations can be easier in directory architecture than in big json. And it will be really esay to convert to NoSql if needed.

if (filters["language"] && filters["language"] !== presentation["language"]) {
return false;
}
if (filters["event"] && filters["event"] !== presentation["event"]["name"]) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

if presentation["event"] not defined it will crash. But can't add the check because we don't want to return a presentation without event if the event filter is on.
This need a second condition just for it. Like json format can be mandatory I didn't do it. I can if asked.

src/.vuepress/components/PresentationItem.vue Show resolved Hide resolved
return {};
},
methods: {
getItemsForPresentationKey(key, subKey=null) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Getting all the filter item get methods can be improved to only loop over presentation once (like done in presentationFiltered). But originally I wanted the filter to be related to each others (only display items left depends of other filters selectionned but that trigger some UX issues).
Can be change to loop only once if needed.

Copy link
Member

@bencodezen bencodezen left a comment

Choose a reason for hiding this comment

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

Good job on this first iteration!

I left some comments for you. Also, when you have a moment, can you check the preview of the site?

https://deploy-preview-108--serene-sinoussi-5f776b.netlify.com/presentations/#discover

It looks like there's some missing pieces. Also, we should make sure to have a couple of examples for people so it's not just a blank page.

src/.vuepress/components/PresentationItem.vue Show resolved Hide resolved
src/.vuepress/components/PresentationList.vue Outdated Show resolved Hide resolved
src/.vuepress/components/PresentationList.vue Show resolved Hide resolved
presentationDataFiles.keys().forEach((fileName) => {
let fileData = presentationDataFiles(fileName);
fileName = fileName.replace(/\.\//, '').replace(/\.json/, '')
const [theme, year, title] = fileName.split("/", 3)
Copy link
Member

Choose a reason for hiding this comment

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

So are you thinking each person will add their own markdown file that has YAML / JSON in it?

src/presentations/README.md Outdated Show resolved Hide resolved
src/presentations/README.md Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
Copy link
Contributor Author

@AMontagu AMontagu left a comment

Choose a reason for hiding this comment

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

I just finished all you review and added what was missing. You can review again. I put some real data to allow you to see the preview.
I resolved all the conversations where I though we had nothing more to discuss and keep open the one with an answer of me even if it's done to let you resolve them.


## Presentation

No need to post an issue for a presentation just get the presentation author authorization and submit a pull request following [this format](https://github.com/vuejs/events/compare/master...presnetation-pr-example?template=pull-request-presentation.md)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Wording here

assignees: ''
---

Thank you for submitting a presentation.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Wording here

src/presentations/README.md Outdated Show resolved Hide resolved
<div v-for="(yearPresentation, theme) in presentationFiltered" :key="theme">
<div v-if="filteredPresentationsCountByTheme(theme) > 0">
<!-- Title actually show it like this: Theme (3 presentations) -->
<h2>{{ theme }} ({{filteredPresentationsCountByTheme(theme)}} {{pluralize("presentation", filteredPresentationsCountByTheme(theme))}})</h2>
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe use a methods here instead of this concatenation of items ?

src/.vuepress/config.js Outdated Show resolved Hide resolved
Copy link
Member

@bencodezen bencodezen left a comment

Choose a reason for hiding this comment

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

@AMontagu Thanks for addressing some of the comments. I've made some commits to update the language and will go ahead and merge so we can iterate on a separate branch.

Great work! 🙌

@bencodezen bencodezen merged commit 6effb7d into vuejs:master Apr 9, 2020
@AMontagu AMontagu deleted the feature/addPresentations branch April 14, 2020 11:09
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