Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 1 | {% extends "templates/base.html" %} |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 2 | {% block title %}{{ content.name or 'Content Page' }}{% endblock %} |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 3 | |
| 4 | {% block head_include %} |
| 5 | <style> |
| 6 | div.card-hero-img { |
| 7 | height: 220px; |
| 8 | background-size: cover; |
| 9 | background-repeat: no-repeat; |
| 10 | background-position: center; |
| 11 | background-color: rgb(250, 251, 252); |
| 12 | } |
| 13 | |
| 14 | .card-image-wrapper { |
| 15 | display: flex; |
| 16 | overflow: hidden; |
| 17 | height: 220px; |
| 18 | background-color: rgb(250, 251, 252); |
| 19 | justify-content: center; |
| 20 | } |
| 21 | |
| 22 | .image-body { |
| 23 | align-self: center; |
| 24 | color: #d1d8dd; |
| 25 | font-size: 24px; |
| 26 | font-weight: 600; |
| 27 | line-height: 1; |
| 28 | padding: 20px; |
| 29 | } |
| 30 | </style> |
| 31 | <link rel="stylesheet" href="https://cdn.plyr.io/3.5.3/plyr.css" /> |
| 32 | {% endblock %} |
| 33 | |
| 34 | {% macro navigation() %} |
| 35 | <div class="row"> |
| 36 | <div class="col-md-7"> |
Shivam Mishra | e94e9d2 | 2019-05-30 18:05:00 +0530 | [diff] [blame] | 37 | <h1>{{ content.name }} <span class="small text-muted">({{ position + 1 }}/{{length}})</span></h1> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 38 | </div> |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 39 | <div id="nav-buttons" class="col-md-5 text-right" {{ 'hidden' if content_type=='Quiz' }}> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 40 | {% if previous %} |
Shivam Mishra | 7597baa | 2019-06-05 17:49:42 +0530 | [diff] [blame] | 41 | <a href="/lms/content?program={{ program }}&course={{ course }}&topic={{ topic }}&type={{ previous.content_type }}&content={{ previous.content }}" class='btn text-muted' style="box-shadow: none;">Previous</a> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 42 | {% else %} |
Shivam Mishra | 7597baa | 2019-06-05 17:49:42 +0530 | [diff] [blame] | 43 | <a href="/lms/course?name={{ course }}&program={{ program }}" class='btn text-muted' style="box-shadow: none;">Back to Course</a> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 44 | {% endif %} |
| 45 | |
| 46 | {% if next %} |
Shivam Mishra | e94e9d2 | 2019-05-30 18:05:00 +0530 | [diff] [blame] | 47 | <button id="nextButton" onclick="handle('/lms/content?program={{ program }}&course={{ course }}&topic={{ topic }}&type={{ next.content_type }}&content={{ next.content }}')" class='btn btn-primary' disabled="true">Next</button> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 48 | {% else %} |
Shivam Mishra | e94e9d2 | 2019-05-30 18:05:00 +0530 | [diff] [blame] | 49 | <button id="nextButton" onclick="handle('/lms/course?name={{ course }}&program={{ program }}')" class='btn btn-primary' disabled="true">Finish Topic</button> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 50 | {% endif %} |
| 51 | </div> |
| 52 | </div> |
| 53 | {% endmacro %} |
| 54 | |
| 55 | {% macro video() %} |
| 56 | <div class="mb-5"> |
| 57 | {{ navigation() }} |
| 58 | <div class="text-muted"> |
| 59 | {% if content.duration %} |
| 60 | {{ content.duration }} Mins |
| 61 | {% endif %} |
| 62 | |
| 63 | {% if content.publish_date and content.duration%} |
| 64 | - |
| 65 | {% endif %} |
| 66 | |
| 67 | {% if content.publish_date %} |
| 68 | Published on {{ content.publish_date.strftime('%d, %b %Y') }} |
| 69 | {% endif %} |
| 70 | </div> |
| 71 | </div> |
| 72 | <div id="player" data-plyr-provider="{{ content.provider|lower }}" data-plyr-embed-id="{{ content.url }}"></div> |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 73 | <div class="my-5" style="line-height: 1.8em;"> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 74 | {{ content.description }} |
| 75 | </div> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 76 | {% endmacro %} |
| 77 | |
| 78 | {% macro article() %} |
| 79 | <div class="mb-5"> |
| 80 | {{ navigation() }} |
| 81 | <div class="text-muted"> |
| 82 | {% if content.author or content.publish_date %} |
| 83 | Published |
| 84 | {% endif %} |
| 85 | {% if content.author %} |
| 86 | by {{ content.author }} |
| 87 | {% endif %} |
| 88 | {% if content.publish_date %} |
| 89 | on {{ content.publish_date.strftime('%d, %b %Y') }} |
| 90 | {% endif %} |
| 91 | </div> |
| 92 | </div> |
Shivam Mishra | 24bd07d | 2019-05-30 16:36:58 +0530 | [diff] [blame] | 93 | <div style="line-height: 1.8em;"> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 94 | {{ content.content }} |
| 95 | </div> |
| 96 | {% endmacro %} |
| 97 | |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 98 | {% macro quiz() %} |
| 99 | <div class="mb-5"> |
| 100 | <div class="row"> |
| 101 | <div class="col-md-7"> |
| 102 | <h1>{{ content.name }} <span class="small text-muted">({{ position + 1 }}/{{length}})</span></h1> |
| 103 | </div> |
| 104 | </div> |
| 105 | </div> |
| 106 | <div id="quiz-wrapper"> |
| 107 | </div> |
| 108 | {% endmacro %} |
| 109 | |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 110 | {% block content %} |
| 111 | <section class="section"> |
| 112 | <div> |
| 113 | <div class='container pb-5'> |
| 114 | {% if content_type=='Video' %} |
| 115 | {{ video() }} |
| 116 | {% elif content_type=='Article'%} |
| 117 | {{ article() }} |
| 118 | {% elif content_type=='Quiz' %} |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 119 | {{ quiz() }} |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 120 | {% endif %} |
| 121 | </div> |
| 122 | </div> |
| 123 | </section> |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 124 | {% endblock %} |
| 125 | |
| 126 | {% block script %} |
| 127 | {% if content_type=='Video' %} |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 128 | <script src="https://cdn.plyr.io/3.5.3/plyr.js"></script> |
| 129 | {% elif content_type == 'Quiz' %} |
| 130 | <script src='/assets/erpnext/js/education/lms/quiz.js'></script> |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 131 | {% endif %} |
| 132 | <script> |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 133 | {% if content_type == 'Video' %} |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 134 | const player = new Plyr('#player'); |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 135 | {% elif content_type == 'Quiz' %} |
| 136 | {% if next %} |
| 137 | const quiz_exit_button = 'Next' |
| 138 | const next_url = '/lms/content?program={{ program }}&course={{ course }}&topic={{ topic }}&type={{ next.content_type }}&content={{ next.content }}' |
| 139 | {% else %} |
| 140 | const quiz_exit_button = 'Finish Course' |
| 141 | const next_url = '/lms/course?name={{ course }}&program={{ program }}' |
| 142 | {% endif %} |
| 143 | frappe.ready(() => { |
| 144 | const quiz = new Quiz(document.getElementById('quiz-wrapper'), { |
| 145 | name: '{{ content.name }}', |
| 146 | course: '{{ course }}', |
Shivam Mishra | 8ddb63a | 2019-06-03 14:40:52 +0530 | [diff] [blame] | 147 | program: '{{ program }}', |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 148 | quiz_exit_button: quiz_exit_button, |
| 149 | next_url: next_url |
| 150 | }) |
| 151 | window.quiz = quiz; |
| 152 | }) |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 153 | {% endif %} |
| 154 | |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 155 | {% if content_type != 'Quiz' %} |
| 156 | |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 157 | frappe.ready(() => { |
| 158 | next = document.getElementById('nextButton') |
| 159 | next.disabled = false; |
| 160 | }) |
| 161 | |
Shivam Mishra | e94e9d2 | 2019-05-30 18:05:00 +0530 | [diff] [blame] | 162 | |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 163 | function handle(url) { |
Shivam Mishra | e94e9d2 | 2019-05-30 18:05:00 +0530 | [diff] [blame] | 164 | opts = { |
| 165 | method: "erpnext.education.utils.add_activity", |
| 166 | args: { |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 167 | course: "{{ course }}", |
| 168 | content_type: "{{ content_type }}", |
Shivam Mishra | 8ddb63a | 2019-06-03 14:40:52 +0530 | [diff] [blame] | 169 | content: "{{ content.name }}", |
| 170 | program: "{{ program }}" |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 171 | } |
Shivam Mishra | e94e9d2 | 2019-05-30 18:05:00 +0530 | [diff] [blame] | 172 | } |
| 173 | frappe.call(opts).then(res => { |
| 174 | window.location.href = url; |
| 175 | }) |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 176 | } |
Shivam Mishra | d1a2521 | 2019-06-03 12:57:38 +0530 | [diff] [blame] | 177 | |
| 178 | {% endif %} |
Shivam Mishra | ae2871f | 2019-05-29 13:11:34 +0530 | [diff] [blame] | 179 | </script> |
Shivam Mishra | c8c790a | 2019-05-21 12:04:50 +0530 | [diff] [blame] | 180 | {% endblock %} |