Esempio n. 1
0
        successDeposit: function(response) {
            var headerParameters,
                feTime = (new Date()).getTime();

            if (response.data.headerParameters) {
                headerParameters = payment.convertHeaderParameters(response.data.headerParameters);

                if (window.NREUM && window.NREUM.inlineHit) {
                    window.NREUM.inlineHit('Deposit', response.queueTime, 0, response.totalBeTime, 0, (new Date()).getTime() - feTime);
                }

                if (headerParameters.method === 'POST' &&
                    headerParameters.contentType && !_.isEmpty(headerParameters.postData)) {
                    document.body.appendChild(payment.getFormFromHeaderParameters(headerParameters)).submit();
                } else {
                    core.navigate(headerParameters.url, {redirect: true});
                }
            } else {
                // Send notification about success deposit
                core.trigger('app:message', {
                    ID: 'successDeposit',
                    data: {
                        message: 'Success deposit notification',
                        paymentsStatistics: user.get('paymentsStatistics')
                    }
                });

                if (window.NREUM && window.NREUM.inlineHit) {
                    window.NREUM.inlineHit('Deposit', response.queueTime, 0, response.totalBeTime, 0, (new Date()).getTime() - feTime);
                }
            }

            core.trigger('deposit:success');
        },
Esempio n. 2
0
        submit: function() {
            var formData = {};

            core.trigger('registration:sendForm');

            this.childViews.forEach(function(step) {
                $.extend(formData, step.getData());
            }, this);

            $.extend(formData, affilate.getBannerCookie());

            $.extend(formData, referrer.getRefereeCookie());

            referrer.unsetRefereeCookie();

            if (this.options.config.creferer) {
                if (formData.creferer) {
                    formData.creferer += (';' + this.options.config.creferer);
                } else {
                    formData.creferer = this.options.config.creferer;
                }
            }

            if (this.options.config.clienttype) {
                formData['clienttype'] = this.options.config.clienttype;
            }

            if (this.options.config.tcversion) {
                formData['tcVersion'] = this.options.config.tcversion;
            }

            formData['clientPlatform'] = device.clientPlatform;

            this.sendRegistrationData(formData);
        },
Esempio n. 3
0
 app.handleSuccessGeoResponse = function (response) {
     if (response && response.data) {
         user.set('geoIpCountry', response.data.country);
         user.set('defaultCountry', response.data.country);
         core.trigger('app:settings:geo:received');
     }
 };
Esempio n. 4
0
        withdrawSuccess: function(response) {
            var headerParameters;

            if (response.data.headerParameters) {
                headerParameters = payment.convertHeaderParameters(response.data.headerParameters);

                if (headerParameters.method === 'POST'
                    && headerParameters.contentType
                    && !_.isEmpty(headerParameters.postData)
                ) {
                    document.body.appendChild(payment.getFormFromHeaderParameters(headerParameters)).submit();
                } else {
                    core.navigate(headerParameters.url, {redirect: true});
                }
            } else {
                new PopupView({
                    data: {
                        title: response.description,
                        content: this.translate('playtech.mobile.mobile-cashier.transaction.success')
                    }
                });
            }

            core.trigger('withdraw:success', response.data);
        },
Esempio n. 5
0
        changeLanguage: function(e) {
            this.$('.selected').removeClass('selected');
            e.currentTarget.classList.add('selected');

            this.listenToOnce(core, 'page:refresh', user.toggleSelector);
            core.trigger('user:action:changeLanguage', e.currentTarget.dataset.lang);
        }
Esempio n. 6
0
            xit('should highlight current page in menu after redirecting', function() {
                var url = '/register';

                core.trigger('navigate', url);

                menu.$('[data-url="' + url + '"]').hasClass('active').should.be.eql(true);
            });
Esempio n. 7
0
        render: _.once(function() {
            this.$el.html(this.tmpl('app.home'));

            core.trigger('app:rendered');

            return this;
        })
Esempio n. 8
0
                connectCallback = function() {
                    core.log('Open API server connected');
                    core.trigger('server:connected');

                    if (this.userDisconnected) {
                        this._restoreSession();
                    }
                }.bind(this),
        close: function() {
            var state = PopupView.prototype.close.apply(this, arguments);

            storage.session.setItem('redirectOnForbidden', true);
            core.trigger('page:refresh');

            return state;
        }
Esempio n. 10
0
 onClose: function() {
     // Send notification about success deposit
     status === 'success' && core.trigger('app:message', {
         ID: 'successDeposit',
         data: {
             message: 'Success deposit notification'
         }
     });
 }
Esempio n. 11
0
            $(window).on('popstate.registration', function(e) {
                var step;

                if (e.state !== null) {
                    step = e.state.stepNumber || 0;
                    this.showStep(step);
                    core.trigger('page:clear');
                }
            }.bind(this));
