| Total Complexity | 29 |
| Complexity/F | 4.83 |
| Lines of Code | 77 |
| Function Count | 6 |
| Duplicated Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | |||
| 2 | $(function () { |
||
| 3 | |||
| 4 | var |
||
| 5 | bStarted = false, |
||
| 6 | bShown = false |
||
| 7 | ; |
||
| 8 | |||
| 9 | function ShowRecaptcha() |
||
| 10 | { |
||
| 11 | if (window.Recaptcha) |
||
| 12 | { |
||
| 13 | if (bShown) |
||
| 14 | { |
||
| 15 | window.Recaptcha.reload(); |
||
| 16 | } |
||
| 17 | else |
||
| 18 | { |
||
| 19 | window.Recaptcha.create(window.rl.pluginSettingsGet('recaptcha', 'public_key'), 'recaptcha-place', { |
||
| 20 | 'theme': 'custom', |
||
| 21 | 'lang': window.rl.settingsGet('Language') |
||
| 22 | }); |
||
| 23 | } |
||
| 24 | |||
| 25 | bShown = true; |
||
| 26 | } |
||
| 27 | } |
||
| 28 | |||
| 29 | function StartRecaptcha() |
||
| 30 | { |
||
| 31 | if (!window.Recaptcha) |
||
| 32 | { |
||
| 33 | $.getScript('//www.google.com/recaptcha/api/js/recaptcha_ajax.js', ShowRecaptcha); |
||
| 34 | } |
||
| 35 | else |
||
| 36 | { |
||
| 37 | ShowRecaptcha(); |
||
| 38 | } |
||
| 39 | } |
||
| 40 | |||
| 41 | if (window.rl) |
||
| 42 | { |
||
| 43 | window.rl.addHook('view-model-on-show', function (sName, oViewModel) { |
||
| 44 | if (!bStarted && oViewModel && |
||
| 45 | ('View:RainLoop:Login' === sName || 'View/App/Login' === sName || 'LoginViewModel' === sName || 'LoginAppView' === sName) && |
||
| 46 | window.rl.pluginSettingsGet('recaptcha', 'show_captcha_on_login')) |
||
| 47 | { |
||
| 48 | bStarted = true; |
||
| 49 | StartRecaptcha(); |
||
| 50 | } |
||
| 51 | }); |
||
| 52 | |||
| 53 | window.rl.addHook('ajax-default-request', function (sAction, oParameters) { |
||
| 54 | if ('Login' === sAction && oParameters && bShown && window.Recaptcha) |
||
| 55 | { |
||
| 56 | oParameters['RecaptchaChallenge'] = window.Recaptcha.get_challenge(); |
||
| 57 | oParameters['RecaptchaResponse'] = window.Recaptcha.get_response(); |
||
| 58 | } |
||
| 59 | }); |
||
| 60 | |||
| 61 | window.rl.addHook('ajax-default-response', function (sAction, oData, sType) { |
||
| 62 | if ('Login' === sAction) |
||
| 63 | { |
||
| 64 | if (!oData || 'success' !== sType || !oData['Result']) |
||
| 65 | { |
||
| 66 | if (bShown && window.Recaptcha) |
||
| 67 | { |
||
| 68 | window.Recaptcha.reload(); |
||
| 69 | } |
||
| 70 | else if (oData && oData['Captcha']) |
||
| 71 | { |
||
| 72 | StartRecaptcha(); |
||
| 73 | } |
||
| 74 | } |
||
| 75 | } |
||
| 76 | }); |
||
| 77 | } |
||
| 78 | }); |