refactor: added enrollment api
diff --git a/erpnext/www/lms/macros/hero.html b/erpnext/www/lms/macros/hero.html
index 8c09580..89011b2 100644
--- a/erpnext/www/lms/macros/hero.html
+++ b/erpnext/www/lms/macros/hero.html
@@ -1,20 +1,50 @@
-{% macro hero(title, description, is_enrolled) %}
+{% macro hero(title, description, has_access) %}
<div class='container pb-5'>
- <h1>{{ title}}</h1>
+ <h1>{{ title }} </h1>
<p class='lead' style="max-width: 100%;">{{ description }}</p>
<p class="mt-4">
{% if frappe.session.user == 'Guest' %}
<a id="signup" class="btn btn-primary btn-lg" href="/login#signup">Sign Up</a>
- {% elif not is_enrolled %}
- <button id="enroll" class="btn btn-primary btn-lg" onclick="enroll()">Enroll</button>
+ {% elif not has_access %}
+ <button id="enroll" class="btn btn-primary btn-lg" onclick="enroll()" disabled>Enroll</button>
{% endif %}
</p>
</div>
{% block script %}
<script type="text/javascript">
+ frappe.ready(() => {
+ btn = document.getElementById('enroll');
+ if (btn) btn.disabled = false;
+ })
+
function enroll() {
- console.log(frappe.utils.get_query_params())
+ let params = frappe.utils.get_query_params()
+ console.log(params.program)
+ let btn = document.getElementById('enroll');
+ btn.disbaled = true;
+ btn.innerText = 'Enrolling...'
+
+ let opts = {
+ method: 'erpnext.education.utils.enroll_in_program',
+ args: {
+ program_name: params.program
+ }
+ }
+
+ frappe.call(opts).then(res => {
+ console.log(res)
+ let success_dialog = new frappe.ui.Dialog({
+ title: __('Success'),
+ secondary_action: function() {
+ window.location.reload()
+ }
+ })
+ success_dialog.set_message('You have successfully enrolled for the program ');
+ success_dialog.$message.show()
+ success_dialog.show();
+ btn.disbaled = false;
+ })
}
</script>
{% endblock %}