giseldo/neodataset huggingface dataset:
Present video requirements where necessary in the composer

The composer should alert the user if the video duration is too long, or the total file size is too high. More details provided below.

### Max duration
20 mins (in reality 21 mins) for non Minds+ / Minds Pro users 90 mins (in reality 95 mins) for Minds+ / Minds Pro users

### Max resolution
There is no limit on the video resolution.

### Max file size
The max files size for all users is 4GB

### Designs
* File size > 4GB - https://www.sketch.com/s/5b1a59db-a4d8-4228-a363-17f6120c38db/a/ZOn3O1x
* Duration too long (Minds+ & Pro) - https://www.sketch.com/s/5b1a59db-a4d8-4228-a363-17f6120c38db/a/JnJYnZG
* Duration too long (Other users) - https://www.sketch.com/s/5b1a59db-a4d8-4228-a363-17f6120c38db/a/zxKgxmo
* Duration and file size too great - https://www.sketch.com/s/5b1a59db-a4d8-4228-a363-17f6120c38db/a/bgaDWLz
* Mobile responsive example - https://www.sketch.com/s/5b1a59db-a4d8-4228-a363-17f6120c38db/a/rbrKlgE

### Notes
* Clicking continue will simply close the message, and display the composer as normal
* Any non video MIME types will not be selectable when choosing a file to upload.


##### Original description

Users want more information on what file formats would be best uploaded, to minimise effects on quality and have a quick transcoding time (presuming if you upload a 720p MP4 it skips the transcoding). 

https://www.minds.com/media/1030663368974184448

Story points: 1.0
Onboarding Wizard does not dynamically update channel profile information

### Summary

Onboarding wizard opens on channel profile page, wizard updates channel profile information but it does not update page without refresh.

### Steps to reproduce

1. Register a new channel. 
2. In the profile update step of the onboarding wizard update avatar and display name
3. Information of Channel Profile will not be updated
4. Refresh page information will be updated

### Platform information 

Browser

### What is the current *bug* behavior?

Channel is not updated when onboarding wizard completes without page reset.

### What is the expected *correct* behavior?

- [x] Channel Avatar is updated
- [x] Channel Profile button with avatar image in middle top of of screen is also updated
- [x] Display Name is updated
- [ ] Channel Description is updated

### Relevant logs and/or screenshots

![2019-10-11-15-02-49](/uploads/41beff27b879a2cdb393347041d110e4/2019-10-11-15-02-49.mp4)

Story points: 4.0
Onboarding Wizard Bugs (Some only effect browsers with existing channel info)

### Summary

Onboarding Wizard has multiple issue.

- Starts in third step of four (existing cookie for other channel)
- Third step does not have close button x
- Next button on first step skips to third step (existing cookie for other channel)
- Logging out does not clear the onboarding cookies
- Multiple logouts and new signups in the same browser session will mess up the onboarding flow for the new signup

### Steps to reproduce

Register a new channel, onboarding wizard will be in third step, hit previous. 

![2019-10-11-10-52-57](/uploads/c23a7b27a73bd236d211b7b969b2fb92/2019-10-11-10-52-57.mp4)

### Platform information 

Browser

### What is the current *bug* behavior?

- Starts in third step of four (or the last step reached)
- Third step does not have close button x
- Next button on first step skips to third step

### What is the expected *correct* behavior?

- [ ] Onboarding wizard should start on step one
- [ ] Step One next button should not skip to step three
- [ ] Step three should have a close button like other steps
- [ ] Step three modal should be approx the same vertical size as other steps

### Suggestion to Fix

- [ ] On logout delete session, currently sessions accumulate.

![image](/uploads/64657cb75ce380b8d34534df894f293c/image.png)

Story points: 4.0
Implement tokens page to new wallet

# Overview
Should follow the same template as USD, ETH and BTC will.

## Mockups
- https://invis.io/KWU1X9IEB2U#/386167821_Wallet-_Tokens-_General
- https://invis.io/KWU1X9IEB2U#/386167819_Wallet-_Tokens-_General_Copy

Story points: 16.0
Implement new wallet template

# Overview
This task is the ground works for all the other wallet work

