Leitgedanken/msd2/tracking/piwik/plugins/MobileMessaging/angularjs/manage-mobile-phone-numbers.controller.js
2023-01-23 11:03:31 +01:00

110 lines
3.8 KiB
JavaScript

/*!
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
(function () {
angular.module('piwikApp').controller('ManageMobilePhoneNumbersController', ManageMobilePhoneNumbersController);
ManageMobilePhoneNumbersController.$inject = ['piwikApi', 'piwik'];
function ManageMobilePhoneNumbersController(piwikApi, piwikk) {
// remember to keep controller very simple. Create a service/factory (model) if needed
var self = this;
this.isAddingPhonenumber = false;
this.canAddNumber = false;
this.isActivated = {};
this.validateActivationCode = function(phoneNumber, index) {
if (!this.validationCode || !this.validationCode[index] || this.validationCode[index] == '') {
return;
}
var verificationCode = this.validationCode[index];
var success = function (response) {
self.isChangingPhoneNumber = false;
var UI = require('piwik/UI');
var notification = new UI.Notification();
if (!response || !response.value) {
var message = _pk_translate('MobileMessaging_Settings_InvalidActivationCode');
notification.show(message, {
context: 'error',
id: 'MobileMessaging_ValidatePhoneNumber'
});
}
else {
var message = _pk_translate('MobileMessaging_Settings_PhoneActivated')
notification.show(message, {
context: 'success',
id: 'MobileMessaging_ValidatePhoneNumber'
});
self.isActivated[index] = true;
}
notification.scrollToNotification();
};
this.isChangingPhoneNumber = true;
piwikApi.post(
{method: 'MobileMessaging.validatePhoneNumber'},
{phoneNumber: phoneNumber, verificationCode: verificationCode},
{placeat: '#invalidVerificationCodeAjaxError'}
).then(success, function () {
self.isChangingPhoneNumber = false;
});
}
this.removePhoneNumber = function (phoneNumber) {
if (!phoneNumber) {
return;
}
this.isChangingPhoneNumber = true;
piwikApi.post(
{method: 'MobileMessaging.removePhoneNumber'},
{phoneNumber: phoneNumber},
{placeat: '#invalidVerificationCodeAjaxError'}
).then(function () {
self.isChangingPhoneNumber = false;
piwik.helper.redirect();
}, function () {
self.isChangingPhoneNumber = false;
});
}
this.validateNewPhoneNumberFormat = function () {
this.showSuspiciousPhoneNumber = $.trim(this.newPhoneNumber).lastIndexOf('0', 0) === 0;
this.canAddNumber = !!this.newPhoneNumber && this.newPhoneNumber != '';
};
this.addPhoneNumber = function() {
var phoneNumber = '+' + this.countryCallingCode + this.newPhoneNumber;
if (this.canAddNumber && phoneNumber.length > 1) {
this.isAddingPhonenumber = true;
piwikApi.post(
{method: 'MobileMessaging.addPhoneNumber'},
{phoneNumber: phoneNumber},
{placeat: '#ajaxErrorAddPhoneNumber'}
).then(function () {
self.isAddingPhonenumber = false;
piwik.helper.redirect();
}, function () {
self.isAddingPhonenumber = false;
});
}
}
}
})();