Initial commit: apps.supersamsev.ru
This commit is contained in:
commit
a4ad79309c
17298 files changed
+1746593
No files matched your search
@@ -0,0 +1,369 @@
|
||||
supersamApp.controller('SmsSubscribesController', [
|
||||
'$scope',
|
||||
'$http',
|
||||
'$timeout',
|
||||
'config',
|
||||
'$filter',
|
||||
'Upload',
|
||||
function($scope,
|
||||
$http,
|
||||
$timeout,
|
||||
config,
|
||||
$filter,
|
||||
Upload) {
|
||||
var SmsSubscribes;
|
||||
SmsSubscribes = (function() {
|
||||
class SmsSubscribes {
|
||||
constructor() {
|
||||
this.getSubscribes = this.getSubscribes.bind(this);
|
||||
this.getSubscribeStatusLabel = this.getSubscribeStatusLabel.bind(this);
|
||||
this.changeSubscribeStatus = this.changeSubscribeStatus.bind(this);
|
||||
this.subscribeModal = this.subscribeModal.bind(this);
|
||||
this.addSubscribe = this.addSubscribe.bind(this);
|
||||
this.editSubscribe = this.editSubscribe.bind(this);
|
||||
this.confirmSubscribeEdit = this.confirmSubscribeEdit.bind(this);
|
||||
this.uploadSubscribeRecipientsList = this.uploadSubscribeRecipientsList.bind(this);
|
||||
this.deleteSubscribeRecipient = this.deleteSubscribeRecipient.bind(this);
|
||||
$scope.utilities.showContentOnLoad();
|
||||
}
|
||||
|
||||
getSubscribes(subscribeId = null) {
|
||||
var dataToSend;
|
||||
if (!this.isSubscribesLoading) {
|
||||
this.isSubscribesLoading = true;
|
||||
dataToSend = {
|
||||
action: "getSubscribes",
|
||||
month: config.subscribes.month,
|
||||
year: config.subscribes.year,
|
||||
subscribeId: subscribeId
|
||||
};
|
||||
return $http.post(config.urls.subscribes, dataToSend).then((response) => {
|
||||
var data;
|
||||
data = response.data;
|
||||
this.isSubscribesLoading = false;
|
||||
if (data) {
|
||||
if (data.status && (data.status === "success")) {
|
||||
this.smsErrors = [];
|
||||
if (subscribeId) {
|
||||
return false;
|
||||
} else {
|
||||
return config.subscribes = data.subscribes;
|
||||
}
|
||||
} else {
|
||||
if (data.errors && data.errors.length) {
|
||||
return this.errors = data.errors;
|
||||
} else {
|
||||
return toastr.error(config.global_labels.defaultErrorMessage.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).catch((response) => {
|
||||
if (response.data && response.data.errors) {
|
||||
this.smsErrors = response.data.errors;
|
||||
} else {
|
||||
toastr.error(config.global_labels.defaultErrorMessage.value);
|
||||
}
|
||||
return this.isSubscribesLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
getSubscribeStatusLabel(statusId) {
|
||||
var i, label, len, ref, status, v;
|
||||
label = "-";
|
||||
ref = config.subscribeStatuses;
|
||||
for (i = 0, len = ref.length; i < len; i++) {
|
||||
v = ref[i];
|
||||
if (v.id === statusId) {
|
||||
status = v;
|
||||
}
|
||||
}
|
||||
if (status) {
|
||||
label = status.label;
|
||||
}
|
||||
return label;
|
||||
}
|
||||
|
||||
changeSubscribeStatus(subscribe, newStatus) {
|
||||
var confirmMessage, dataToSend;
|
||||
if (!this.isSubmitting) {
|
||||
switch (newStatus) {
|
||||
case "deleted":
|
||||
if (!config.isAdmin && (subscribe.createdBy !== config.loggedInUserId)) {
|
||||
return false;
|
||||
}
|
||||
confirmMessage = 'удалить';
|
||||
break;
|
||||
case "queued":
|
||||
confirmMessage = 'поставить в очередь';
|
||||
break;
|
||||
case "stopped":
|
||||
confirmMessage = 'остановить';
|
||||
}
|
||||
if (confirm("Вы уверены, что хотите " + confirmMessage + " данную рассылку?")) {
|
||||
this.isSubmitting = true;
|
||||
dataToSend = {
|
||||
action: "setSubscribeStatus",
|
||||
newStatus: newStatus,
|
||||
subscribeId: subscribe.id
|
||||
};
|
||||
return $http.post(config.urls.subscribes, dataToSend).then((response) => {
|
||||
var data, error, i, key, len, ref, ref1, results, results1, tmpSubscribe;
|
||||
data = response.data;
|
||||
this.isSubmitting = false;
|
||||
if (data) {
|
||||
if (data.status && (data.status === "success")) {
|
||||
this.smsErrors = [];
|
||||
if (newStatus !== 'deleted') {
|
||||
subscribe.status = angular.copy(newStatus);
|
||||
return toastr.success("Статус рассылки был успешно изменен");
|
||||
} else {
|
||||
toastr.success("Рассылка была успешно удалена");
|
||||
ref = config.subscribes.list;
|
||||
results = [];
|
||||
for (key in ref) {
|
||||
tmpSubscribe = ref[key];
|
||||
if (subscribe.id === tmpSubscribe.id) {
|
||||
results.push(config.subscribes.list.splice(key, 1));
|
||||
} else {
|
||||
results.push(void 0);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
} else {
|
||||
if (data.errors && data.errors.length) {
|
||||
ref1 = data.errors;
|
||||
results1 = [];
|
||||
for (i = 0, len = ref1.length; i < len; i++) {
|
||||
error = ref1[i];
|
||||
results1.push(toastr.error(error));
|
||||
}
|
||||
return results1;
|
||||
} else {
|
||||
return toastr.error(config.global_labels.defaultErrorMessage.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).catch((response) => {
|
||||
var error, i, len, ref;
|
||||
if (response.data && response.data.errors) {
|
||||
ref = data.errors;
|
||||
for (i = 0, len = ref.length; i < len; i++) {
|
||||
error = ref[i];
|
||||
toastr.error(error);
|
||||
}
|
||||
} else {
|
||||
toastr.error(config.global_labels.defaultErrorMessage.value);
|
||||
}
|
||||
return this.isSubmitting = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
subscribeModal(action) {
|
||||
this.subscribeModalIncorrectRecipients = [];
|
||||
this.subscribeModalErrors = [];
|
||||
$timeout(() => {
|
||||
return angular.element("#subscribeModal").modal(action);
|
||||
});
|
||||
return $scope.subscribeForm.$setPristine();
|
||||
}
|
||||
|
||||
addSubscribe() {
|
||||
this.subscribeModalData = {
|
||||
message: "",
|
||||
action: "addSubscribe",
|
||||
reportEmail: angular.copy(config.loggedInUserEmail)
|
||||
};
|
||||
this.isSubscribeDataLoading = false;
|
||||
return this.subscribeModal("show");
|
||||
}
|
||||
|
||||
editSubscribe(subscribe) {
|
||||
var dataToSend;
|
||||
this.subscribeModalData = angular.copy(subscribe);
|
||||
this.subscribeModal("show");
|
||||
if (!this.isSubscribeDataLoading) {
|
||||
this.isSubscribeDataLoading = true;
|
||||
this.subscribeModalErrors = [];
|
||||
dataToSend = {
|
||||
action: "getSubscribeData",
|
||||
subscribeId: subscribe.id
|
||||
};
|
||||
return $http({
|
||||
method: 'POST',
|
||||
url: config.urls.subscribes,
|
||||
data: dataToSend,
|
||||
timeout: 30000
|
||||
}).then((response) => {
|
||||
var data;
|
||||
this.isSubscribeDataLoading = false;
|
||||
if (response.data) {
|
||||
data = response.data;
|
||||
if (data.status && (data.status === "success")) {
|
||||
this.subscribeModalData = angular.copy(data.subscribe);
|
||||
this.subscribeModalData.action = "updateSubscribe";
|
||||
return this.subscribeModalData.recipientsToDelete = [];
|
||||
} else {
|
||||
if (data.errors) {
|
||||
return this.subscribeModalErrors = data.errors;
|
||||
}
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
this.isSubscribeDataLoading = false;
|
||||
return toastr.error(config.global_labels.defaultErrorMessage.value);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
confirmSubscribeEdit() {
|
||||
if (!this.isSubmitting) {
|
||||
this.isSubmitting = true;
|
||||
this.subscribeModalErrors = [];
|
||||
return $http({
|
||||
method: 'POST',
|
||||
url: config.urls.subscribes,
|
||||
data: this.subscribeModalData,
|
||||
timeout: 30000
|
||||
}).then((response) => {
|
||||
var data, key, ref, results, subscribe;
|
||||
this.isSubmitting = false;
|
||||
if (response.data) {
|
||||
data = response.data;
|
||||
if (data.status && (data.status === "success")) {
|
||||
if (this.subscribeModalData.id) {
|
||||
toastr.success("Данные SMS рассылки были успешно обновлены");
|
||||
this.subscribeModal("hide");
|
||||
ref = config.subscribes.list;
|
||||
results = [];
|
||||
for (key in ref) {
|
||||
subscribe = ref[key];
|
||||
if (subscribe.id === data.subscribe.id) {
|
||||
results.push(config.subscribes.list[key] = angular.copy(data.subscribe));
|
||||
} else {
|
||||
results.push(void 0);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
} else {
|
||||
toastr.success("SMS рассылка была успешно добавлена");
|
||||
$scope.subscribeForm.$setPristine();
|
||||
this.subscribeModalData = angular.copy(data.subscribe);
|
||||
this.subscribeModalData.action = "updateSubscribe";
|
||||
this.subscribeModalData.recipientsToDelete = [];
|
||||
return config.subscribes.list.unshift(angular.copy(data.subscribe));
|
||||
}
|
||||
} else {
|
||||
if (data.errors && data.errors.length) {
|
||||
return this.subscribeModalErrors = data.errors;
|
||||
} else {
|
||||
return toastr.error(config.global_labels.defaultErrorMessage.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
this.isSubmitting = false;
|
||||
return toastr.error(config.global_labels.defaultErrorMessage.value);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
uploadSubscribeRecipientsList() {
|
||||
if (!this.isSubmitting && this.importSubscribeRecipientsFile) {
|
||||
this.isSubmitting = true;
|
||||
this.subscribeModalErrors = [];
|
||||
this.subscribeModalIncorrectRecipients = [];
|
||||
return Upload.upload({
|
||||
url: config.urls.subscribes,
|
||||
data: {
|
||||
file: this.importSubscribeRecipientsFile,
|
||||
action: 'importSubscribeRecipients',
|
||||
subscribeId: this.subscribeModalData.id,
|
||||
sms_subscribe_recipients: this.subscribeModalData.sms_subscribe_recipients
|
||||
}
|
||||
}).then((response) => {
|
||||
var data;
|
||||
data = response.data;
|
||||
this.isSubmitting = false;
|
||||
this.importSubscribeRecipientsFile = null;
|
||||
if (data.status && (data.status === "success")) {
|
||||
toastr.success('Импорт списка получателей выполнен успешно, найдено ' + data.importNewSubscribersCountTotal + ' получателя, импортировано новых - ' + data.importNewSubscribersCount + (data.incorrectList.length > 0 ? ", ошибок импорта - " + data.incorrectList.length : ""));
|
||||
this.subscribeModalData.sms_subscribe_recipients = angular.copy(data.importSubscribers);
|
||||
this.subscribeModalIncorrectRecipients = data.incorrectList;
|
||||
return $scope.subscribeForm.$setDirty();
|
||||
} else {
|
||||
if (data.errors && data.errors.length) {
|
||||
return this.subscribeModalErrors = data.errors;
|
||||
} else {
|
||||
return toastr.error(config.global_labels.defaultErrorMessage.value);
|
||||
}
|
||||
}
|
||||
}).catch((response) => {
|
||||
if (response.data && response.data.errors) {
|
||||
this.subscribeModalErrors = response.data.errors;
|
||||
} else {
|
||||
this.subscribeModalErrors = ['Ошибка импорта списка получателей, повторите позднее!'];
|
||||
}
|
||||
this.isSubmitting = false;
|
||||
return this.importSubscribeRecipientsFile = null;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
deleteSubscribeRecipient(recipientToDelete) {
|
||||
var recipient, recipientKey, ref, results;
|
||||
if (confirm("Вы уверены, что хотите удалить данного получателя?")) {
|
||||
ref = this.subscribeModalData.sms_subscribe_recipients;
|
||||
results = [];
|
||||
for (recipientKey in ref) {
|
||||
recipient = ref[recipientKey];
|
||||
if (recipient === recipientToDelete) {
|
||||
this.subscribeModalData.sms_subscribe_recipients.splice(recipientKey, 1);
|
||||
$scope.subscribeForm.$setDirty();
|
||||
if (recipientToDelete.id) {
|
||||
if (!this.subscribeModalData.recipientsToDelete) {
|
||||
this.subscribeModalData.recipientsToDelete = [];
|
||||
}
|
||||
this.subscribeModalData.recipientsToDelete.push(recipientToDelete.id);
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
results.push(void 0);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
SmsSubscribes.prototype.isSubmitting = false;
|
||||
|
||||
SmsSubscribes.prototype.isSubscribesLoading = false;
|
||||
|
||||
SmsSubscribes.prototype.errors = [];
|
||||
|
||||
SmsSubscribes.prototype.smsErrors = [];
|
||||
|
||||
SmsSubscribes.prototype.subscribeModalErrors = [];
|
||||
|
||||
SmsSubscribes.subscribeModalIncorrectRecipients = [];
|
||||
|
||||
SmsSubscribes.prototype.isSubscribeDataLoading = false;
|
||||
|
||||
SmsSubscribes.prototype.importSubscribeRecipientsFile = null;
|
||||
|
||||
return SmsSubscribes;
|
||||
|
||||
}).call(this);
|
||||
$scope.config = config;
|
||||
$scope.utilities = new UtilitiesClass(config,
|
||||
$filter,
|
||||
$timeout,
|
||||
$http);
|
||||
return $scope.subscribesList = new SmsSubscribes();
|
||||
}
|
||||
]);
|
||||
Reference in new issue
Block a user