}
.icon {
- display: inline-block;
- background-repeat: no-repeat;
- background-size: contain;
- width: 21px;
- height: 21px;
- vertical-align: middle;
+ @include icon(21px);
+
position: relative;
top: -2px;
align-items: center;
.icon {
- cursor: pointer;
- width: 22px;
- height: 22px;
- display: inline-block;
- background-size: contain;
+ @include icon(22px);
&.icon-menu {
background-image: url('../assets/images/header/menu.svg');
.icon.icon-logo {
display: inline-block;
background: url('../assets/images/logo.svg') no-repeat;
- width: 20px;
+ width: 23px;
height: 24px;
}
}
}
.icon.icon-search {
- display: inline-block;
- background: url('../../assets/images/header/search.svg') no-repeat;
- background-size: contain;
- width: 25px;
+ @include icon(25px);
height: 21px;
- vertical-align: middle;
- cursor: pointer;
+
+ background-image: url('../../assets/images/header/search.svg');
+
// yolo
position: absolute;
margin-left: -50px;
@include disable-default-a-behaviour;
.icon {
- width: 22px;
- height: 22px;
- display: inline-block;
+ @include icon(22px);
+
margin-right: 18px;
- background-size: contain;
&.icon-videos-trending {
position: relative;
export const VIDEO_ABUSE_REASON = {
VALIDATORS: [ Validators.required, Validators.minLength(2), Validators.maxLength(300) ],
MESSAGES: {
- 'required': 'Report reason name is required.',
- 'minlength': 'Report reson must be at least 2 characters long.',
- 'maxlength': 'Report reson cannot be more than 300 characters long.'
+ 'required': 'Report reason is required.',
+ 'minlength': 'Report reason must be at least 2 characters long.',
+ 'maxlength': 'Report reason cannot be more than 300 characters long.'
}
}
<button type="button" class="close" aria-label="Close" (click)="hide()">
<span aria-hidden="true">×</span>
</button>
- <h4 class="modal-title">Download</h4>
+ <h4 class="title-page title-page-single">Download</h4>
</div>
<div class="modal-body">
<div *ngFor="let file of video.files" class="resolution-block">
<label>{{ file.resolutionLabel }}</label>
- <a class="btn btn-default " target="_blank" [href]="file.torrentUrl">
- <span class="glyphicon glyphicon-download"></span>
+
+ <a class="orange-button-link " target="_blank" [href]="file.torrentUrl">
+ <span class="icon icon-download"></span>
Torrent file
</a>
- <a class="btn btn-default" target="_blank" [href]="file.fileUrl">
- <span class="glyphicon glyphicon-download"></span>
+ <a class="orange-button-link" target="_blank" [href]="file.fileUrl">
+ <span class="icon icon-download"></span>
Download
</a>
--- /dev/null
+.resolution-block:not(:first-child) {
+ margin-top: 30px;
+}
+
+.orange-button-link {
+ margin-right: 10px;
+}
+
+label {
+ display: block;
+}
+
+.icon {
+ @include icon(21px);
+
+ margin-right: 5px;
+ position: relative;
+ top: -1px;
+
+ &.icon-download {
+ background-image: url('../../../assets/images/video/download-white.svg');
+ }
+}
@Component({
selector: 'my-video-download',
templateUrl: './video-download.component.html',
- styles: [ '.resolution-block { margin-top: 20px; }' ]
+ styleUrls: [ './video-download.component.scss' ]
})
export class VideoDownloadComponent {
@Input() video: VideoDetails = null
<button type="button" class="close" aria-label="Close" (click)="hide()">
<span aria-hidden="true">×</span>
</button>
- <h4 class="modal-title">Report video</h4>
+ <h4 class="title-page title-page-single">Report video</h4>
</div>
<div class="modal-body">
- <form novalidate [formGroup]="form">
+ <form novalidate [formGroup]="form" (ngSubmit)="report()">
<div class="form-group">
<label for="reason">Reason</label>
<textarea
id="reason" class="form-control" placeholder="Reason..."
- formControlName="reason"
+ formControlName="reason" [ngClass]="{ 'input-error': formErrors['reason'] }"
>
</textarea>
- <div *ngIf="formErrors.reason" class="alert alert-danger">
+ <div *ngIf="formErrors.reason" class="form-error">
{{ formErrors.reason }}
</div>
</div>
<div class="form-group">
<input
- type="button" value="Report" class="btn btn-default form-control"
- [disabled]="!form.valid" (click)="report()"
+ type="submit" value="Report" class="orange-button"
+ [disabled]="!form.valid"
>
</div>
</form>
<button type="button" class="close" aria-label="Close" (click)="hide()">
<span aria-hidden="true">×</span>
</button>
- <h4 class="modal-title">Share</h4>
+ <h4 class="title-page title-page-single">Share</h4>
</div>
<div class="modal-body">
padding: 0 10px 0 10px;
.icon {
- display: inline-block;
- background-repeat: no-repeat;
- background-size: contain;
- width: 21px;
- height: 21px;
- vertical-align: middle;
+ @include icon(21px);
+
position: relative;
top: -2px;
top: -1px;
&.icon-download {
- background-image: url('../../../assets/images/video/download.svg');
+ background-image: url('../../../assets/images/video/download-grey.svg');
}
&.icon-alert {
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
+ <title>download</title>
+ <desc>Created with Sketch.</desc>
+ <defs></defs>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+ <g id="Artboard-4" transform="translate(-180.000000, -291.000000)" stroke="#ffffff" stroke-width="2">
+ <g id="84" transform="translate(180.000000, 291.000000)">
+ <path d="M12,3 L12,15" id="Path-58"></path>
+ <polyline id="Path-59" stroke-linejoin="round" transform="translate(12.000000, 14.000000) rotate(-270.000000) translate(-12.000000, -14.000000) " points="9 8 15 14 9 20"></polyline>
+ <path d="M3,18 L3,20.0590859 C3,20.6127331 3.44494889,21.0615528 3.99340349,21.0615528 L20.0067018,21.0615528 C20.5553434,21.0615528 21.0001052,20.6098102 21.0001051,20.0590859 L21.0001049,18" id="Path-12" stroke-linejoin="round"></path>
+ </g>
+ </g>
+ </g>
+</svg>
color: #fff;
background-color: $orange-color;
- &:hover {
+ &:hover, &:active, &:focus, &[disabled] {
+ color: #fff;
background-color: $orange-hoover-color;
}
}
background-color: $grey-color;
color: #585858;
- &:hover {
+ &:hover, &:active, &:focus, &[disabled] {
+ color: #585858;
background-color: $grey-hoover-color;
}
}
width: $size;
height: $size;
}
+
+@mixin icon ($size) {
+ display: inline-block;
+ background-repeat: no-repeat;
+ background-size: contain;
+ width: $size;
+ height: $size;
+ vertical-align: middle;
+ cursor: pointer;
+}
color: #000 !important;
}
}
+
+.modal {
+ .modal-header {
+ border-bottom: none;
+
+ .title-page-single {
+ margin: 0;
+ }
+ }
+}
+
+.orange-button {
+ @include peertube-button;
+ @include orange-button;
+}
+
+.orange-button-link {
+ @include peertube-button-link;
+ @include orange-button;
+}
+
+.grey-button {
+ @include peertube-button;
+ @include grey-button;
+}
+
+.grey-button-link {
+ @include peertube-button-link;
+ @include grey-button;
+}