+
@@ -37,6 +35,12 @@
The url is not secured (no HTTPS), so the embed video won't work on HTTPS websites (web browsers block non secured HTTP requests on HTTPS websites).
+
+
+
+ Cancel
+
+
diff --git a/client/src/app/videos/+video-watch/video-share.component.scss b/client/src/app/videos/+video-watch/video-share.component.scss
index e69de29bb..184e09027 100644
--- a/client/src/app/videos/+video-watch/video-share.component.scss
+++ b/client/src/app/videos/+video-watch/video-share.component.scss
@@ -0,0 +1,3 @@
+.action-button-cancel {
+ margin-right: 0 !important;
+}
diff --git a/client/src/app/videos/+video-watch/video-watch.component.scss b/client/src/app/videos/+video-watch/video-watch.component.scss
index e742e1329..205a4333c 100644
--- a/client/src/app/videos/+video-watch/video-watch.component.scss
+++ b/client/src/app/videos/+video-watch/video-watch.component.scss
@@ -101,27 +101,27 @@
.action-more {
display: inline-block;
- .dropdown-menu .icon {
- display: inline-block;
- background-repeat: no-repeat;
- background-size: contain;
- width: 21px;
- height: 21px;
- vertical-align: middle;
- margin-right: 5px;
- position: relative;
- top: -1px;
+ .dropdown-menu .dropdown-item {
+ padding: 6px 24px;
- &.icon-download {
- background-image: url('../../../assets/images/video/download-grey.svg');
- }
+ .icon {
+ @include icon(24px);
- &.icon-alert {
- background-image: url('../../../assets/images/video/alert.svg');
- }
+ margin-right: 10px;
+ position: relative;
+ top: -1px;
- &.icon-blacklist {
- background-image: url('../../../assets/images/video/eye-closed.svg');
+ &.icon-download {
+ background-image: url('../../../assets/images/video/download-black.svg');
+ }
+
+ &.icon-alert {
+ background-image: url('../../../assets/images/video/alert.svg');
+ }
+
+ &.icon-blacklist {
+ background-image: url('../../../assets/images/video/blacklist.svg');
+ }
}
}
}
diff --git a/client/src/assets/images/global/cross.svg b/client/src/assets/images/global/cross.svg
new file mode 100644
index 000000000..d47a75996
--- /dev/null
+++ b/client/src/assets/images/global/cross.svg
@@ -0,0 +1,12 @@
+
+
diff --git a/client/src/assets/images/video/alert.svg b/client/src/assets/images/video/alert.svg
index 6d3af029f..5b43534ad 100644
--- a/client/src/assets/images/video/alert.svg
+++ b/client/src/assets/images/video/alert.svg
@@ -7,9 +7,9 @@
-
-
-
+
+
+
diff --git a/client/src/assets/images/video/blacklist.svg b/client/src/assets/images/video/blacklist.svg
new file mode 100644
index 000000000..431c73816
--- /dev/null
+++ b/client/src/assets/images/video/blacklist.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/client/src/assets/images/video/download-black.svg b/client/src/assets/images/video/download-black.svg
new file mode 100644
index 000000000..501836746
--- /dev/null
+++ b/client/src/assets/images/video/download-black.svg
@@ -0,0 +1,16 @@
+
+
diff --git a/client/src/assets/images/video/eye-closed.svg b/client/src/assets/images/video/eye-closed.svg
deleted file mode 100644
index c5b739659..000000000
--- a/client/src/assets/images/video/eye-closed.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
diff --git a/client/src/sass/application.scss b/client/src/sass/application.scss
index a1c222c31..0d96d5ec0 100644
--- a/client/src/sass/application.scss
+++ b/client/src/sass/application.scss
@@ -258,9 +258,39 @@ p-datatable {
.modal {
.modal-header {
border-bottom: none;
+ margin-bottom: 5px;
- .title-page-single {
- margin: 0;
+ .modal-title {
+ font-size: 20px;
+ font-weight: $font-semibold;
+ }
+
+ .close {
+ @include icon(24px);
+
+ position: relative;
+ right: -1px;
+ float: right;
+ background-image: url('../assets/images/global/cross.svg');
+ }
+ }
+
+ .inputs {
+ margin-top: 40px;
+ margin-bottom: 0;
+ text-align: right;
+
+ .action-button-cancel {
+ @include peertube-button;
+ @include grey-button;
+
+ display: inline-block;
+ margin-right: 10px;
+ }
+
+ .action-button-submit {
+ @include peertube-button;
+ @include orange-button;
}
}
}
diff --git a/client/src/sass/include/_bootstrap.scss b/client/src/sass/include/_bootstrap.scss
index 3857bb521..4f0e2893e 100644
--- a/client/src/sass/include/_bootstrap.scss
+++ b/client/src/sass/include/_bootstrap.scss
@@ -37,7 +37,7 @@
//@import "~bootstrap-sass/assets/stylesheets/bootstrap/panels";
//@import "~bootstrap-sass/assets/stylesheets/bootstrap/responsive-embed";
//@import "~bootstrap-sass/assets/stylesheets/bootstrap/wells";
-@import "~bootstrap-sass/assets/stylesheets/bootstrap/close";
+//@import "~bootstrap-sass/assets/stylesheets/bootstrap/close";
// Components w/ JavaScript
@import "~bootstrap-sass/assets/stylesheets/bootstrap/modals";
diff --git a/client/src/sass/include/_mixins.scss b/client/src/sass/include/_mixins.scss
index a07bd5d28..252cf2173 100644
--- a/client/src/sass/include/_mixins.scss
+++ b/client/src/sass/include/_mixins.scss
@@ -22,6 +22,14 @@
}
}
+@mixin peertube-textarea ($width, $height) {
+ @include peertube-input-text($width);
+
+ height: $height;
+ padding: 5px 15px;
+ font-size: 15px;
+}
+
@mixin orange-button {
&, &:active, &:focus {
color: #fff;
@@ -101,6 +109,7 @@
overflow: hidden;
background: #fff;
position: relative;
+ font-size: 15px;
&:after {
top: 50%;
@@ -149,6 +158,44 @@
}
}
+// Thanks: https://codepen.io/triss90/pen/XNEdRe/
+@mixin peertube-radio-container {
+ input[type="radio"] {
+ display: none;
+
+ & + label {
+ font-weight: $font-regular;
+ cursor: pointer;
+
+ &:before {
+ position: relative;
+ top: -2px;
+ content: '';
+ background: #fff;
+ border-radius: 100%;
+ border: 1px solid #000;
+ display: inline-block;
+ width: 15px;
+ height: 15px;
+ vertical-align: middle;
+ cursor: pointer;
+ text-align: center;
+ margin-right: 10px;
+ }
+ }
+
+ &:checked + label:before {
+ background-color: #000;
+ box-shadow: inset 0 0 0 4px #fff;
+ }
+
+ &:focus + label:before {
+ outline: none;
+ border-color: #000;
+ }
+ }
+}
+
@mixin peertube-checkbox ($border-width) {
display: none;
diff --git a/server/lib/cache/videos-preview-cache.ts b/server/lib/cache/videos-preview-cache.ts
index 28908b186..0eb43efcc 100644
--- a/server/lib/cache/videos-preview-cache.ts
+++ b/server/lib/cache/videos-preview-cache.ts
@@ -47,7 +47,7 @@ class VideosPreviewCache {
}
private async loadPreviews (key: string) {
- const video = await VideoModel.loadByUUID(key)
+ const video = await VideoModel.loadByUUIDAndPopulateAccountAndServerAndTags(key)
if (!video) return undefined
if (video.isOwned()) throw new Error('Cannot load preview of owned video.')