Esempio n. 12
0
        handleOpenChatOnAdminRequest: function(response) {
            this.unset('systemMessage');
            this.unset('waitingMessage');

            if (response.data.chatInviteType === 'MANUAL') {
                core.trigger('chat:showOpenConfirmPopup');
            } else {
                this.initialChat();
            }
        },
Esempio n. 13
0
        _restoreSession: function() {
            var userObject = storage.local.getItem('userModel');

            if (userObject && userObject.role === 'user') {
                core.trigger('server:disconnect');

                core.once('user:login user:logout', function() {
                    this.userDisconnected = false;
                }, this);
            }
        },
Esempio n. 14
0
                success: function(response) {
                    var currentLimits = response.data ? response.data.currentLimits : false;
                    this.set('isLimitsSet', currentLimits && Boolean(currentLimits.length));

                    var setLimitsCounter = this.get('setLimitCounter');
                    this.set('setLimitCounter', setLimitsCounter ? ++setLimitsCounter : 1);

                    if (!this.get('isLimitsSet') && this.get('setLimitCounter') < 8) {
                        core.trigger('app:message', {
                            ID: 'depositLimits'
                        });

                        // Try to set deposit limits after 15 seconds
                        window.setTimeout(function() {
                            this.setDepositLimits().always(this.getDepositLimits.bind(this));
                        }.bind(this), 15000);
                    } else {
                        core.trigger('depositLimits:set');
                    }
                }.bind(this)
Esempio n. 15
0
        _failedLogin: function(response) {
            var message = response.data,
                codes = [23];

            if (message && codes.indexOf(message.errorCode) >= 0) {
                core.trigger('user:failedLogin', message);
            } else {
                core.error(message || 'Login error');
            }

            this.quietLogout();
        },
Esempio n. 16
0
        notify: function(response) {
            response.data.balances.forEach(function(balance) {
                user.balance.get('balances')[balance.balanceType] = balance.balance;
            });

            var casinoGamingBalance = user.balance.get('balances')['casino_gaming_balance'],
                totalAmount = casinoGamingBalance && casinoGamingBalance.amount,
                formattedBalance = formatter.formatCurrency(totalAmount);

            user.balance.set({
                totalAmount: totalAmount,
                currency: user.get('currencyCode'),
                formattedBalance: formattedBalance
            });

            core.trigger('user:balanceUpdated', response);
            core.trigger('app:message', {
                ID: 'lowBalance',
                data: response
            });
        }
Esempio n. 17
0
        errorRegister: function(error) {
            this._hideLoading();

            var message = {
                    content: i18n.tExt('playtech.mobile.registration.error.' + error.data.errorCode, error.data.errorMessage),
                    className: ' error'
                };

            core.trigger('registration:error', message);

            this.$('.fn-register-messages').html(this.tmpl('common.messages', message));
        },
Esempio n. 18
0
        quietLogout: function() {
            var cachedData = _.pick(this.attributes, this.cachedProperties);

            this.clear()
                .set(_.result(this, 'defaults'))
                .set(cachedData);

            pas.logout();
            favoritesStore.clear();

            core.trigger('user:logout');
        },
Esempio n. 19
0
            var errorCallback = function() {
                    var countOfAvailableUrls = this._fallbackUrl ? 2 : 1;

                    core.error('Open API connection error');

                    if (this._usedUrlCount <= countOfAvailableUrls) {
                        this._connection.socket.reconnect();
                    } else {
                        this._usedUrlCount = 0;
                        this.removeAllListeners();

                        core.trigger('server:reconnect');
                    }
                }.bind(this),
Esempio n. 20
0
        _successLogin: function(options) {
            this.set({
                windowSessionId: Math.floor(Math.random() * 100000000),
                role: 'user',
                hasBeenLoggedIn: true
            });

            if (options && options.data) {
                this.set(options.data);
            }

            this._startWindowSession();
            core.trigger('user:login', this);
        },
Esempio n. 21
0
        errorDeposit: function(response) {
            var errorMessage = response.data.errorMessage;

            if (!errorMessage && response.data.error) {
                errorMessage = response.data.error.message;
            }

            this.form.showErrorMessages({
                translation: 'playtech.mobile.mobile-cashier.error.' + response.data.errorCode,
                content: errorMessage
            });

            core.trigger('deposit:fail', response.data);
        }
Esempio n. 22
0
                .done(function(response) {
                    if (response.data.sessionToken) {
                        user.set('sessionToken', response.data.sessionToken.sessionToken);

                        user._loginByToken(request)
                            .done(function(response) {
                                user.set('authType', 'credentials');
                                state.resolve(response);
                            })
                            .fail(state.reject);
                    } else {
                        var sessionValidation = response.data.sessionValidationData,
                            tempPassword;

                        if (sessionValidation) {
                            tempPassword = user.get('password');
                        }

                        if (sessionValidation && sessionValidation.SessionValidationByTCVersionData) {
                            core.trigger('user:action:showTermsPopup',
                                sessionValidation.SessionValidationByTCVersionData[0]);
                        }

                        if (sessionValidation && sessionValidation.SessionValidationByPasswordChangeData) {
                            core.trigger('app:message', {ID: 'changePassword'});
                        }

                        state.reject(response);

                        if (sessionValidation) {
                            user.set({
                                relogin: true,
                                password: tempPassword
                            });
                        }
                    }
                })
