brotherton-erpnext/erpnext/public/js/education/lms/components/Video.vue

77 lines
2.3 KiB
Vue
Raw Normal View History

2018-11-01 11:50:04 +00:00
<template>
2018-11-05 05:31:27 +00:00
<div>
<section class='video-top-section video-section-bg'>
2019-02-19 11:31:31 +00:00
<div>
2018-11-05 05:31:27 +00:00
<div class="embed-responsive embed-responsive-16by9">
2019-02-27 10:02:36 +00:00
<iframe class="embed-responsive-item" :src="'https://www.youtube.com/embed/' + videoID" allowfullscreen></iframe>
2018-11-05 05:31:27 +00:00
</div>
<div class="mt-3 row">
<div class="col-md-8">
<h2>{{ contentData.name }}</h2>
<span class="text-muted">
<i class="octicon octicon-clock" title="Duration"></i> {{ contentData.duration }} Mins
&mdash; Published on {{ contentData.publish_date }}.
</span>
</div>
<div class="col-md-4 text-right">
<slot></slot>
</div>
</div>
<hr>
</div>
</section>
<section class="video-description-section">
2019-02-19 11:31:31 +00:00
<div>
2018-11-05 05:31:27 +00:00
<div class="content" :html="contentData.description">
</div>
<div class="text-right hidden">
<a class='btn btn-outline-secondary' href="/classrooms/module">Previous</a>
<a class='btn btn-primary' href="/classrooms/module">Next</a>
</div>
<div class="mt-3 text-right">
<a class="text-muted" href="/report"><i class="octicon octicon-issue-opened" title="Report"></i> Report a
Mistake</a>
</div>
</div>
</section>
</div>
2018-11-01 11:50:04 +00:00
</template>
<script>
export default {
2018-11-05 05:31:27 +00:00
props: ['content', 'type'],
2018-11-13 11:54:07 +00:00
name: 'Video',
2018-11-05 05:31:27 +00:00
data() {
return {
2019-02-27 10:02:36 +00:00
contentData: '',
videoID: '',
2018-11-05 05:31:27 +00:00
}
},
mounted() {
2019-02-27 10:02:36 +00:00
this.getContent()
.then(data => this.contentData = data)
.then((contentData) => this.videoID = this.getVideoID(this.contentData.url))
2018-11-05 05:31:27 +00:00
},
methods: {
getContent() {
return lms.call('get_content', {
type: this.type,
content: this.content
})
2019-02-27 10:02:36 +00:00
},
getVideoID(link) {
if (!Array.prototype.last){
Array.prototype.last = function(){
return this[this.length - 1];
};
};
if (link.includes('v=')){
return link.split('v=')[1].split('&')[0]
}
else if (link.includes('youtu.be')) {
return link.split('/').last().split('?')[0]
}
}
}
2018-11-01 11:50:04 +00:00
};
</script>