Enlarge right column in video-edit on small screens

This commit is contained in:
Rigel Kent 2020-04-02 17:55:03 +02:00
parent 9f77adb8fe
commit 6f02515e2a
No known key found for this signature in database
GPG Key ID: 5E53E96A494E452F
8 changed files with 80 additions and 22 deletions

View File

@ -66,4 +66,4 @@ input[type=submit] {
white-space: nowrap;
}
@include ng2-tags
@include ng2-tags;

View File

@ -1,13 +1,11 @@
<div class="root">
<div class="preview-container">
<my-reactive-file
[inputName]="inputName" [inputLabel]="inputLabel" [extensions]="videoImageExtensions" [maxFileSize]="maxVideoImageSize"
icon="edit" (fileChanged)="onFileChanged($event)"
[inputName]="inputName" [inputLabel]="inputLabel" [extensions]="videoImageExtensions" [maxFileSize]="maxVideoImageSize" placement="right"
icon="edit" (fileChanged)="onFileChanged($event)" [ngbTooltip]="'(extensions: '+ videoImageExtensions +', '+ maxSizeText +': '+ maxVideoImageSizeInBytes +')'"
></my-reactive-file>
<img *ngIf="imageSrc" [ngStyle]="{ width: previewWidth, height: previewHeight }" [src]="imageSrc" class="preview" />
<div *ngIf="!imageSrc" [ngStyle]="{ width: previewWidth, height: previewHeight }" class="preview no-image"></div>
</div>
<div i18n class="file-constraints">(extensions: {{ allowedExtensionsMessage }}, max size: {{ maxVideoImageSize | bytes }})</div>
</div>

View File

@ -16,11 +16,13 @@
}
.preview {
border: 2px solid grey;
object-fit: cover;
border-radius: 4px;
max-width: 100%;
&.no-image {
background-color: #ececec;
border: 2px solid grey;
background-color: var(--mainBackgroundColor);
}
}
}

View File

@ -3,6 +3,8 @@ import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'
import { ServerService } from '@app/core'
import { ServerConfig } from '@shared/models'
import { BytesPipe } from 'ngx-pipes'
import { I18n } from '@ngx-translate/i18n-polyfill'
@Component({
selector: 'my-preview-upload',
@ -24,14 +26,20 @@ export class PreviewUploadComponent implements OnInit, ControlValueAccessor {
imageSrc: SafeResourceUrl
allowedExtensionsMessage = ''
maxSizeText: string
private serverConfig: ServerConfig
private bytesPipe: BytesPipe
private file: Blob
constructor (
private sanitizer: DomSanitizer,
private serverService: ServerService
) {}
private serverService: ServerService,
private i18n: I18n
) {
this.bytesPipe = new BytesPipe()
this.maxSizeText = this.i18n('max size')
}
get videoImageExtensions () {
return this.serverConfig.video.image.extensions
@ -41,6 +49,10 @@ export class PreviewUploadComponent implements OnInit, ControlValueAccessor {
return this.serverConfig.video.image.size.max
}
get maxVideoImageSizeInBytes () {
return this.bytesPipe.transform(this.maxVideoImageSize)
}
ngOnInit () {
this.serverConfig = this.serverService.getTmpConfig()
this.serverService.getConfig()

View File

@ -6,7 +6,7 @@
<ng-template ngbNavContent>
<div class="row">
<div class="col-md-8">
<div class="col-video-edit">
<div class="form-group">
<label i18n for="name">Title</label>
<input type="text" id="name" class="form-control" formControlName="name" />
@ -54,7 +54,7 @@
</div>
</div>
<div class="col-md-4">
<div class="col-video-edit">
<div class="form-group">
<label i18n>Channel</label>
<div class="peertube-select-container">

View File

@ -1,5 +1,11 @@
@import '_variables';
@import '_mixins';
// Bootstrap grid utilities require functions, variables and mixins
@import 'node_modules/bootstrap/scss/functions';
@import 'node_modules/bootstrap/scss/variables';
@import 'node_modules/bootstrap/scss/mixins';
@import 'node_modules/bootstrap/scss/grid';
@import 'variables';
@import 'mixins';
label {
font-weight: $font-regular;
@ -54,6 +60,7 @@ my-peertube-checkbox {
.captions-header {
text-align: right;
margin-bottom: 1rem;
.create-caption {
@include create-button;
@ -68,6 +75,7 @@ my-peertube-checkbox {
a.caption-entry-label {
@include disable-default-a-behaviour;
flex-grow: 1;
color: #000;
&:hover {
@ -153,4 +161,49 @@ p-calendar {
}
}
@include ng2-tags
::ng-deep my-markdown-textarea {
.root {
@include media-breakpoint-down(xl) {
flex-direction: column !important;
}
textarea {
max-width: 100%;
}
}
}
@include ng2-tags;
// columns for the video
.col-video-edit {
@include make-col-ready();
@include media-breakpoint-up(md) {
@include make-col(7);
& + .col-video-edit {
@include make-col(5);
}
}
@include media-breakpoint-up(xl) {
@include make-col(8);
& + .col-video-edit {
@include make-col(4);
}
}
}
:host-context(.expanded) {
.col-video-edit {
@include media-breakpoint-up(md) {
@include make-col(8);
& + .col-video-edit {
@include make-col(4);
}
}
}
}

View File

@ -43,10 +43,4 @@ $width-size: 190px;
.button-file {
@include peertube-button-file(max-content);
}
.button-file-extension {
display: block;
font-size: 12px;
margin-top: 5px;
}
}

View File

@ -2,11 +2,10 @@
<div class="first-step-block">
<my-global-icon class="upload-icon" iconName="upload"></my-global-icon>
<div class="button-file form-control">
<div class="button-file form-control" [ngbTooltip]="'(extensions: ' + videoExtensions + ')'" container="body">
<span i18n>Select the file to upload</span>
<input #videofileInput type="file" name="videofile" id="videofile" [accept]="videoExtensions" (change)="fileChange()" autofocus />
</div>
<span class="button-file-extension">({{ videoExtensions }})</span>
<div class="form-group form-group-channel">
<label i18n for="first-step-channel">Channel</label>