You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
| (function() {
 | |
|   'use strict';
 | |
|   window.Whisper = window.Whisper || {};
 | |
| 
 | |
|   Whisper.StandaloneRegistrationView = Whisper.View.extend({
 | |
|     templateName: 'standalone',
 | |
|     className: 'full-screen-flow',
 | |
|     initialize: function() {
 | |
|       this.accountManager = getAccountManager();
 | |
| 
 | |
|       this.render();
 | |
| 
 | |
|       var number = textsecure.storage.user.getNumber();
 | |
|       if (number) {
 | |
|         this.$('input.number').val(number);
 | |
|       }
 | |
|       this.phoneView = new Whisper.PhoneInputView({
 | |
|         el: this.$('#phone-number-input'),
 | |
|       });
 | |
|       this.$('#error').hide();
 | |
|     },
 | |
|     events: {
 | |
|       'validation input.number': 'onValidation',
 | |
|       'click #request-voice': 'requestVoice',
 | |
|       'click #request-sms': 'requestSMSVerification',
 | |
|       'change #code': 'onChangeCode',
 | |
|       'click #verifyCode': 'verifyCode',
 | |
|     },
 | |
|     verifyCode: function(e) {
 | |
|       var number = this.phoneView.validateNumber();
 | |
|       var verificationCode = $('#code')
 | |
|         .val()
 | |
|         .replace(/\D+/g, '');
 | |
| 
 | |
|       this.accountManager
 | |
|         .registerSingleDevice(number, verificationCode)
 | |
|         .then(
 | |
|           function() {
 | |
|             this.$el.trigger('openInbox');
 | |
|           }.bind(this)
 | |
|         )
 | |
|         .catch(this.log.bind(this));
 | |
|     },
 | |
|     log: function(s) {
 | |
|       console.log(s);
 | |
|       this.$('#status').text(s);
 | |
|     },
 | |
|     validateCode: function() {
 | |
|       var verificationCode = $('#code')
 | |
|         .val()
 | |
|         .replace(/\D/g, '');
 | |
|       if (verificationCode.length == 6) {
 | |
|         return verificationCode;
 | |
|       }
 | |
|     },
 | |
|     displayError: function(error) {
 | |
|       this.$('#error')
 | |
|         .hide()
 | |
|         .text(error)
 | |
|         .addClass('in')
 | |
|         .fadeIn();
 | |
|     },
 | |
|     onValidation: function() {
 | |
|       if (this.$('#number-container').hasClass('valid')) {
 | |
|         this.$('#request-sms, #request-voice').removeAttr('disabled');
 | |
|       } else {
 | |
|         this.$('#request-sms, #request-voice').prop('disabled', 'disabled');
 | |
|       }
 | |
|     },
 | |
|     onChangeCode: function() {
 | |
|       if (!this.validateCode()) {
 | |
|         this.$('#code').addClass('invalid');
 | |
|       } else {
 | |
|         this.$('#code').removeClass('invalid');
 | |
|       }
 | |
|     },
 | |
|     requestVoice: function() {
 | |
|       window.removeSetupMenuItems();
 | |
|       this.$('#error').hide();
 | |
|       var number = this.phoneView.validateNumber();
 | |
|       if (number) {
 | |
|         this.accountManager
 | |
|           .requestVoiceVerification(number)
 | |
|           .catch(this.displayError.bind(this));
 | |
|         this.$('#step2')
 | |
|           .addClass('in')
 | |
|           .fadeIn();
 | |
|       } else {
 | |
|         this.$('#number-container').addClass('invalid');
 | |
|       }
 | |
|     },
 | |
|     requestSMSVerification: function() {
 | |
|       window.removeSetupMenuItems();
 | |
|       $('#error').hide();
 | |
|       var number = this.phoneView.validateNumber();
 | |
|       if (number) {
 | |
|         this.accountManager
 | |
|           .requestSMSVerification(number)
 | |
|           .catch(this.displayError.bind(this));
 | |
|         this.$('#step2')
 | |
|           .addClass('in')
 | |
|           .fadeIn();
 | |
|       } else {
 | |
|         this.$('#number-container').addClass('invalid');
 | |
|       }
 | |
|     },
 | |
|   });
 | |
| })();
 |