dashboard
5 months ago
profile-cards
5 years ago
profile-header
6 months ago
already-logged-in.php
5 months ago
auth-forms.css
5 months ago
auth-forms.min.css
5 months ago
clean.php
5 years ago
login-form.php
5 months ago
lost-password-form.php
5 months ago
members.php
6 months ago
modal-login-form.php
1 week ago
public-profile.php
6 months ago
reg-form.php
1 week ago
reset-password-form.php
5 months ago
review-user-status.php
1 week ago
user-favourites.php
5 years ago
modal-login-form.php
396 lines
| 1 | <?php use WPDM\__\__; |
| 2 | use WPDM\__\Session; |
| 3 | |
| 4 | if(!defined('ABSPATH')) die(); |
| 5 | |
| 6 | wp_enqueue_style('wpdm-auth-forms', \WPDM\__\Template::locate_url('auth-forms.css', __DIR__), [], WPDM_VERSION); |
| 7 | |
| 8 | $site_icon = get_site_icon_url(); |
| 9 | $site_name = get_bloginfo('name'); |
| 10 | ?> |
| 11 | <div class="w3eden"> |
| 12 | |
| 13 | <!-- Modal Login Form --> |
| 14 | <div class="wpdm-login-modal" id="wpdmloginmodal" role="dialog" aria-labelledby="wpdmloginmodal-title" aria-hidden="true"> |
| 15 | <div class="wpdm-login-modal__backdrop"></div> |
| 16 | <div class="wpdm-login-modal__container"> |
| 17 | <div class="wpdm-auth-split wpdm-login-modal__split"> |
| 18 | <div class="wpdm-auth-panel wpdm-login-modal__panel"> |
| 19 | |
| 20 | <!-- Left decorative panel --> |
| 21 | <div class="wpdm-auth-left"> |
| 22 | <div class="wpdm-auth-grid"></div> |
| 23 | <div class="wpdm-auth-circles"> |
| 24 | <div class="wpdm-auth-circle"></div> |
| 25 | <div class="wpdm-auth-circle"></div> |
| 26 | <div class="wpdm-auth-circle"></div> |
| 27 | <div class="wpdm-auth-circle"></div> |
| 28 | </div> |
| 29 | <div class="wpdm-auth-brand"> |
| 30 | <a href="<?php echo esc_url(home_url('/')); ?>"> |
| 31 | <?php if ($site_icon): ?> |
| 32 | <img src="<?php echo esc_url($site_icon); ?>" alt="<?php echo esc_attr($site_name); ?>" id="wpdm_modal_login_logo" /> |
| 33 | <?php else: ?> |
| 34 | <div class="wpdm-auth-brand-icon" id="wpdm_modal_login_logo"> |
| 35 | <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3" /></svg> |
| 36 | </div> |
| 37 | <?php endif; ?> |
| 38 | <?php echo esc_html($site_name); ?> |
| 39 | </a> |
| 40 | </div> |
| 41 | <div class="wpdm-auth-welcome"> |
| 42 | <div class="wpdm-auth-welcome-sub"><?php _e('Welcome back', 'download-manager'); ?></div> |
| 43 | <div class="wpdm-auth-welcome-title"><?php _e('Sign In', 'download-manager'); ?></div> |
| 44 | <div class="wpdm-auth-welcome-line"></div> |
| 45 | <div class="wpdm-auth-welcome-text"><?php _e('Sign in to access your downloads, manage your account, and continue where you left off.', 'download-manager'); ?></div> |
| 46 | </div> |
| 47 | </div> |
| 48 | |
| 49 | <!-- Right form panel --> |
| 50 | <div class="wpdm-auth-right"> |
| 51 | |
| 52 | <!-- Close button --> |
| 53 | <button type="button" class="wpdm-login-modal__close" id="wpdm-modal-close" aria-label="<?php esc_attr_e('Close', 'download-manager'); ?>"> |
| 54 | <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" /></svg> |
| 55 | </button> |
| 56 | |
| 57 | <div class="wpdm-auth-form-header"> |
| 58 | <div class="wpdm-auth-form-title" id="wpdmloginmodal-title"><?php _e('Login Account', 'download-manager'); ?></div> |
| 59 | <div class="wpdm-auth-form-desc"><?php _e('Enter your credentials to access your account', 'download-manager'); ?></div> |
| 60 | </div> |
| 61 | |
| 62 | <?php do_action("wpdm_before_login_form"); ?> |
| 63 | |
| 64 | <form name="loginform" id="modalloginform" action="" method="post" class="login-form"> |
| 65 | |
| 66 | <input type="hidden" name="permalink" value="<?php the_permalink(); ?>" /> |
| 67 | |
| 68 | <?php echo WPDM()->user->login->formFields(); ?> |
| 69 | |
| 70 | <?php if(isset($params['note_after'])) { ?> |
| 71 | <div class="wpdm-auth-alert info"> |
| 72 | <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" /></svg> |
| 73 | <?php echo esc_html($params['note_after']); ?> |
| 74 | </div> |
| 75 | <?php } ?> |
| 76 | |
| 77 | <?php do_action("wpdm_login_form"); ?> |
| 78 | <?php do_action("login_form"); ?> |
| 79 | |
| 80 | <div class="wpdm-auth-meta"> |
| 81 | <label class="wpdm-auth-remember"> |
| 82 | <input name="rememberme" type="checkbox" id="rememberme" value="forever" /> |
| 83 | <span class="wpdm-auth-check"> |
| 84 | <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="3" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m4.5 12.75 6 6 9-13.5" /></svg> |
| 85 | </span> |
| 86 | <?php _e('Remember Me', 'download-manager'); ?> |
| 87 | </label> |
| 88 | <a class="wpdm-auth-forgot" href="<?php echo esc_url(wpdm_lostpassword_url()); ?>"><?php _e('Forgot Password?', 'download-manager'); ?></a> |
| 89 | </div> |
| 90 | |
| 91 | <input type="hidden" name="redirect_to" id="wpdm_modal_login_redirect_to" value="<?php echo esc_url(__::valueof($_SERVER, 'REQUEST_URI', ['validate' => 'escs'])); ?>" /> |
| 92 | |
| 93 | <button type="submit" name="wp-submit" id="wpdmloginmodal-submit" class="wpdm-auth-btn"> |
| 94 | <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0 3-3m0 0-3-3m3 3H9" /></svg> |
| 95 | <?php _e('Sign In', 'download-manager'); ?> |
| 96 | </button> |
| 97 | |
| 98 | </form> |
| 99 | |
| 100 | <?php do_action("wpdm_after_login_form"); ?> |
| 101 | |
| 102 | <?php |
| 103 | $__wpdm_social_login = get_option('__wpdm_social_login'); |
| 104 | $__wpdm_social_login = is_array($__wpdm_social_login) ? $__wpdm_social_login : array(); |
| 105 | if(is_array($__wpdm_social_login) && count($__wpdm_social_login) > 1) { ?> |
| 106 | |
| 107 | <div class="wpdm-auth-divider"><?php _e('or continue with', 'download-manager'); ?></div> |
| 108 | |
| 109 | <div class="wpdm-auth-social"> |
| 110 | <?php if(isset($__wpdm_social_login['google'])){ ?> |
| 111 | <button type="button" onclick="return _PopupCenter('<?php echo esc_url(home_url('/?sociallogin=google')); ?>', 'Google', 400,400);" title="Google" class="wpdm-auth-social-btn google"> |
| 112 | <svg viewBox="0 0 24 24"><path fill="currentColor" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z"/><path fill="currentColor" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/><path fill="currentColor" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/><path fill="currentColor" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/></svg> |
| 113 | </button> |
| 114 | <?php } ?> |
| 115 | <?php if(isset($__wpdm_social_login['facebook'])){ ?> |
| 116 | <button type="button" onclick="return _PopupCenter('<?php echo esc_url(home_url('/?sociallogin=facebook')); ?>', 'Facebook', 400,400);" title="Facebook" class="wpdm-auth-social-btn facebook"> |
| 117 | <svg viewBox="0 0 24 24"><path fill="currentColor" d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg> |
| 118 | </button> |
| 119 | <?php } ?> |
| 120 | <?php if(isset($__wpdm_social_login['twitter'])){ ?> |
| 121 | <button type="button" onclick="return _PopupCenter('<?php echo esc_url(home_url('/?sociallogin=twitter')); ?>', 'Twitter', 400,400);" title="X" class="wpdm-auth-social-btn twitter"> |
| 122 | <svg viewBox="0 0 24 24"><path fill="currentColor" d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> |
| 123 | </button> |
| 124 | <?php } ?> |
| 125 | <?php if(isset($__wpdm_social_login['linkedin'])){ ?> |
| 126 | <button type="button" onclick="return _PopupCenter('<?php echo esc_url(home_url('/?sociallogin=linkedin')); ?>', 'LinkedIn', 400,400);" title="LinkedIn" class="wpdm-auth-social-btn linkedin"> |
| 127 | <svg viewBox="0 0 24 24"><path fill="currentColor" d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> |
| 128 | </button> |
| 129 | <?php } ?> |
| 130 | </div> |
| 131 | |
| 132 | <?php } ?> |
| 133 | |
| 134 | <?php if(isset($regurl) && $regurl != ''){ ?> |
| 135 | <div class="wpdm-auth-link"> |
| 136 | <?php _e("Don't have an account?", 'download-manager'); ?> |
| 137 | <a href="<?php echo esc_url($regurl); ?>"><?php _e('Register Now', 'download-manager'); ?></a> |
| 138 | </div> |
| 139 | <?php } ?> |
| 140 | |
| 141 | </div> |
| 142 | |
| 143 | </div> |
| 144 | </div> |
| 145 | </div> |
| 146 | </div> |
| 147 | |
| 148 | </div> |
| 149 | |
| 150 | <style> |
| 151 | /* Modal overlay & container */ |
| 152 | .wpdm-login-modal { |
| 153 | display: none; |
| 154 | position: fixed; |
| 155 | inset: 0; |
| 156 | z-index: 999999; |
| 157 | overflow-y: auto; |
| 158 | -webkit-overflow-scrolling: touch; |
| 159 | } |
| 160 | |
| 161 | .wpdm-login-modal--open { |
| 162 | display: block; |
| 163 | } |
| 164 | |
| 165 | .wpdm-login-modal__backdrop { |
| 166 | position: fixed; |
| 167 | inset: 0; |
| 168 | background: rgba(15, 23, 42, 0.6); |
| 169 | backdrop-filter: blur(4px); |
| 170 | -webkit-backdrop-filter: blur(4px); |
| 171 | opacity: 0; |
| 172 | transition: opacity 0.3s ease; |
| 173 | } |
| 174 | |
| 175 | .wpdm-login-modal--open .wpdm-login-modal__backdrop { |
| 176 | opacity: 1; |
| 177 | } |
| 178 | |
| 179 | .wpdm-login-modal__container { |
| 180 | display: flex; |
| 181 | align-items: center; |
| 182 | justify-content: center; |
| 183 | min-height: 100%; |
| 184 | padding: 24px; |
| 185 | } |
| 186 | |
| 187 | .wpdm-login-modal__split { |
| 188 | position: relative; |
| 189 | z-index: 1; |
| 190 | padding: 0; |
| 191 | min-height: auto; |
| 192 | opacity: 0; |
| 193 | transform: scale(0.95) translateY(10px); |
| 194 | transition: opacity 0.3s ease, transform 0.3s ease; |
| 195 | } |
| 196 | |
| 197 | .wpdm-login-modal--open .wpdm-login-modal__split { |
| 198 | opacity: 1; |
| 199 | transform: scale(1) translateY(0); |
| 200 | } |
| 201 | |
| 202 | .wpdm-login-modal__panel { |
| 203 | max-width: 820px; |
| 204 | min-height: 480px; |
| 205 | } |
| 206 | |
| 207 | /* Close button */ |
| 208 | .wpdm-login-modal__close { |
| 209 | position: absolute; |
| 210 | top: 12px; |
| 211 | right: 12px; |
| 212 | width: 32px; |
| 213 | height: 32px; |
| 214 | border-radius: 8px; |
| 215 | border: 1px solid var(--auth-border, #e2e8f0); |
| 216 | background: var(--auth-bg, #ffffff); |
| 217 | color: var(--auth-text, #1e293b); |
| 218 | cursor: pointer; |
| 219 | display: flex; |
| 220 | align-items: center; |
| 221 | justify-content: center; |
| 222 | transition: all 0.15s ease; |
| 223 | z-index: 2; |
| 224 | padding: 0; |
| 225 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); |
| 226 | } |
| 227 | |
| 228 | .wpdm-login-modal__close svg { |
| 229 | width: 16px; |
| 230 | height: 16px; |
| 231 | } |
| 232 | |
| 233 | .wpdm-login-modal__close:hover { |
| 234 | background: var(--auth-input-bg, #f1f5f9); |
| 235 | border-color: var(--auth-text-muted, #94a3b8); |
| 236 | } |
| 237 | |
| 238 | /* Body scroll lock */ |
| 239 | body.wpdm-modal-open { |
| 240 | overflow: hidden; |
| 241 | } |
| 242 | |
| 243 | /* Responsive */ |
| 244 | @media (max-width: 768px) { |
| 245 | .wpdm-login-modal__container { |
| 246 | padding: 16px; |
| 247 | align-items: flex-start; |
| 248 | padding-top: 40px; |
| 249 | } |
| 250 | |
| 251 | .wpdm-login-modal__panel { |
| 252 | max-width: 100%; |
| 253 | min-height: auto; |
| 254 | } |
| 255 | } |
| 256 | |
| 257 | /* Dark mode */ |
| 258 | .w3eden.dark-mode .wpdm-login-modal__close { |
| 259 | background: #1e293b; |
| 260 | border-color: #475569; |
| 261 | color: #f1f5f9; |
| 262 | } |
| 263 | |
| 264 | .w3eden.dark-mode .wpdm-login-modal__close:hover { |
| 265 | background: #334155; |
| 266 | border-color: #64748b; |
| 267 | } |
| 268 | |
| 269 | .w3eden.dark-mode .wpdm-login-modal__backdrop { |
| 270 | background: rgba(0, 0, 0, 0.7); |
| 271 | } |
| 272 | |
| 273 | @media (prefers-color-scheme: dark) { |
| 274 | .w3eden:not(.light-mode) .wpdm-login-modal__close { |
| 275 | background: #1e293b; |
| 276 | border-color: #475569; |
| 277 | color: #f1f5f9; |
| 278 | } |
| 279 | |
| 280 | .w3eden:not(.light-mode) .wpdm-login-modal__close:hover { |
| 281 | background: #334155; |
| 282 | border-color: #64748b; |
| 283 | } |
| 284 | |
| 285 | .w3eden:not(.light-mode) .wpdm-login-modal__backdrop { |
| 286 | background: rgba(0, 0, 0, 0.7); |
| 287 | } |
| 288 | } |
| 289 | </style> |
| 290 | |
| 291 | <script> |
| 292 | jQuery(function ($) { |
| 293 | var llbl = $('#wpdmloginmodal-submit').html(); |
| 294 | var __lm_redirect_to = location.href; |
| 295 | var __lm_logo = "<?php echo esc_js(get_site_icon_url()); ?>"; |
| 296 | var $body = $('body'); |
| 297 | var $modal = $('#wpdmloginmodal'); |
| 298 | |
| 299 | function openModal() { |
| 300 | $modal.addClass('wpdm-login-modal--open'); |
| 301 | $body.addClass('wpdm-modal-open'); |
| 302 | setTimeout(function() { |
| 303 | $('#user_login').trigger('focus'); |
| 304 | }, 300); |
| 305 | } |
| 306 | |
| 307 | function closeModal() { |
| 308 | $modal.removeClass('wpdm-login-modal--open'); |
| 309 | $body.removeClass('wpdm-modal-open'); |
| 310 | } |
| 311 | |
| 312 | // Form submit |
| 313 | $('#modalloginform').submit(function () { |
| 314 | var $btn = $('#wpdmloginmodal-submit'); |
| 315 | $btn.html('<span class="wpdm-auth-spinner"></span> <?php _e("Signing In...", "download-manager"); ?>'); |
| 316 | $btn.prop('disabled', true); |
| 317 | $(this).ajaxSubmit({ |
| 318 | error: function(error) { |
| 319 | var msg = error.responseJSON ? error.responseJSON.messages : '<?php _e("Login failed. Please try again.", "download-manager"); ?>'; |
| 320 | $('#modalloginform .wpdm-auth-alert').remove(); |
| 321 | $('#modalloginform').prepend('<div class="wpdm-auth-alert error"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z" /></svg>' + msg + '</div>'); |
| 322 | $btn.html(llbl).prop('disabled', false); |
| 323 | <?php if((int)get_option('__wpdm_recaptcha_loginform', 0) === 1 && get_option('_wpdm_recaptcha_site_key') != ''){ ?> |
| 324 | try { grecaptcha.reset(); } catch (e) {} |
| 325 | <?php } ?> |
| 326 | }, |
| 327 | success: function (res) { |
| 328 | if (!res.success) { |
| 329 | $('#modalloginform .wpdm-auth-alert').remove(); |
| 330 | $('#modalloginform').prepend('<div class="wpdm-auth-alert error"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z" /></svg>' + res.message + '</div>'); |
| 331 | $btn.html(llbl).prop('disabled', false); |
| 332 | <?php if((int)get_option('__wpdm_recaptcha_loginform', 0) === 1 && get_option('_wpdm_recaptcha_site_key') != ''){ ?> |
| 333 | try { grecaptcha.reset(); } catch (e) {} |
| 334 | <?php } ?> |
| 335 | } else { |
| 336 | $btn.html('<span class="wpdm-auth-spinner"></span> ' + res.message); |
| 337 | location.href = __lm_redirect_to; |
| 338 | } |
| 339 | } |
| 340 | }); |
| 341 | return false; |
| 342 | }); |
| 343 | |
| 344 | // Dismiss alerts on click |
| 345 | $body.on('click', '#modalloginform .wpdm-auth-alert', function(){ |
| 346 | $(this).slideUp(200, function() { $(this).remove(); }); |
| 347 | }); |
| 348 | |
| 349 | // Open modal triggers (data-target and class-based) |
| 350 | $body.on('click', 'a[data-target="#wpdmloginmodal"], .wpdmloginmodal-trigger', function (e) { |
| 351 | e.preventDefault(); |
| 352 | if($(this).data('redirect') !== undefined) { |
| 353 | __lm_redirect_to = $(this).data('redirect'); |
| 354 | } |
| 355 | if($(this).data('logo') !== undefined) { |
| 356 | __lm_logo = $(this).data('logo'); |
| 357 | } |
| 358 | if(__lm_logo !== "") { |
| 359 | var $logo = $('#wpdm_modal_login_logo'); |
| 360 | if ($logo.is('img')) { |
| 361 | $logo.attr('src', __lm_logo); |
| 362 | } else { |
| 363 | $logo.replaceWith(WPDM.el('img', {src: __lm_logo, alt: "Logo", id: "wpdm_modal_login_logo", style: "width:36px;height:36px;border-radius:8px;object-fit:cover"})); |
| 364 | } |
| 365 | } |
| 366 | openModal(); |
| 367 | }); |
| 368 | |
| 369 | // Close modal |
| 370 | $body.on('click', '#wpdm-modal-close, .wpdm-login-modal__backdrop', function () { |
| 371 | closeModal(); |
| 372 | }); |
| 373 | |
| 374 | // Close on Escape key |
| 375 | $(document).on('keydown', function(e) { |
| 376 | if (e.key === 'Escape' && $modal.hasClass('wpdm-login-modal--open')) { |
| 377 | closeModal(); |
| 378 | } |
| 379 | }); |
| 380 | |
| 381 | // Ctrl+L shortcut to open |
| 382 | $(window).keydown(function(event) { |
| 383 | if(event.ctrlKey && event.keyCode === 76) { |
| 384 | openModal(); |
| 385 | event.preventDefault(); |
| 386 | } |
| 387 | }); |
| 388 | |
| 389 | // Backwards compatibility: support .modal('show') calls |
| 390 | $modal.modal = function(action) { |
| 391 | if (action === 'show') openModal(); |
| 392 | else if (action === 'hide') closeModal(); |
| 393 | }; |
| 394 | }); |
| 395 | </script> |
| 396 |