## Mockups
- https://invis.io/KWU1X9IEB2U#/386167821_Wallet-_Tokens-_General
- https://invis.io/KWU1X9IEB2U#/386167819_Wallet-_Tokens-_General_Copy

!675 

Story points: 2.0
Implement summary tab

- [ ] Tooltips on titles
- [ ] Small graph components

![pasted_image](/uploads/4cd31702456b7a97b9b0b241cd64053a/pasted_image.png)


| miniChart | endpoint | timespan |
| ------ | ------ | ------ |
| Active users on site | @markeharding need current val... tbd how/when this is going to refresh | *now* |
| Daily active users | `/traffic?metric=active_users` |  30d | 
| Monthly active users | `/traffic?metric=active_users` | 1y |
| Unique visitors | @markeharding this should also be a metric in the 'Traffic' tab, so looking for `/traffic?metric=unique_visitors` |  30d | 
| Daily page views | `/traffic?metric=views` | 30d |
| Core users | @markeharding (might be able to reuse something from `api/v2/analytics/usersegments` ?) |  30d | 
| Token sales (ETH) | @markeharding this should eventually be a metric in the 'Token' tab  (might be able to reuse something from `api/v2/analytics/tokensales` ?)| 30d |
| Boost backlog | @markeharding need total hour count of each (safe newsfeed, open newsfeed, safe sidebar, open sidebar)|  *now* | 

Story points: 2.0
(chore): Fix notification links

Some links in the notifications on production are being generated incorrectly. eg.

`https://www.minds.com/newsfeed/minds/blog/power-to-the-people-the-minds-jury-system-975486713993859072`
should be
`https://www.minds.com/minds/blog/power-to-the-people-the-minds-jury-system-975486713993859072`

Newfeed is being added to the path. My hypothesis is because of the the json file that generates the notification links has inconsistent data in the path values. Some values begin with a slash and others do not.

Story points: 1.0
Lay foundations for marketing pages and create /upgrades page

Desktop Design https://invis.io/KWU1X9IEB2U#/386352533_Upgrade_-Desktop-_-1st_Pass_Styling-

Mobile Designs https://invis.io/VRU68XT2NQU#/386397631_Upgrade_-Mobile-_-1st_Pass_Styling-

Both designs use a 12 column grid structure. I can invite @edgebal to InVision so he has full access to the designs (and not simply a flat image, as provided in the above public URLs)

Any feedback on the above is welcome. Let's arrange to chat tomorrow (Wednesday 2nd Oct) @edgebal should you have any questions at all.

Story points: 3.0
TypeError: Cannot read property 'unsubscribe' of undefined when destroying Update Markers component

