2017-04-15 14:16:14 +00:00
|
|
|
<template>
|
2017-07-06 20:01:26 +00:00
|
|
|
<v-container fluid class="page-container">
|
2017-05-13 14:38:17 +00:00
|
|
|
<div v-if="files.length">
|
2017-07-11 09:35:51 +00:00
|
|
|
<v-layout row wrap style="margin: 0 1% 0 1%;">
|
|
|
|
<v-flex xs12 class="menubar">
|
|
|
|
<v-layout row wrap>
|
2017-07-13 22:08:45 +00:00
|
|
|
<v-flex hidden-sm-and-up xs2></v-flex>
|
|
|
|
<v-flex xs4 sm3 md2 class="menu-eps">
|
2017-05-13 14:38:17 +00:00
|
|
|
<p class="menu-eps-text">{{ nbEps }} {{ episodeLabel }}</p>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
2017-07-13 22:08:45 +00:00
|
|
|
<v-flex xs4 sm2 md2>
|
2017-05-13 14:38:17 +00:00
|
|
|
<history-modal></history-modal>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
2017-07-13 22:08:45 +00:00
|
|
|
<v-flex xs12 sm7 offset-md3 md5 offset-lg4 lg4 offset-xl5 xl3 class="menu-buttons">
|
2017-05-13 14:38:17 +00:00
|
|
|
<v-btn icon
|
|
|
|
class="refresh-button"
|
2017-06-22 12:57:47 +00:00
|
|
|
v-if="!this.$store.state.refreshingLocal"
|
2017-05-13 14:38:17 +00:00
|
|
|
@click.native="refresh()">
|
|
|
|
<v-icon large>refresh</v-icon>
|
|
|
|
</v-btn>
|
2017-06-22 12:57:47 +00:00
|
|
|
<v-btn v-else icon loading
|
|
|
|
class="refresh-button">
|
|
|
|
</v-btn>
|
2017-05-13 14:38:17 +00:00
|
|
|
<v-btn flat dark
|
|
|
|
@click.native="changePath()"
|
|
|
|
class="change-dir-button">
|
|
|
|
Change dir
|
|
|
|
</v-btn>
|
|
|
|
<v-btn secondary dark
|
|
|
|
@click.native="resetLocal()"
|
2017-06-22 12:57:47 +00:00
|
|
|
v-if="!this.$store.state.resettingLocal"
|
2017-05-13 14:38:17 +00:00
|
|
|
class="reset-cache-button">
|
2017-06-27 12:22:57 +00:00
|
|
|
Refresh local info
|
2017-05-13 14:38:17 +00:00
|
|
|
</v-btn>
|
2017-06-22 12:57:47 +00:00
|
|
|
<v-btn secondary dark v-else class="reset-cache-button" loading></v-btn>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
|
|
|
</v-layout>
|
|
|
|
</v-flex>
|
2017-07-06 20:01:26 +00:00
|
|
|
<transition-group name="list">
|
|
|
|
<template v-for="item in files">
|
2017-07-13 22:08:45 +00:00
|
|
|
<v-flex :key="item.path" xs12 sm6 md4 xl3
|
2017-07-17 18:13:10 +00:00
|
|
|
class="elem">
|
2017-07-06 20:01:26 +00:00
|
|
|
<v-card class="elem-content elevation-3" v-ripple="true">
|
|
|
|
<v-card-text class="elem-card">
|
|
|
|
<v-container fluid style="padding: 0;">
|
2017-07-11 09:35:51 +00:00
|
|
|
<v-layout row wrap class="elem-container">
|
2017-07-13 22:08:45 +00:00
|
|
|
<v-flex xs7
|
2017-07-17 18:13:10 +00:00
|
|
|
v-tooltip:top="{ html: item.name }">
|
2017-07-06 20:01:26 +00:00
|
|
|
<h6 class="title ellipsis">{{ item.name }}</h6>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
|
|
|
<v-flex xs2
|
2017-07-17 18:13:10 +00:00
|
|
|
v-tooltip:top="{ html: 'Episode ' + item.ep }"
|
|
|
|
class="elem-ep text-xs-right">
|
2017-07-06 20:01:26 +00:00
|
|
|
<p class="ellipsis ep">{{ item.ep }} / {{ item.numberOfEpisode }}</p>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
2017-07-13 22:08:45 +00:00
|
|
|
<v-flex xs3 class="buttons-container">
|
2017-07-06 20:01:26 +00:00
|
|
|
<v-btn large icon
|
|
|
|
class="play-button"
|
|
|
|
@click.native="playThis(item.path)">
|
|
|
|
<v-icon large>play_circle_outline</v-icon>
|
|
|
|
</v-btn>
|
2017-07-17 18:13:10 +00:00
|
|
|
<v-menu open-on-hover
|
|
|
|
transition="slide-x-transition">
|
|
|
|
<v-btn icon medium slot="activator">
|
|
|
|
<v-icon>more_vert</v-icon>
|
|
|
|
</v-btn>
|
|
|
|
<v-list>
|
|
|
|
<v-list-tile @click.native="showChoices(item.name)">
|
|
|
|
<v-list-tile-action>
|
|
|
|
<v-icon>add_box</v-icon>
|
|
|
|
</v-list-tile-action>
|
|
|
|
<v-list-tile-title>
|
|
|
|
Add to
|
|
|
|
</v-list-tile-title>
|
|
|
|
</v-list-tile>
|
|
|
|
<v-list-tile @click.native="delThis(item.path)">
|
|
|
|
<v-list-tile-action>
|
|
|
|
<v-icon medium class="primary--text">delete_forever</v-icon>
|
|
|
|
</v-list-tile-action>
|
|
|
|
<v-list-tile-title class="primary--text">Delete</v-list-tile-title>
|
|
|
|
</v-list-tile>
|
|
|
|
</v-list>
|
|
|
|
</v-menu>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
2017-07-17 18:13:10 +00:00
|
|
|
<v-flex xs8
|
|
|
|
v-tooltip:top="{ html: item.genres.length ? item.genres.join(', ') : 'No specified genre' }">
|
|
|
|
<p class="ellipsis genres">
|
|
|
|
{{ item.genres.length ? item.genres.join(', ') : 'No specified genre' }}
|
|
|
|
</p>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
|
|
|
<v-flex xs4 v-tooltip:top="{ html: item.classification.replace('None', 'No restriction') }">
|
2017-07-06 20:01:26 +00:00
|
|
|
<p class="ellipsis classification">
|
|
|
|
{{ item.classification.replace('None', 'No restriction') }}
|
|
|
|
</p>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
|
|
|
<v-flex xl5 lg4 md5 sm3 xs4 class="picture-container">
|
2017-07-11 14:49:19 +00:00
|
|
|
<img :src="item.picture" class="picture">
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
|
|
|
<v-flex xl7 lg8 md7 sm9 xs8 class="bottom-right-container">
|
|
|
|
<v-layout row wrap justify-space-between>
|
2017-07-17 18:13:10 +00:00
|
|
|
<v-flex xs12>
|
|
|
|
<div class="synopsis">{{ reduced(item.synopsis) }}</div>
|
|
|
|
</v-flex>
|
2017-07-11 14:49:19 +00:00
|
|
|
<v-flex xs12 style="display: flex">
|
|
|
|
<v-layout align-center justify-space-between style="min-width: 100%">
|
2017-07-11 09:35:51 +00:00
|
|
|
<v-flex xs2>
|
|
|
|
<p class="year">{{ item.year }}</p>
|
|
|
|
</v-flex>
|
|
|
|
<v-flex xs7>
|
|
|
|
<p class="status">{{ item.status }}</p>
|
|
|
|
</v-flex>
|
|
|
|
<v-flex xs3><p class="mark">{{ item.mark }}</p></v-flex>
|
|
|
|
</v-layout>
|
|
|
|
</v-flex>
|
|
|
|
</v-layout>
|
|
|
|
</v-flex>
|
|
|
|
</v-layout>
|
2017-07-06 20:01:26 +00:00
|
|
|
</v-container>
|
|
|
|
</v-card-text>
|
|
|
|
</v-card>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
2017-07-06 20:01:26 +00:00
|
|
|
</template>
|
|
|
|
</transition-group>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-layout>
|
2017-05-13 14:38:17 +00:00
|
|
|
</div>
|
|
|
|
<v-container fluid v-else>
|
2017-07-06 20:01:26 +00:00
|
|
|
<transition name="fade">
|
|
|
|
<img v-if="emptyBg" class="empty-bg" height="400" src="~static/images/empty-bg.png"/>
|
|
|
|
</transition>
|
2017-07-11 09:35:51 +00:00
|
|
|
<v-layout row wrap>
|
|
|
|
<v-flex xs12 class="menubar">
|
|
|
|
<v-layout row wrap>
|
|
|
|
<v-flex offset-xs2 xs2>
|
2017-07-06 20:01:26 +00:00
|
|
|
<history-modal></history-modal>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
|
|
|
<v-flex xs5></v-flex>
|
|
|
|
<v-flex xs3 class="menu-buttons">
|
2017-05-13 14:38:17 +00:00
|
|
|
<v-btn icon
|
|
|
|
class="refresh-button"
|
2017-07-13 22:08:45 +00:00
|
|
|
v-if="!this.$store.state.refreshingLocal"
|
2017-05-13 14:38:17 +00:00
|
|
|
@click.native="refresh()">
|
|
|
|
<v-icon large>refresh</v-icon>
|
|
|
|
</v-btn>
|
2017-07-13 22:08:45 +00:00
|
|
|
<v-btn v-else icon loading
|
|
|
|
class="refresh-button">
|
|
|
|
</v-btn>
|
2017-05-13 14:38:17 +00:00
|
|
|
<v-btn flat dark
|
|
|
|
@click.native="changePath()"
|
|
|
|
class="change-dir-button">
|
|
|
|
Change dir
|
|
|
|
</v-btn>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
|
|
|
</v-layout>
|
|
|
|
</v-flex>
|
|
|
|
<v-flex xs12 class="empty-message">
|
2017-05-13 14:38:17 +00:00
|
|
|
<h3>Wow such empty!</h3>
|
2017-05-25 14:10:44 +00:00
|
|
|
<h4>Start downloading anime
|
|
|
|
<nuxt-link to="/downloader" class="green--text">here</nuxt-link>
|
2017-07-06 20:21:00 +00:00
|
|
|
or
|
|
|
|
<nuxt-link to="/" class="cyan--text">here!</nuxt-link>
|
2017-05-25 14:10:44 +00:00
|
|
|
</h4>
|
2017-07-11 09:35:51 +00:00
|
|
|
</v-flex>
|
|
|
|
</v-layout>
|
2017-05-13 14:38:17 +00:00
|
|
|
</v-container>
|
2017-07-17 18:13:10 +00:00
|
|
|
<choice-window :entry="choiceTitle"></choice-window>
|
2017-05-13 14:38:17 +00:00
|
|
|
</v-container>
|
2017-04-15 14:16:14 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2017-04-30 16:13:42 +00:00
|
|
|
import HistoryModal from '~components/historyModal.vue'
|
2017-07-17 18:13:10 +00:00
|
|
|
import ChoiceWindow from '~components/choiceWindow.vue'
|
2017-04-15 14:16:14 +00:00
|
|
|
import axios from 'axios'
|
|
|
|
|
|
|
|
export default {
|
2017-06-26 20:51:39 +00:00
|
|
|
head () {
|
2017-06-25 23:29:00 +00:00
|
|
|
return {
|
|
|
|
title: 'Local page',
|
|
|
|
meta: [
|
2017-07-06 20:21:00 +00:00
|
|
|
{hid: 'description', name: 'description', content: 'Your local animes'}
|
2017-06-25 23:29:00 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2017-06-22 12:57:47 +00:00
|
|
|
mounted () {
|
2017-07-17 18:13:10 +00:00
|
|
|
setTimeout(() => { this.emptyBg = true }, 1000)
|
2017-07-06 20:01:26 +00:00
|
|
|
|
2017-06-22 12:57:47 +00:00
|
|
|
this.refresh()
|
|
|
|
},
|
2017-07-06 20:01:26 +00:00
|
|
|
beforeDestroy () {
|
|
|
|
this.emptyBg = false
|
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
data () {
|
2017-07-06 20:01:26 +00:00
|
|
|
return {
|
2017-07-17 18:13:10 +00:00
|
|
|
emptyBg: false,
|
|
|
|
choiceTitle: ''
|
2017-07-06 20:01:26 +00:00
|
|
|
}
|
2017-04-15 14:16:14 +00:00
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
files: function () {
|
|
|
|
return this.$store.state.localFiles
|
|
|
|
},
|
|
|
|
nbEps: function () {
|
|
|
|
return this.files.length
|
|
|
|
},
|
|
|
|
episodeLabel: function () {
|
|
|
|
return this.nbEps === 1
|
2017-05-13 14:38:17 +00:00
|
|
|
? 'episode'
|
|
|
|
: 'episodes'
|
2017-04-15 14:16:14 +00:00
|
|
|
}
|
|
|
|
},
|
2017-04-30 16:13:42 +00:00
|
|
|
components: {
|
2017-07-17 18:13:10 +00:00
|
|
|
HistoryModal,
|
|
|
|
ChoiceWindow
|
2017-04-30 16:13:42 +00:00
|
|
|
},
|
2017-04-15 14:16:14 +00:00
|
|
|
methods: {
|
2017-05-13 14:38:17 +00:00
|
|
|
reduced (text) {
|
2017-04-15 14:16:14 +00:00
|
|
|
return text.length > 220 ? text.slice(0, 217) + '...' : text
|
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
playThis (path) {
|
2017-04-18 15:34:36 +00:00
|
|
|
console.log(`[${(new Date()).toLocaleTimeString()}]: Requested to play ${path}. Sending...`)
|
2017-04-15 14:16:14 +00:00
|
|
|
|
|
|
|
// No need to get through store.
|
2017-07-03 18:22:48 +00:00
|
|
|
axios.get(`openThis`, {
|
|
|
|
params: {
|
|
|
|
type: 'video',
|
|
|
|
path: path,
|
|
|
|
dir: this.$store.state.currentDir
|
|
|
|
}
|
|
|
|
}).then((res) => {
|
2017-05-13 14:38:17 +00:00
|
|
|
if (res.status !== 200) { console.log('An error occurred: request to open file ended with a status ' + res.status + '.') }
|
2017-04-24 21:49:56 +00:00
|
|
|
|
|
|
|
this.$store.dispatch('appendHistory', {
|
|
|
|
type: 'Play',
|
2017-05-13 14:38:17 +00:00
|
|
|
text: path.split(' ').slice(1, -1).join(' ')
|
|
|
|
}).catch(err => { void (err) })
|
2017-04-15 14:16:14 +00:00
|
|
|
})
|
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
delThis (path) {
|
2017-04-16 10:57:28 +00:00
|
|
|
console.log(`[${(new Date()).toLocaleTimeString()}]: Requested to delete ${path}. Sending...`)
|
2017-04-15 14:16:14 +00:00
|
|
|
|
2017-07-06 20:01:26 +00:00
|
|
|
this.$store.commit('updateLocalFiles', {
|
|
|
|
type: 'delete',
|
|
|
|
path
|
|
|
|
})
|
|
|
|
|
2017-07-03 18:22:48 +00:00
|
|
|
axios.get(`openThis`, {
|
|
|
|
params: {
|
|
|
|
type: 'delete',
|
|
|
|
path: path,
|
|
|
|
dir: this.$store.state.currentDir
|
|
|
|
}
|
|
|
|
}).then((res) => {
|
2017-05-13 14:38:17 +00:00
|
|
|
if (res.status !== 200) { console.log('An error occurred: request to delete file ended with a status ' + res.status + '.') }
|
2017-04-24 21:49:56 +00:00
|
|
|
|
|
|
|
this.$store.dispatch('appendHistory', {
|
|
|
|
type: 'Delete',
|
2017-05-13 14:38:17 +00:00
|
|
|
text: path.split(' ').slice(1, -1).join(' ')
|
|
|
|
}).catch(err => { void (err) })
|
2017-04-15 14:16:14 +00:00
|
|
|
}).catch((err) => {
|
|
|
|
console.log('An error occurred while trying to delete a file:' + err)
|
|
|
|
})
|
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
refresh () {
|
2017-04-15 14:16:14 +00:00
|
|
|
this.$store.dispatch('refreshLocal')
|
2017-04-24 21:49:56 +00:00
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
changePath () {
|
2017-04-15 14:16:14 +00:00
|
|
|
this.$store.dispatch('changePath')
|
2017-04-23 00:11:51 +00:00
|
|
|
},
|
2017-05-13 14:38:17 +00:00
|
|
|
resetLocal () {
|
2017-04-23 00:11:51 +00:00
|
|
|
this.$store.dispatch('resetLocal')
|
2017-07-17 18:13:10 +00:00
|
|
|
},
|
|
|
|
showChoices (name) {
|
|
|
|
this.choiceTitle = name
|
|
|
|
this.$store.commit('setAddToChoice', true)
|
|
|
|
},
|
2017-04-15 14:16:14 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
2017-07-06 20:01:26 +00:00
|
|
|
.fade-enter-active, .fade-leave-active
|
|
|
|
{
|
|
|
|
transition: opacity .5s
|
|
|
|
}
|
|
|
|
|
|
|
|
.fade-enter, .fade-leave-to
|
|
|
|
{
|
|
|
|
opacity: 0
|
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
h6
|
|
|
|
{
|
|
|
|
color: rgba(255, 255, 255, 0.8);
|
2017-07-12 06:45:04 +00:00
|
|
|
margin-top: 0.7rem;
|
2017-06-03 17:18:03 +00:00
|
|
|
margin-bottom: 0;
|
2017-05-13 14:38:17 +00:00
|
|
|
}
|
|
|
|
|
2017-07-13 22:08:45 +00:00
|
|
|
span
|
|
|
|
{
|
|
|
|
max-width: 100%;
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.ellipsis
|
|
|
|
{
|
|
|
|
overflow: hidden;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
white-space: nowrap;
|
|
|
|
}
|
|
|
|
|
2017-07-06 20:01:26 +00:00
|
|
|
.page-container
|
|
|
|
{
|
2017-07-11 14:49:19 +00:00
|
|
|
min-height: 92vh !important;
|
2017-07-17 18:13:10 +00:00
|
|
|
padding-left: 0;
|
|
|
|
padding-right: 0;
|
2017-07-06 20:01:26 +00:00
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
/* ------------- MENUBAR ------------- */
|
|
|
|
.menubar
|
|
|
|
{
|
|
|
|
margin-top: 2px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.menu-eps-text
|
|
|
|
{
|
|
|
|
color: rgba(255, 255, 255, 0.8);
|
|
|
|
font-size: 16px;
|
|
|
|
font-weight: 800;
|
|
|
|
margin-top: 12px;
|
|
|
|
padding-left: 8%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.refresh-button, .change-dir-button
|
|
|
|
{
|
|
|
|
display: inline-block;
|
|
|
|
}
|
|
|
|
|
|
|
|
.reset-cache-button:hover
|
|
|
|
{
|
|
|
|
border-color: #ff9800 !important;
|
|
|
|
background-color: #ff9800 !important;
|
|
|
|
}
|
|
|
|
|
2017-07-13 22:08:45 +00:00
|
|
|
.menu-buttons
|
|
|
|
{
|
|
|
|
display: flex;
|
|
|
|
justify-content: center;
|
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
/* -------------- ELEMS -------------- */
|
|
|
|
.elem
|
|
|
|
{
|
|
|
|
color: rgba(255, 255, 255, 0.8);
|
|
|
|
margin-bottom: 10px;
|
2017-07-06 20:01:26 +00:00
|
|
|
display: inline-block;
|
2017-05-13 14:38:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.elem-content
|
|
|
|
{
|
|
|
|
background-color: rgb(60, 60, 60);
|
|
|
|
cursor: default;
|
|
|
|
}
|
|
|
|
|
|
|
|
.elem-content:hover
|
|
|
|
{
|
2017-07-13 22:08:45 +00:00
|
|
|
transition: all 0.25s;
|
2017-05-13 14:38:17 +00:00
|
|
|
box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.elem-card
|
|
|
|
{
|
2017-07-11 14:49:19 +00:00
|
|
|
padding: 0 5px 0 0;
|
2017-05-13 14:38:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.elem-container
|
|
|
|
{
|
|
|
|
padding-top: 5px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.title
|
|
|
|
{
|
|
|
|
padding-left: 10px;
|
|
|
|
line-height: 30px;
|
|
|
|
}
|
|
|
|
|
2017-07-13 22:08:45 +00:00
|
|
|
.elem-ep
|
|
|
|
{
|
|
|
|
display: flex;
|
|
|
|
justify-content: center;
|
|
|
|
align-items: center;
|
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.ep
|
|
|
|
{
|
2017-07-13 22:08:45 +00:00
|
|
|
margin: 0;
|
2017-05-13 14:38:17 +00:00
|
|
|
font-size: 15px;
|
|
|
|
font-weight: 800;
|
|
|
|
}
|
|
|
|
|
2017-07-13 22:08:45 +00:00
|
|
|
.buttons-container
|
|
|
|
{
|
|
|
|
display: flex;
|
|
|
|
justify-content: flex-end;
|
|
|
|
align-items: center;
|
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.play-button
|
|
|
|
{
|
|
|
|
display: inline;
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.genres
|
|
|
|
{
|
|
|
|
padding-left: 15px;
|
|
|
|
font-weight: 600;
|
|
|
|
}
|
|
|
|
|
2017-07-13 22:08:45 +00:00
|
|
|
.classification
|
|
|
|
{
|
|
|
|
padding-right: 10px;
|
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.picture-container
|
|
|
|
{
|
|
|
|
height: 220px;
|
|
|
|
max-width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture
|
|
|
|
{
|
|
|
|
max-width: 100%;
|
2017-07-11 14:49:19 +00:00
|
|
|
height: 220px;
|
2017-05-13 14:38:17 +00:00
|
|
|
}
|
|
|
|
|
2017-07-11 09:35:51 +00:00
|
|
|
.bottom-right-container
|
|
|
|
{
|
|
|
|
position: relative;
|
|
|
|
display: flex;
|
|
|
|
}
|
|
|
|
|
2017-05-13 14:38:17 +00:00
|
|
|
.synopsis
|
|
|
|
{
|
|
|
|
padding: 2px 5px 5px 5px;
|
|
|
|
text-align: justify;
|
2017-07-11 09:35:51 +00:00
|
|
|
display: block;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
word-wrap: break-word;
|
|
|
|
overflow: hidden;
|
2017-07-11 14:49:19 +00:00
|
|
|
height: 9em;
|
2017-07-11 09:35:51 +00:00
|
|
|
line-height: 1.5em;
|
2017-05-13 14:38:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
p.year, p.status, p.mark
|
|
|
|
{
|
|
|
|
margin-bottom: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.year
|
|
|
|
{
|
|
|
|
padding-left: 5px;
|
|
|
|
font-weight: 600;
|
|
|
|
}
|
|
|
|
|
|
|
|
.status
|
|
|
|
{
|
|
|
|
text-align: center;
|
|
|
|
font-weight: 600;
|
|
|
|
}
|
|
|
|
|
|
|
|
.mark
|
|
|
|
{
|
|
|
|
font-size: large;
|
|
|
|
font-weight: 900;
|
|
|
|
}
|
|
|
|
|
|
|
|
.empty-message
|
|
|
|
{
|
|
|
|
margin-top: 5%;
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
|
2017-07-06 20:21:00 +00:00
|
|
|
.empty-message h3, h4
|
2017-05-13 14:38:17 +00:00
|
|
|
{
|
|
|
|
color: rgba(255, 255, 255, 0.8);
|
|
|
|
}
|
2017-05-25 14:10:44 +00:00
|
|
|
|
|
|
|
.empty-bg
|
|
|
|
{
|
|
|
|
position: absolute;
|
|
|
|
bottom: 0;
|
|
|
|
left: 5%;
|
|
|
|
}
|
2017-05-13 14:38:17 +00:00
|
|
|
</style>
|