]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/videos/+video-watch/video-watch.component.html
Display error message in signup page (#128)
[github/Chocobozzz/PeerTube.git] / client / src / app / videos / +video-watch / video-watch.component.html
CommitLineData
d1992b93
C
1<div *ngIf="error" class="row">
2 <div class="alert alert-danger">
3 The video load seems to be abnormally long.
4 <ul>
60862425 5 <li>Maybe the server {{ video.serverHost }} is down :(</li>
d1992b93
C
6 <li>
7 If not, you can report an issue on
8 <a href="https://github.com/Chocobozzz/PeerTube/issues" title="Report an issue">
9 https://github.com/Chocobozzz/PeerTube/issues
10 </a>
11 </li>
12 </ul>
13 </div>
3ad109e4
C
14</div>
15
d1992b93 16<div class="row">
897ec54d
C
17 <!-- We need the video container for videojs so we just hide it -->
18 <div [hidden]="videoNotFound" class="embed-responsive embed-responsive-19by9">
e14852b4 19 <video id="video-container" class="video-js vjs-sublime-skin"></video>
d1992b93 20 </div>
897ec54d
C
21
22 <div *ngIf="videoNotFound" id="video-not-found">Video not found :'(</div>
dc8bc31b 23</div>
da932efc 24
fd45e8f4 25<!-- P2P information -->
d1992b93 26<div id="torrent-info" class="row">
a64668c0
C
27 <div id="torrent-info-download" class="col-md-4 col-sm-4 col-xs-4">Download: {{ downloadSpeed | bytes }}/s</div>
28 <div id="torrent-info-upload" class="col-md-4 col-sm-4 col-xs-4">Upload: {{ uploadSpeed | bytes }}/s</div>
29 <div id="torrent-info-peers" class="col-md-4 col-sm-4 col-xs-4">Number of peers: {{ numPeers }}</div>
d1992b93
C
30</div>
31
d6e32a2e 32<!-- Video information -->
d1992b93 33<div *ngIf="video !== null" id="video-info">
09223546 34 <div class="row video-name-views">
3eeeb87f 35 <div class="col-xs-8 col-md-8 video-name">
09223546
C
36 {{ video.name }}
37 </div>
d1992b93 38
3eeeb87f 39 <div class="col-xs-4 col-md-4 pull-right video-views">
09223546 40 {{ video.views}} views
d1992b93 41 </div>
09223546 42 </div>
d1992b93 43
09223546 44 <div class="row video-small-blocks">
1e1265b3
C
45 <div class="col-xs-5 col-xs-3 col-md-3 video-small-block video-small-block-account">
46 <a class="option" title="Access to all videos of this user" [routerLink]="['/videos/list', { field: 'account', search: video.account }]">
4e1b0973
C
47 <span class="glyphicon glyphicon-user"></span>
48 <span class="video-small-block-text">{{ video.by }}</span>
09223546
C
49 </a>
50 </div>
d38b8281 51
3eeeb87f 52 <div class="col-xs-2 col-md-3 video-small-block video-small-block-share">
09223546
C
53 <a class="option" (click)="showShareModal()" title="Share the video">
54 <span class="glyphicon glyphicon-share"></span>
a01f107b 55 <span class="hidden-xs video-small-block-text">Share</span>
09223546
C
56 </a>
57 </div>
99cc4f49 58
3eeeb87f 59 <div class="col-xs-2 col-md-3 video-small-block video-small-block-more">
09223546
C
60 <div class="video-small-block-dropdown" dropdown dropup="true" placement="right">
61 <a class="option" title="Access to more options" dropdownToggle>
62 <span class="glyphicon glyphicon-option-horizontal"></span>
a01f107b 63 <span class="hidden-xs video-small-block-text">More</span>
09223546 64 </a>
05a9feaa 65
ad42bea3 66 <ul *dropdownMenu class="dropdown-menu" id="more-menu" role="menu" aria-labelledby="single-button">
d8e689b8 67 <li *ngIf="canUserUpdateVideo()" role="menuitem">
0a6658fd 68 <a class="dropdown-item" title="Update this video" href="#" [routerLink]="[ '/videos/edit', video.uuid ]">
d8e689b8
C
69 <span class="glyphicon glyphicon-pencil"></span> Update
70 </a>
71 </li>
72
4f8c0eb0 73 <li role="menuitem">
a96aed15
C
74 <a class="dropdown-item" title="Download the video" href="#" (click)="showDownloadModal($event)">
75 <span class="glyphicon glyphicon-download-alt"></span> Download
05a9feaa
C
76 </a>
77 </li>
78
79 <li *ngIf="isUserLoggedIn()" role="menuitem">
80 <a class="dropdown-item" title="Report this video" href="#" (click)="showReportModal($event)">
4f8c0eb0
C
81 <span class="glyphicon glyphicon-alert"></span> Report
82 </a>
83 </li>
198b205c 84
ab683a8e
C
85 <li *ngIf="isVideoRemovable()" role="menuitem">
86 <a class="dropdown-item" title="Delete this video" href="#" (click)="removeVideo($event)">
87 <span class="glyphicon glyphicon-remove"></span> Delete
88 </a>
89 </li>
90
91 <li *ngIf="isVideoBlacklistable()" role="menuitem">
92 <a class="dropdown-item" title="Blacklist this video" href="#" (click)="blacklistVideo($event)">
93 <span class="glyphicon glyphicon-eye-close"></span> Blacklist
94 </a>
95 </li>
4f8c0eb0
C
96 </ul>
97 </div>
d1992b93 98 </div>
d1992b93 99
3eeeb87f 100 <div class="col-xs-3 col-md-3 video-small-block video-small-block-rating">
09223546
C
101 <div class="video-small-block-like">
102 <span
103 class="glyphicon glyphicon-thumbs-up" title="Like this video"
104 [ngClass]="{ 'interactive': isUserLoggedIn(), 'activated': userRating === 'like' }" (click)="setLike()"
105 ></span>
05a9feaa 106
09223546
C
107 <span class="video-small-block-text">
108 {{ video.likes }}
109 </span>
110 </div>
d1992b93 111
09223546
C
112 <div class="video-small-block-dislike">
113 <span
114 class="glyphicon glyphicon-thumbs-down" title="Dislike this video"
115 [ngClass]="{ 'interactive': isUserLoggedIn(), 'activated': userRating === 'dislike' }" (click)="setDislike()"
116 ></span>
6e07c3de 117
09223546
C
118 <span class="video-small-block-text">
119 {{ video.dislikes }}
120 </span>
121 </div>
d07137b9
C
122 </div>
123 </div>
124
09223546 125 <div class="row video-details">
3eeeb87f 126 <div class="video-details-date-description col-xs-8 col-md-9">
09223546
C
127 <div class="video-details-date">
128 Published on {{ video.createdAt | date:'short' }}
129 </div>
130
9d9597df 131 <div class="video-details-description" [innerHTML]="videoHTMLDescription"></div>
2de96f4d
C
132
133 <div *ngIf="completeDescriptionShown === false && video.description.length === 250" (click)="showMoreDescription()" class="video-details-description-more">
134 Show more
135 <span class="glyphicon glyphicon-menu-down"></span>
136 </div>
137
138 <div *ngIf="completeDescriptionShown === true" (click)="showLessDescription()" class="video-details-description-more">
139 Show less
140 <span class="glyphicon glyphicon-menu-up"></span>
141 </div>
db216afd 142 </div>
db216afd 143
3eeeb87f 144 <div class="video-details-attributes col-xs-4 col-md-3">
fd45e8f4
C
145 <div class="video-details-attribute">
146 <span class="video-details-attribute-label">
147 Privacy:
148 </span>
149 <span class="video-details-attribute-value">
150 {{ video.privacyLabel }}
151 </span>
152 </div>
153
09223546
C
154 <div class="video-details-attribute">
155 <span class="video-details-attribute-label">
156 Category:
157 </span>
158 <span class="video-details-attribute-value">
159 {{ video.categoryLabel }}
160 </span>
161 </div>
162
163 <div class="video-details-attribute">
164 <span class="video-details-attribute-label">
165 Licence:
166 </span>
167 <span class="video-details-attribute-value">
168 {{ video.licenceLabel }}
169 </span>
170 </div>
171
172 <div class="video-details-attribute">
173 <span class="video-details-attribute-label">
174 Language:
175 </span>
176 <span class="video-details-attribute-value">
177 {{ video.languageLabel }}
178 </span>
179 </div>
8ce9e815
C
180
181 <div class="video-details-attribute">
182 <span class="video-details-attribute-label">
183 Tags:
184 </span>
185
186 <div class="video-details-tags">
187 <a *ngFor="let tag of video.tags" [routerLink]="['/videos/list', { field: 'tags', search: tag }]" class="label label-primary">
188 {{ tag }}
189 </a>
190 </div>
191 </div>
192
d1992b93
C
193 </div>
194 </div>
195</div>
196
ad42bea3 197<ng-template [ngIf]="video !== null">
4f8c0eb0 198 <my-video-share #videoShareModal [video]="video"></my-video-share>
a96aed15 199 <my-video-download #videoDownloadModal [video]="video"></my-video-download>
4f8c0eb0 200 <my-video-report #videoReportModal [video]="video"></my-video-report>
ad42bea3 201</ng-template>