Sentry Issue: [FRONT-WW](https://sentry.io/organizations/minds-inc/issues/1210702781/?referrer=gitlab_integration)

```
TypeError: Cannot read property 'unsubscribe' of undefined
  at ngOnDestroy (./src/app/modules/groups/sidebar-markers/sidebar-markers.component.ts:77:24)
  at checkSidebarVisibility (./src/app/common/layout/sidebar/markers.component.ts:57:34)
  at observe (./src/app/common/layout/sidebar/markers.component.ts:37:12)
  at next (./src/app/services/session.ts:21:19)
  at logout (./src/app/services/session.ts:81:26)
...
(45 additional frame(s) were not displayed)
```

Story points: 1.0
Follow-up from "(feat): Minds Pro"

The following discussions from !528 should be addressed:

- [x] @markeharding started a [discussion](https://gitlab.com/minds/front/merge_requests/528#note_219755223): 

    > Why is this not using Session.isAdmin()?

- [x] @markeharding started a [discussion](https://gitlab.com/minds/front/merge_requests/528#note_219755229): 

    > ideally this should be in common module

- [x] @markeharding started a [discussion](https://gitlab.com/minds/front/merge_requests/528#note_219755230): 

    > why is this logic in the root component?

- [x] @markeharding started a [discussion](https://gitlab.com/minds/front/merge_requests/528#note_219755231): 

    > remove this

- [x] @markeharding started a [discussion](https://gitlab.com/minds/front/merge_requests/528#note_219755232): 

    > remove this, it should use the referrer flag

- [x] @markeharding started a [discussion](https://gitlab.com/minds/front/merge_requests/528#note_219755235): 

    > does this logic follow through to `common/api/client`?

Story points: 2.0
TypeError: Cannot read property 'classList' of null

Sentry Issue: [FRONT-114](https://sentry.io/organizations/minds-inc/issues/1218883151/?referrer=gitlab_integration)

```
TypeError: Cannot read property 'classList' of null
  at apply (./src/app/common/components/editors/plugins/embed-image.plugin.ts:256:12)
...
(4 additional frame(s) were not displayed)
```

Story points: 1.0
Accessibility to locked blog articles

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

With reference to a recent H&S enquiry, I have tested an example blog article and found that whilst not purchasing access to locked articles, I am able to copy and paste the obscured text content of said locked article into external text editors and word processor applications. 

The example blog article also contains video content (provided via the YouTube bridge) in which the audio content can be listened to whilst the article is locked.

### Steps to reproduce

View a blog article whilst it is locked (ie. needing a predetermined amount of tokens to be able to access said content) and then attempt to listening to any video / audio content, as well as attempting to copy the text content to an external application.

### Platform information 
I believe that this is user platform neutral. However, I have tested this whilst using Firefox (x86_64 version 68.0.2) and Chromium (x86_64 version 76.0.3809).

### What is the current *bug* behavior?

See above

### What is the expected *correct* behavior?

Locked content should not be accessible to the user (until the user purchases access to said content).

### Relevant logs and/or screenshots

<b>Reference:</b>
* Original Help And Support Enquiry<br>
https://www.minds.com/newsfeed/1020105341986635776

* Example Blog Article<br>
https://www.minds.com/cellblock07208/blog/from-the-pulpit-my-beginnings-with-religion-1019970882463047680

Story points: 1.0
(bug): User has extra-long avatar

A user has an extra long avatar. 

Pointed to me by @jotto141, I also can see it.

![1568512009](/uploads/0f887ab7366107ac183d14c6bbd14d11/1568512009.jpeg)

![image](/uploads/b9c5368f848d4fdf155a5ad272af50fd/image.png)

Story points: 1.0
(bug): Boost rotator showing only sporadically on refresh for test user.

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

When the newsfeed is soft-reloaded it does not reload the feed service fully.
 
https://streamable.com/x8zsk

### Steps to reproduce

See video, but:
1. Go to newsfeed.
2. Click newsfeed on the topnav.
3. observe chevron's for boost rotator disappear.

### Platform information 

Produced in local env.

### What is the current *bug* behavior?

When on the newsfeed, and clicking on the newsfeed, there are 0 boosts being found.

### What is the expected *correct* behavior?

It should refresh.

### Relevant logs and/or screenshots

https://streamable.com/x8zsk

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

/label ~"T \- Bug" ~"S \- Triage:new" 


Story points: 2.0
Register 'view' events for suggested channels

<!---
Please read this!

The Definition of Ready (DoR) can be found at https://developers.minds.com/docs/handbook/how-we-work/#definition-of-ready-dor

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "Type::Feature" label and verify the feature you're about to submit isn't a duplicate.
--->

## Goal

<!---
Clearly outline the goal of the issue and why we are doing it
--->

In order to get feedback on suggested channels, record a 'view' event when they are shown

## What needs to be done

<!---
Clearly detail what needs to be done to achieve the goal set out above
--->

This is the view schema -> https://gitlab.com/minds/iglu-registry/-/blob/master/schemas/com.minds/view/jsonschema/1-0-0. It supports 'medium'. See how the boost rotator records views and applies these fields. They are important for having the correct context as to where they are shown. 

Only record a view if it is actually shown.

## QA

<!---
Consideration is given to how the issue will be demoed and tested prior to being deployed
--->

Ensure event is stored. 

## UX/Design

<!---
Sufficient wireframes have been presented and understood by the development team. Full mockups are not required and re-usable components are encouraged.
--->

N/A

## Personas

<!---
Who does this user impact and why (optional)
--->

Data team

## Experiments

<!---
Experiments are not required, but it should be made clear if one is expected. If experiments are required, the hypothesis should be outlined.
--->

N/A

## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [ ] Record 'view' events on suggested/recommended channel widgets
- [ ] Provide query you used to show it works


## Definition of Ready Checklist

- [ ] Definition Of Done (DoD)
- [ ] Acceptance criteria
- [ ] Weighted
- [ ] QA
- [ ] UX/Design
- [ ] Personas
- [ ] Experiments

Story points: 3.0
Prevent paywallception

<!---
Please read this!

The Definition of Ready (DoR) can be found at https://developers.minds.com/docs/handbook/how-we-work/#definition-of-ready-dor

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "Type::Feature" label and verify the feature you're about to submit isn't a duplicate.
--->

## Goal

<!---
Clearly outline the goal of the issue and why we are doing it
--->
We don't want to allow paywalled quotes of paywalled posts.  But when a Minds+ user quotes a paywalled post, the quote automatically becomes a Minds+ post. (See https://www.minds.com/newsfeed/1368520930409582606 for example)

![image](/uploads/8c521ce7e9ff53a64d231410f88fbb9a/image.png)

## What needs to be done

<!---
Clearly detail what needs to be done to achieve the goal set out above
--->
Don't monetize quotes of paywalled posts by default.

## QA

<!---
Consideration is given to how the issue will be demoed and tested prior to being deployed
--->
Test users must have plus

## UX/Design

<!---
Sufficient wireframes have been presented and understood by the development team. Full mockups are not required and re-usable components are encouraged.
--->
No design changes needed

## Personas

<!---
Who does this user impact and why (optional)
--->
Plus users who make quote posts of other paywalled posts.

## Experiments

<!---
Experiments are not required, but it should be made clear if one is expected. If experiments are required, the hypothesis should be outlined.
--->
None

## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [ ] Plus users can still quote paywalled posts, but the quote posts are not monetized.

## Definition of Ready Checklist

- [ ] Definition Of Done (DoD)
- [ ] Acceptance criteria
- [ ] Weighted
- [ ] QA
- [ ] UX/Design
- [ ] Personas
- [ ] Experiments

Story points: 3.0
Boost rotator obscures the 'See  X latest posts'

## Goal

The `See  X latest posts` appears under the boost rotator interactions bar.

![Screenshot_2022-05-16_at_14.35.57](/uploads/c7504c5e2880ffa31a0daa700d88558f/Screenshot_2022-05-16_at_14.35.57.png)


## What needs to be done

This button should always appear on top.

Story points: 2.0
Display unseen notification count in the page title

## Goal

More clearly display the unseen notification count when a user has minds.com opened as a tab.

## What needs to be done

Currently when there are one or more unseen notifications, the title simply reads `(*) Newsfeed | Minds`

![Screenshot_2022-05-13_at_15.18.14](/uploads/b2da1efc3cfd341b25ec3aca62bd6003/Screenshot_2022-05-13_at_15.18.14.png)

It would be more useful were we to display the actual notification count, like other social networks do. i.e. `(12) Newsfeed | Minds`.

![Screenshot_2022-05-13_at_15.17.41](/uploads/32da26815a46a662a3bdadf496777a68/Screenshot_2022-05-13_at_15.17.41.png)

## QA

N/A


## UX/Design

N/A


## Personas

N/A


## Experiments

N/A


## Acceptance Criteria

- [ ] The unseen notification count should be displayed within the page title, where there are unseen notifications.
- [ ] Modify https://gitlab.com/minds/front/-/blob/master/src/app/common/services/meta.service.ts#L290
- [ ] If over 100, show 99+
- [ ] If for some reason less than 0, don't show anything

## Definition of Ready Checklist

- [ ] Definition Of Done (DoD)
- [ ] Acceptance criteria
- [ ] Weighted

Display

Story points: 1.0
Push Notifs: Unregistering token throws 401 on logout

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

If you've had a token registered to your account (on login if you have notif permissions enabled) then on logout you'll see a 401 error toast while the app is trying to unregister the token

### Steps to reproduce

- go to settings
- enable push notifs
- log out
- an error toast will appear for some moments before the app navigates to login screen

### Platform information 

any browser

### What is the current *bug* behavior?

unregistering a token throws an error

### What is the expected *correct* behavior?

unregistering a token shouldn't throw an error

### Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)

![Screen_Shot_2022-05-13_at_11.53.05](/uploads/04b473eb2256a9672eecbe4cce672ac2/Screen_Shot_2022-05-13_at_11.53.05.png)

### Possible fixes

(If you can, link to the line of code that might be responsible for the problem)

don't show a toast even if error. But we should figure out why it's throwing

Story points: 1.0
Edits to images and videos on single entity pages post new activities to channel

<!---
Please read this!

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "T - Bug" label and verify the issue you're about to submit isn't a duplicate.
--->

### Summary

Edits to images and videos on single entity pages post new activities to channel

### Steps to reproduce

1. Make an image post
2. Go to single entity page (click timestamp)
3. Edit the text
4. Check your channel, see 2 activities.

Example: https://www.minds.com/testacc4/

##### Notes 
- Also happens for videos, 
- If you edit one of them again on the feed, both are updated.

### Platform information 

Web

### What is the current *bug* behavior?

Duplicated post

### What is the expected *correct* behavior?

Should update the existing activity.

### Relevant logs and/or screenshots

![image](/uploads/6b74e36750d0afc90ecd5a75a35b9dde/image.png)

### Possible fixes

Check propagate properties, also check for recent changes that could impact this.

Story points: 3.0
Remove publisher card dot after username if no badges

<!---
Please read this!

The Definition of Ready (DoR) can be found at https://developers.minds.com/docs/handbook/how-we-work/#definition-of-ready-dor

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "Type::Feature" label and verify the feature you're about to submit isn't a duplicate.
--->

## Goal

<!---
Clearly outline the goal of the issue and why we are doing it
--->
This dot after username should only be there if the user has a badge

![image](/uploads/c7e868045335d00333554a00a1776279/image.png)

## What needs to be done

<!---
Clearly detail what needs to be done to achieve the goal set out above
--->
Remove the dot

## QA

<!---
Consideration is given to how the issue will be demoed and tested prior to being deployed
--->
Easy eyeball test

## UX/Design

<!---
Sufficient wireframes have been presented and understood by the development team. Full mockups are not required and re-usable components are encouraged.
--->
N/A

## Personas

<!---
Who does this user impact and why (optional)
--->
N/A

## Experiments

<!---
Experiments are not required, but it should be made clear if one is expected. If experiments are required, the hypothesis should be outlined.
--->
N/A

## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [ ] No dot if no badge

## Definition of Ready Checklist

- [x] Definition Of Done (DoD)
- [x] Acceptance criteria
- [x] Weighted
- [x] QA
- [x] UX/Design
- [x] Personas
- [x] Experiments

Story points: 1.0
Research design system strategies

<!---
Please read this!

The Definition of Ready (DoR) can be found at https://developers.minds.com/docs/handbook/how-we-work/#definition-of-ready-dor

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "Type::Feature" label and verify the feature you're about to submit isn't a duplicate.
--->

## Goal

<!---
Clearly outline the goal of the issue and why we are doing it
--->
Investigate existing design systems and consider how we might implement one ourselves.

Analysis should include:
- how different systems are structured
- which system(s) might work best for us, why
- anticipated challenges
- implementation strategy ideas

## What needs to be done

<!---
Clearly detail what needs to be done to achieve the goal set out above
--->
Look at these: 

- https://design.gitlab.com/
- https://material.io/design
- https://storybook.js.org/showcase/
- https://www.editorx.com/shaping-design/article/design-system-examples
- https://designerup.co/blog/10-best-design-systems-and-how-to-learn-and-steal-from-them/
- Ask Michael if he has more to add

## QA

<!---
Consideration is given to how the issue will be demoed and tested prior to being deployed
--->
N/A

## UX/Design

<!---
Sufficient wireframes have been presented and understood by the development team. Full mockups are not required and re-usable components are encouraged.
--->


## Personas

<!---
Who does this user impact and why (optional)
--->


## Experiments

<!---
Experiments are not required, but it should be made clear if one is expected. If experiments are required, the hypothesis should be outlined.
--->


## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [ ] Initial research completed
- [ ] Findings are shared

## Definition of Ready Checklist

- [ ] Definition Of Done (DoD)
- [ ] Acceptance criteria
- [ ] Weighted
- [ ] QA
- [ ] UX/Design
- [ ] Personas
- [ ] Experiments

Story points: 3.0