Esempio n. 23
0
 tracklink: function (event) {
     // send mansion tracking data ..
     core.trigger(
         'sendTrackingData',
         {
             'event': 'button-clicked',
             'event-type': 'button',
             'event-name': 'clicked',
             'custom_data': {
                 'location': 'main-header',
                 'type': 'main-header-logo',
             }
         }
     );
 },
Esempio n. 24
0
 showLoginPopup: function() {
     if (this.options.config.duplicateEmailLookup) {
         core.trigger('app:message', {
             ID: 'showLogin',
             data: {
                 closeAll: true,
                 data: {
                     description: this.translate('playtech.mobile.system.user.login.description.emailExist')
                 },
                 loginCallback: function() {
                     core.navigate('/');
                 }
             }
         });
     }
 },
Esempio n. 25
0
        addCardSuccess: function(response) {
            if (response.accountCode && response.accountId && response.methodCode) {
                this.showInfo({
                    content: this.translate('playtech.mobile.mobile-cashier.notifications.cardAdded')
                });

                storage.session.setItem('lastAddedPayment', response.methodCode);

                response = this.model.formatAddedPaymentAccount(response);
                core.trigger('card:added', response, this.options);
            } else {
                this.showInfo({
                    content: this.translate('playtech.mobile.mobile-cashier.notifications.addCardScStatusSuccessButInvalidResponse')
                });
            }
        },
Esempio n. 26
0
 openLoginPopup: function (e) {
     HeaderView.prototype.openLoginPopup.call(this, e);
     // send mansion tracking data ..
     core.trigger(
         'sendTrackingData',
         {
             'event': 'button-clicked',
             'event-type': 'button',
             'event-name': 'clicked',
             'custom_data': {
                 'location': 'main-header',
                 'type': 'main-header-login',
             }
         }
     );
 },
Esempio n. 27
0
        successRegister: function() {
            if (this.options.config.downloadClientRegistration) {
                this._hideLoading();
                return this.handleDLClient(user.get('userName'), user.get('password'));
            }

            core.trigger('registration:success');

            user.fetch()
                .done(function() {
                    this._hideLoading();
                    var action = this.model.get('config').afterRegistrationAction;

                    core.navigate(action ? action : '/');
                }.bind(this))
                .fail(this.errorRegister.bind(this));
        },
Esempio n. 28
0
        detectLangWithGeoIp: function() {
            var locales,
                detectedCountry = _.filter(_.keys(Playtech.Variables.countryLocaleMapping), function(item) {
                    return item === this.get('defaultCountry');
                }.bind(this));

            if ((detectedCountry.length > 0) && (Playtech.Variables.countryLocaleMapping[detectedCountry[0]] !== this.get('lang'))) {
                locales = Playtech.Variables.countryLocaleMapping[detectedCountry[0]];

                core.trigger('app:message', {
                    ID: 'changeLanguage',
                    data: {
                        message: 'Change language notification',
                        oldLang: this.get('lang'),
                        newLang: detectedCountry[0],
                        newLocale: locales
                    }
                });
            }

            this.set('languageDetected', true);
        },
Esempio n. 29
0
                .done(function() {
                    var userData = this.get('userDetails'),
                        isJumioAllowed = Playtech.Variables.netVerifyJumioEnabled && userData.ageVerificationStatus === 'inprocess',
                        isUserSuspended = userData.suspended === 'true';

                    // check if NetVerify/Jumio is enabled
                    if (isJumioAllowed) {
                        if (isUserSuspended) {
                            this.set('suspended', true);

                            state.reject({
                                data: 'User is suspended'
                            });
                        } else {
                            this.set('suspended', false);
                        }

                        core.trigger('app:message', {
                            ID: 'userVerify'
                        });
                    }
                    state.resolve(userData);
                }.bind(this))
Esempio n. 30
0
        _sendSessionInfo: function(sendFullData) {
            if (!this.get('loggedIn') || this.reconnecting) {
                return;
            }

            var data = {
                ID: 36025,
                description: 'Chat player session info',
                visitedPage: document.URL,
                playerId: this.get('playerId') || 0,
                playerMode: this._getPlayerMode(),
                sessionToken: this.get('sessionToken')
            };
            if (sendFullData === true) {
                data.playerAgent = navigator.userAgent;
                data.realPlayerLastSessionTime = this.get('realPlayerLastSessionTime');
                data.anonymousPlayerLastSessionTime = this.get('anonymousPlayerLastSessionTime');
            } else {
                core.trigger('chat:action:close');
            }

            server.send(data);
        },