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