{% macro hero(title, description, has_access, back) %} <div class='container pb-5'> <div class="mb-3"> <a href="{{ back.url }}" class="text-muted"> {{_('Back to')}} {{ _(back.name) }} </a> </div> <h1>{{ title }}</h1> <p class='lead' style="max-width: 100%;">{{ description or ''}}</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 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() { let params = frappe.utils.get_query_params() 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 => { 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 %} {% endmacro %}