Commit Graph

279 Commits

Author SHA1 Message Date
Julien Maulny 0c695c5c96 Add a drag&drop delay on playlist videos to allow user scroll on small screens (#2154)
* Add delay on playlist element reordering to fix user scroll on mobile

Signed-off-by: Julien Maulny <julien.maulny@protonmail.com>

* Upgrade @angular/cdk to include bugfix about drag&drop

Signed-off-by: Julien Maulny <julien.maulny@protonmail.com>

* add delay on playlist drag&drop on all touch screens

Signed-off-by: Julien Maulny <julien.maulny@protonmail.com>
2019-10-23 18:12:22 +02:00
Chocobozzz 85c1df6ae8
Add auto play next video migration 2019-09-24 10:35:36 +02:00
LoveIsGrief 6aa5414813 Autoplay next recommended video (#2137)
* Start working on autoplay of next video

* Ignore changes made by gitpod

* Apply changes from PR#1370

* Correct the spelling of recommendations

* Fix linting errors

* Move boolean check to existing onEnded handler

* Pick a random video until the recommendations are improved

* Add simple tests for autoPlayNextVideo

* Fix lint

...again
2019-09-24 08:48:01 +02:00
Lukas Winkler 32d7f2b754 fix a few typos (#2141)
* fix a few typos

* apply changes to original files instead

* additional correction
2019-09-23 08:17:42 +02:00
Chocobozzz 421d935d25 Add about information in registration page 2019-09-05 10:17:02 +02:00
Chocobozzz ccc00cb2aa Add more attributes to about page 2019-09-05 10:17:02 +02:00
Chocobozzz e1b49ee534 Implement auto follow in client 2019-09-04 16:24:58 +02:00
Chocobozzz f3628e694b
Fix video playlists list 2019-08-07 12:07:59 +02:00
Chocobozzz ad453580b2
Fix infinite scroll on big screens 2019-08-02 14:49:25 +02:00
Chocobozzz b63331ec38
Fix overflow in playlist list 2019-08-02 11:31:33 +02:00
Chocobozzz 65af03a241
Automatically update playlist thumbnails 2019-08-01 16:54:24 +02:00
Chocobozzz bfbd912886 Fix broken playlist api 2019-08-01 09:11:04 +02:00
Chocobozzz 41b15c8921
Update client dependencies 2019-07-25 11:00:45 +02:00
Chocobozzz 03652b3179
Use ::ng-deep instead of /deep/ 2019-07-25 11:00:43 +02:00
Chocobozzz f36da21e40
Update angular 2019-07-25 11:00:43 +02:00
Chocobozzz 93cae47925 Add client hooks 2019-07-24 10:58:16 +02:00
Chocobozzz 109d893ff5 Fix lint 2019-07-24 10:58:16 +02:00
Chocobozzz ffb321bedc WIP plugins: load theme on client side 2019-07-24 10:58:16 +02:00
Chocobozzz 7cd4d2ba10 WIP plugins: add theme support 2019-07-24 10:58:16 +02:00
Chocobozzz ccfcdb6785
Fix lint 2019-06-19 15:05:37 +02:00
Chocobozzz 3caf77d3b1
Add language filters in user preferences 2019-06-19 15:05:36 +02:00
Chocobozzz a80e84f047
Add class to email change form 2019-06-12 17:06:28 +02:00
Chocobozzz 0ba5f5baad
Add ability to change email in client 2019-06-11 14:31:12 +02:00
Chocobozzz 1f20622f2b
Improve registration
* Add ability to set the user display name
 * Use display name to guess the username/channel name
 * Add explanations about what is the purpose of a username/channel name
 * Add a loader at the "done" step
2019-06-07 17:05:42 +02:00
Chocobozzz 851f5daa1e
Add ability to set a public to private in client 2019-06-07 15:01:55 +02:00
Chocobozzz 1e66b987cd
Add checkbox to bulk update videos support field 2019-05-31 16:57:01 +02:00
Chocobozzz 34c7f429e4
Group videos on chronological order 2019-05-31 11:15:50 +02:00
Chocobozzz 432ebe8bdd
Merge branch 'release/v1.3.0' into develop 2019-05-21 11:21:56 +02:00
Chocobozzz 8c6781e956
Fix pagination in my videos page 2019-05-21 10:54:38 +02:00
Chocobozzz 73b3aa6429
Merge branch 'feature/audio-upload' into develop 2019-05-21 10:05:12 +02:00
Chocobozzz b767c4a74a
Fix reordering playlist 2019-05-17 14:52:44 +02:00
Chocobozzz b345a8047b
Add audio upload tests 2019-05-17 14:04:54 +02:00
Chocobozzz 7b992a86b1
Support audio upload in client 2019-05-17 10:45:53 +02:00
Chocobozzz 2c3abc4fa7
Fix my account settings responsive 2019-04-11 11:18:19 +02:00
Chocobozzz 8ce1ba6e3e
Add new instance follower notification in client 2019-04-09 10:42:07 +02:00
Chocobozzz 846751c98b
Add newInstanceFollower in notification settings 2019-04-09 08:19:54 +02:00
Chocobozzz 0dc6477758
Add delete/manual approval instance followers in client 2019-04-08 15:47:44 +02:00
Chocobozzz 3143ae17a0
Improve playlist element style 2019-04-05 15:23:41 +02:00
Chocobozzz 3a0fb65c61
Add video miniature dropdown 2019-04-05 10:53:09 +02:00
Chocobozzz 693263e936
Refactor videos selection components 2019-04-05 10:53:08 +02:00
Chocobozzz e2409062de
Refactor video miniatures 2019-04-03 16:17:41 +02:00
Chocobozzz df93a9bed8
Update translations 2019-04-03 11:12:22 +02:00
Chocobozzz 489290b8b1
Restore videos list components 2019-04-02 11:45:02 +02:00
Josh Morel 7ccddd7b52 add quarantine videos feature (#1637)
* add quarantine videos feature

* increase Notification settings test timeout

to 20000ms. was completing 7000 locally but timing out
after 10000 on travis

* fix quarantine video test issues

-propagate misspelling
-remove skip from server/tests/client.ts

* WIP use blacklist for moderator video approval

instead of video.quarantine boolean

* finish auto-blacklist feature
2019-04-02 11:26:47 +02:00
Chocobozzz d01b2fb9ab
Add icon to delete history button 2019-03-20 14:08:03 +01:00
Chocobozzz a55052c9ba
Add my library section in menu 2019-03-20 13:53:51 +01:00
Chocobozzz 978c9d497b Add playlist channel validator when playlist is public 2019-03-18 11:17:59 +01:00
Chocobozzz bce47964f6 Add video channel view 2019-03-18 11:17:59 +01:00
Chocobozzz e2f01c47e0 Playlist support in watch page 2019-03-18 11:17:59 +01:00
Chocobozzz 15e9d5ca39 Playlist reorder support 2019-03-18 11:17:59 +01:00
Chocobozzz c5a1ae500e Playlist videos component 2019-03-18 11:17:59 +01:00
Chocobozzz f0a3988066 Add to playlist dropdown 2019-03-18 11:17:59 +01:00
Chocobozzz 830b4faff1 Add/update/delete/list my playlists 2019-03-18 11:17:59 +01:00
Chocobozzz 1e17071bac
Video abuse notification is not only for local videos 2019-02-20 15:54:58 +01:00
Chocobozzz ef80c66cea
Refactor ellipsis CSS 2019-02-20 15:52:03 +01:00
Josh Morel 2c0070c8f3 fix undefined change ownership icons 2019-01-28 13:48:42 +01:00
Chocobozzz 457bb213b2
Refactor how we use icons
Inject them in an angular component so we can easily change their color
2019-01-17 10:38:18 +01:00
Chocobozzz b4593cd7ff
Warn user when they want to delete a channel
Because they will not be able to create another channel with the same
actor name
2019-01-14 10:24:49 +01:00
Chocobozzz 07a982363f Correctly scroll in notification preferences 2019-01-09 11:15:15 +01:00
Chocobozzz 2f1548fda3 Add notifications in the client 2019-01-09 11:15:15 +01:00
Chocobozzz f8b2c1b4f5
Refractor notification service
Shorter name and use primeng component
2018-12-19 17:26:52 +01:00
Chocobozzz 276d965295
Add ability to disable and clear history 2018-12-18 11:35:51 +01:00
Chocobozzz 80bfd33c0b
Add history page on client 2018-12-18 11:35:51 +01:00
Chocobozzz ddb83e49ec
My account menu -> open entries on hover 2018-12-05 14:21:31 +01:00
Chocobozzz 361805c48b
Fix checkbox margins 2018-11-19 14:34:36 +01:00
Chocobozzz 2fbe7f1933
Fix new Angular 7 issues 2018-11-15 09:25:32 +01:00
Chocobozzz c199c427d4
Better typings 2018-10-18 14:35:31 +02:00
BO41 244b4ae397 NoImplicitAny flag true (#1157)
this enables the `noImplicitAny` flag in the Typescript compiler

> When the noImplicitAny flag is true and the TypeScript compiler cannot infer the type, it still generates the JavaScript files, but it also reports an error. Many seasoned developers prefer this stricter setting because type checking catches more unintentional errors at compile time.

closes: #1131
replaces #1137
2018-10-18 09:08:59 +02:00
Chocobozzz bb5d90e62f
Merge branch 'feature/webtorrent-disabling' into develop 2018-10-17 10:48:56 +02:00
Chocobozzz a73115f31a
Fix webtorrent disabling 2018-10-17 10:47:15 +02:00
Chocobozzz 92ea70a782 Fix code typos 2018-10-16 16:41:36 +02:00
Chocobozzz af5767ffae Add user/instance block by users in the client 2018-10-16 16:41:36 +02:00
BO41 dffd5d127f update tslint config and fix member ordering (#1279) 2018-10-16 01:04:50 +02:00
Rigel Kent ed638e5325
move to boolean switch 2018-10-13 11:53:48 +02:00
Rigel Kent 64cc5e8575
add webtorrent opt-out settings
- add a key in localstorage to remember the opt-out
- add a user setting
2018-10-13 11:53:42 +02:00
Chocobozzz b014b6b9c7
Add ability to search on followers/following 2018-10-10 09:43:53 +02:00
Chocobozzz 24b9417cec
Add users search filter 2018-10-08 15:55:32 +02:00
Chocobozzz 601527d795
Check video channel name is unique on our instance 2018-10-01 15:20:14 +02:00
Chocobozzz 75f1d36218
Fix my account subtitles 2018-10-01 09:02:27 +02:00
Rigel Kent f5d9558f66
various display improvements 2018-09-29 13:42:17 +02:00
Chocobozzz baf0a8c98e
Fix some i18n tags 2018-09-28 15:13:01 +02:00
Chocobozzz a890d1e0d3
Check current password on server side 2018-09-26 16:28:27 +02:00
BO41 be1206bb93
fix lint errors 2018-09-26 16:28:26 +02:00
BO41 3805ce3f43
check old password before change 2018-09-26 16:28:25 +02:00
BO41 23db998f07 remove unused imports 2018-09-22 20:11:16 +02:00
Chocobozzz a893681058
Add a message if the user don't have any subscriptions 2018-09-20 16:24:59 +02:00
Chocobozzz d7639f66af
Unsubscribe from the router 2018-09-06 09:00:58 +02:00
Chocobozzz b0ee41df7d
Clean up change password validation 2018-09-05 15:00:25 +02:00
Chocobozzz 4c8e4e04d1
Use dropdown in my account -> "my library" 2018-09-05 14:42:59 +02:00
Rigel Kent 9a0fc8409c add theming via css custom properties
and a bonus dark color theme toggle
2018-09-04 23:24:34 +02:00
Jorropo a94419a604 Making password change erroring more friendly
If you leave the form but the 2 password is different a big red
boxappears to warn you (no need to click on the button).The submit
buttonis desactivated if the 2 password isn't the same.
2018-09-04 17:11:48 +02:00
Chocobozzz 5cf84858d4
Add federation to ownership change 2018-09-04 10:49:53 +02:00
Gaëtan Rizio 74d6346935 Users can change ownership of their video [#510] (#888)
* [#510] Create a new route to get the list of user names

To be able to transfer ownership to a user,
we need to be able to select him from the list of users.

Because the list could be too big, we add a autocomplete feature.

This commit does the following:

* Add a API endpoint to get a list of user names by searching its name

* [#510] The user can choose the next owner of the video

To be able to transfer ownership to a user,
we need the owner to be able to select the user.

The server can autocomplete the name of the user to give the ownership.
We add a dialog for the user to actually select it.

This commit does the following:

* Create a modal for the owner to select the next one
* Opens this modal with a button into the menu *more*
* Make the dependency injection

* [#510] When the user choose the next owner, create a request in database

For the change of ownership to happen, we need to store the temporary requests.
When the user make the request, save it to database.

This commit does the following:

* Create the model to persist change ownership requests
* Add an API to manage ownership operations
* Add a route to persist an ownership request

* [#510] A user can fetch its ownership requests sent to him

To be able to accept or refuse a change of ownership,
the user must be able to fetch them.

This commit does the following:

* Add an API to list ownership for a user
* Add the query to database model

* [#510] A user can validate an ownership requests sent to him - server

The user can accept or refuse any ownership request that was sent to him.
This commit focus only on the server part.

This commit does the following:

* Add an API for the user to accept or refuse a video ownership
* Add validators to ensure security access
* Add a query to load a specific video change ownership request

* [#510] A user can validate an ownership requests sent to him - web

The user can accept or refuse any ownership request that was sent to him.
This commit focus only on the web part.

This commit does the following:

* Add a page to list user ownership changes
* Add actions to accept or refuse them
* When accepting, show a modal requiring the channel to send the video

* Correct lint - to squash

* [#510] PR reviews - to squash

This commit does the following:

* Search parameter for user autocompletion is required from middleware directly

* [#510] PR reviews - to squash with creation in database commit

This commit does the following:

* Add the status attribute in model
* Set this attribute on instance creation
* Use AccountModel method `loadLocalByName`

* [#510] PR reviews - to squash with fetch ownership

This commit does the following:

* Add the scope `FULL` for database queries with includes
* Add classic pagination middlewares

* [#510] PR reviews - to squash with ownership validation - server

This commit does the following:

* Add a middleware to validate whether a user can validate an ownership
* Change the ownership status instead of deleting the row

* [#510] PR reviews - to squash with ownership validation - client

This commit does the following:

* Correct indentation of html files with two-spaces indentation
* Use event emitter instead of function for accept event
* Update the sort of ownership change table for a decreasing order by creation date
* Add the status in ownership change table
* Use classic method syntax

* code style - to squash

* Add new user right - to squash

* Move the change to my-account instead of video-watch - to squash

As requested in pull-request, move the action to change ownership into my videos page.

The rest of the logic was not really changed.

This commit does the following:

- Move the modal into my video page
- Create the generic component `button` to keep some styles and logic

* [#510] Add tests for the new feature

To avoid regression, we add tests for all api of ownership change.

This commit does the following:

- Create an end-to-end test for ownership change
- Divide it to one test per request

* [#510] Do not send twice the same request to avoid spam

We can send several time the same request to change ownership.
However, it will spam the user.
To avoid this, we do not save a request already existing in database.

This commit does the following:

- Check whether the request exist in database
- Add tests to verify this new condition

* [#510] Change icons

Change icons so they remains logic with the rest of the application.

This commit does the following:

- Add svg for missing icons
- Add icons in `my-button` component
- Use these new icons

* [#510] Add control about the user quota

The user should be able to accept a new video only if his quota allows it.

This commit does the following:

- Update the middleware to control the quota
- Add tests verifying the control

* Correct merge

- Use new modal system
- Move button to new directory `buttons`

* PR reviews - to squash
2018-09-04 08:57:13 +02:00
Chocobozzz f5b0af50c8 Search video channel handle/uri 2018-08-27 09:41:54 +02:00
Chocobozzz aa55a4da42 Infinite scroll to list our subscriptions 2018-08-27 09:41:54 +02:00
Chocobozzz f37dc0dd14 Add ability to search video channels 2018-08-27 09:41:54 +02:00
Chocobozzz 22a16e36f6 Add local user subscriptions 2018-08-27 09:41:54 +02:00
Chocobozzz 8a19bee1a1 Add ability to set a name to a channel 2018-08-27 09:41:54 +02:00
Chocobozzz 191764f30b
Improve blacklist management 2018-08-14 09:27:18 +02:00
Chocobozzz 92b9d60c00
Add ability to delete our account 2018-08-08 10:55:27 +02:00
Chocobozzz 990b6a0b0c Import torrents with webtorrent 2018-08-08 09:30:31 +02:00
Chocobozzz b2977eecb8 Fix fps federation 2018-08-06 11:19:16 +02:00
Chocobozzz 5d08a6a74e Add import http enabled configuration 2018-08-06 11:19:16 +02:00
Chocobozzz d7f83948a1 Correctly handle video import errors 2018-08-06 11:19:16 +02:00
Chocobozzz ed31c05985 Add ability to list video imports 2018-08-06 11:19:16 +02:00
Chocobozzz a8981e0b24
Fix UI regressions 2018-07-24 18:03:39 +02:00
Chocobozzz 0f7fedc398
Improve frontend accessibility
In particular checkboxes, likes/dislikes, share button, video thumbnails
and help buttons
2018-07-17 14:56:15 +02:00
Chocobozzz 308c427551
Use a resolver when updating the video 2018-07-16 18:09:31 +02:00
Chocobozzz f2bbd1e1b1
Fix responsive in my channel/my videos pages 2018-07-16 15:17:50 +02:00
Chocobozzz e1807a942f
Fix build 2018-06-29 17:10:52 +02:00
Chocobozzz 52d9f792b3
Client: Add ability to update video channel avatar 2018-06-29 14:34:04 +02:00
Chocobozzz 0c237b19fd
Fix images size limit 2018-06-22 15:42:55 +02:00
Chocobozzz 4d089429fe
Remove uneeded rxjs-compat 2018-06-18 11:02:24 +02:00
Chocobozzz bbe0f0645c
Add ability to schedule video publication 2018-06-15 18:20:56 +02:00
Chocobozzz 2186386cca
Add concept of video state, and add ability to wait transcoding before
publishing a video
2018-06-12 20:37:51 +02:00
Chocobozzz d879e48b21
Fix autoplay setting in my account 2018-06-11 10:53:58 +02:00
Chocobozzz 695237b258
Fix add icon path 2018-06-11 10:05:42 +02:00
Chocobozzz 379acb21bc
Rename "my settings" to "my account" in menu 2018-06-07 17:05:57 +02:00
Chocobozzz e309822b93
Add form validator translations 2018-06-05 15:02:27 +02:00
Chocobozzz d18d64787b
Form validators refractoring 2018-06-05 10:58:45 +02:00
Chocobozzz 25acef90a8
Fix i18n in components 2018-06-05 09:13:26 +02:00
Chocobozzz b1d40cff89
Add i18n attributes 2018-06-05 08:43:01 +02:00
Chocobozzz 74af5145f2
Video support field inherits channel support field 2018-05-25 18:32:53 +02:00
Chocobozzz ad9e39fb81
Only use account name in routes 2018-05-25 10:41:07 +02:00
Chocobozzz 06be7ed0b2
Reload my videos after delete 2018-05-25 08:38:59 +02:00
Chocobozzz db400f447a
Upgrade to rxjs 6 2018-05-16 09:42:54 +02:00
Chocobozzz c663955b25
Route: Video edit -> video update 2018-05-11 08:48:20 +02:00
Chocobozzz 360329cc02
Account/channel descriptions are not required anymore 2018-05-09 11:41:18 +02:00
Chocobozzz 62e62f118d
Load my-account module lazily 2018-05-09 09:32:26 +02:00