/var/www/myprog.com.ua/site/app
NameSizeModeActions
actions/-0755rm
config/-0755rm
images/-0755rm
objects/-0755rm
sounds/-0755rm
views/-0755rm
webix/-0755rm
api.php26490644editdlrm
app.css101610644editdlrm
application.js162860644editdlrm
http_client.js572980644editdlrm
index.php37250644editdlrm
login.php65170644editdlrm
sendto.php10280644editdlrm
sip-0.7.8.js3761560644editdlrm
socket_io_client.js258230644editdlrm
udp.php6200644editdlrm
websocket.js155030644editdlrm
Edit: /var/www/myprog.com.ua/site/app/http_client.js (57298B)
function HttpClient(options) { var __self = this; this.url = location.href; if (options) { if (options.url) this.url = options.url; } this.GetConfiguration = function () { if (isDebug) console.debug('HttpClient:GetConfiguration:Begin'); if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, { action: 'get_config' }, { error: function (text, data, XmlHttpRequest) { onLoadError = true; if (isDebug) { console.debug('HttpClient:GetConfiguration:Error'); console.debug(XmlHttpRequest); } webix.message('HttpClient:GetConfiguration:Error'); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (data.json() != null && data.json().error == 0) { webix.message({ type: 'success', text: 'Настройки загружены.' }); config = data.json().result; if (isDebug) { console.debug('HttpClient:GetConfiguration:OK'); console.debug(config); } } else { webix.message('ERROR! ajax get_config'); onLoadError = true; if (isDebug) { console.debug('HttpClient:GetConfiguration:Error'); console.debug(data.json()); } } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); }; this.GetChannels = function GetChannels() { if (isDebug) console.debug('HttpClient:GetChannels:Begin'); if (!onLoadError) { if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, { action: 'get_chanels' }, { error: function (text, data, XmlHttpRequest) { onLoadError = true; if (isDebug) { webix.message({ type: 'error', text: 'Ошибка! XmlHttpRequest.status : ' + XmlHttpRequest.status }); console.debug('HttpClient:GetChannels:Error'); console.debug(XmlHttpRequest); } if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (data.json() != null && data.json().error == 0) { chanels = data.json().result; if (isDebug) { webix.message({ type: 'success', text: 'Список каналов загружен.' }); console.debug('HttpClient:GetChannels:OK'); console.debug(chanels); } } else { webix.message({ type: 'error', text: 'Ошибка #: ' + data.json().error + ' Msg: ' + data.json().error_msg }); if (isDebug) { console.debug('HttpClient:GetChannels:Error'); console.debug(data.json()); } onLoadError = true; } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } else { if (isDebug) console.debug('HttpClient:GetChannels:OnLoadError'); } }; this.GetLines = function () { if (isDebug) console.debug('HttpClient:GetLines:Begin'); if (!onLoadError) { if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, { action: 'get_lines' }, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetLines:Error'); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:GetLines:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (data.json() != null && data.json().error == 0) { lines = data.json().result['lines']; if (isDebug) { console.debug('HttpClient:GetLines:OK'); console.debug(lines); } } else { if (isDebug) { console.debug('HttpClient:GetLines:Error'); console.debug(data.json()); } } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } else { if (isDebug) console.debug('HttpClient:GetLines:onLoadError'); } }; this.GetOrders = function () { if (isDebug) console.debug('HttpClient:GetOrders:Begin'); if (!onLoadError) { if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, { action: 'get_orders', city_id: config.city_id, limit: config.default.orders_history_count }, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetOrders:Error'); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:GetOrders:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { orders.clearAll(); if (data.json() != null && data.json().error == 0) { data.json().result.forEach(function (e) { var o = new Order(e); if (o.id > 0 && !orders.getItem(o.id)) { orders.add(o); } else { orders.updateItem(o.id, o); } }); if (activeOrders) activeOrders.Update(); if (historyOrders) historyOrders.Update(); if (isDebug) { console.debug('HttpClient:GetOrders:OK'); console.debug(orders); } } else { if (isDebug) { console.debug('HttpClient:GetOrders:Error'); console.debug(data.json()); } } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } else { if (isDebug) console.debug('HttpClient:GetOrders:onLoadError'); } }; this.GetCalls = function () { if (isDebug) console.debug('HttpClient:GetCalls:Begin'); if (!onLoadError) { if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, { action: 'get_calls_history', city_id: config.city_id, limit: config.default.calls_history_count }, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetCalls:Error'); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:GetCalls:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { calls.clearAll(); if (data.json() != null && data.json().error == 0) { if (data.json().response && data.json().response.length > 0) { data.json().response.forEach(function (e) { var c = new Call(e); if (c.id > 0 && !calls.getItem(c.id)) { calls.add(c); } else { calls.updateItem(c.id, c); } }); calls.sort('#id#', 'desc', sortNumber); } if (isDebug) { console.debug('HttpClient:GetCalls:OK'); console.debug(calls); } } else { if (isDebug) { console.debug('HttpClient:GetCalls:Error'); console.debug(data.json()); } } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } else { if (isDebug) console.debug('HttpClient:GetCalls:onLoadError'); } }; this.GetUslugi = function () { if (isDebug) console.debug('HttpClient:GetUslugi:Begin'); if (!onLoadError) { if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, { action: 'get_uslugi', city_id: config.city_id, limit: config.default.calls_history_count }, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetUslugi:Error'); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:GetUslugi:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetUslugi:Success'); console.debug(data.json()); } if (data.json().error == 101) { uslugi = []; } else if (data.json().error == 0) { uslugi = data.json().result; webix.message({ type: 'success', text: 'Список услуг загружен' }); } else { webix.message({ type: 'error', text: 'HttpClient:GetUslugi:Error' }); } } }); } } this.GetTarifs = function () { if (!onLoadError) { var params = { city_id: config.city_id }; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(BuildApiUrl('tarifs_list'), params, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetTarifs:Error'); console.debug(XmlHttpRequest); } if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetTarifs:Success'); console.debug(data.json()); } if (data.json() && data.json().error == 0) { webix.message({ type: 'success', text: 'Список тарифов загружен' }); tarifs = []; $.each(data.json().response.tarifs, function (k, v) { tarifs.push({ id: v.tariff_id, value: v.tariff_name + ' ' + '( ' + v.tariff_includedkm + ' км. = ' + v.tariff_costpos + ' ' + config.valuta + ' +1 км. = ' + v.tariff_costkm + ' ' + config.valuta + ' )', costkm: parseFloat(v.tariff_costkm), includedkm: parseFloat(v.tariff_includedkm), costpos: parseFloat(v.tariff_costpos), costwait: parseFloat(v.tariff_costwait), costmin: parseFloat(v.tariff_costmin) }); }); } else { webix.message({ type: 'error', text: 'HttpClient:GetTarifs:Error' }); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } }; this.GetSectors = function () { if (!onLoadError) { if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, { action: 'get_sectors' }, { error: function (text, data, XmlHttpRequest) { onLoadError = true; if (isDebug) { console.debug('HttpClient:GetSectors:Error'); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:GetSectors:Error' }); onLoadError = true; if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetSectors:Success'); console.debug(data.json()); } if (data.json() != null && data.json().error == 0) { webix.message({ type: 'success', text: 'Список секторов загружен.' }); sectors.clearAll(); var s0 = new Sector(); data.json().result.forEach(function (e) { var s = new Sector(e); if (s.id > 0 && !sectors.getItem(s.id)) { sectors.add(s); } else { sectors.updateItem(s.id, s); } s0.position = Math.max(s0.position, s.position) + 1; }); s0.id = "0"; s0.bounds = [ [config.city_la, config.city_lo], [config.city_la, config.city_lo], [config.city_la, config.city_lo], [config.city_la, config.city_lo], ]; sectors.add(s0); if (carMenu) carMenu.Update(); if (parking) parking.Update(); } else { webix.message({ type: 'error', text: 'HttpClient:GetSectors:Error' }); onLoadError = true; } if (isDebug) { console.debug(XmlHttpRequest); console.debug(data); console.debug(sectors); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } }; this.GetCars = function () { if (!onLoadError) { var post = { action: 'get_cars' }; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetCars:Error'); console.debug(XmlHttpRequest); webix.message({ type: 'error', text: 'HttpClient:GetCars:Error' }); } if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetCars:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } if (data.json() != null && data.json().error == 0) { cars.clearAll(); data.json().result.forEach(function (e) { if (!cars.getItem(e.id)) { //console.log(e); cars.add(new Car(e)); } else { cars.updateItem(e.id, e); } }); cars.data.sort('#time#', 'desc', sortNumber); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } }; this.SyncCars = function () { var post = { action: 'sync_cars' }; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().sync().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:SyncCars:Error'); console.debug(XmlHttpRequest); } if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:SyncCars:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } if (data.json() != null && data.json().error == 0) { data.json().response.cars.forEach(function (e) { var car = cars.getItem(e.id); if (car) { car.Update(e); } }); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (parking) parking.Update(); if (sideCars) sideCars.Update(); } }); }; this.SyncOrders = function () { }; this.SyncOperatorBalance = function (callback) { var post = { action: 'sync_operator_balance', operator_id: config.who_id }; webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:SyncOperatorBalance:Error'); console.debug(XmlHttpRequest); webix.message('HttpClient:SyncOperatorBalance:Error'); } if (toolBarTop) toolBarTop.UpdateHttpStatus('error'); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:SyncOperatorBalance:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } if (callback) callback(data.json()); } }); }; this.ParkMoveCar = function (car, options, callback) { if (typeof (car) != 'undefined' && typeof (options.park) != 'undefined') { var url = BuildApiUrl('park_move_car'); var post = { //action: 'park_move_car', car_id: car.id, park: options.park, park_status: options.park_status != null ? options.park_status : car.park_status, old_park: car.park, penalty_id: options.penalty_id, cause: options.cause, who_id: config.who_id }; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post(url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:ParkMoveCar:Error'); console.debug(XmlHttpRequest); webix.message('HttpClient:ParkMoveCar:Error'); } if (toolBarTop) toolBarTop.UpdateHttpStatus('error'); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:ParkMoveCar:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } if (data.json().error == 0) { var car = cars.getItem(data.json().response.car_id); var sector = sectors.getItem(data.json().response.park_id); if (car && sector) { webix.message({ type: 'success', text: 'Перемещение успешно.
' + car.ch + ' - ' + car.poz + ' >> ' + sector.name + '' }); } else { webix.message({ type: 'success', text: 'Перемещение успешно.' }); } } if (callback) callback(data.json()); if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } else { webix.message({ type: 'error', text: 'Ошибка перемещения! Неверный аргумент.' }); if (isDebug) { console.debug('HttpClient:ParkMoveCar:RequestError'); } } }; this.GetCarInfo = function (car_id, callback) { if (typeof (car_id) != 'undefined') { var post = { action: 'get_car_info', car_id: car_id }; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { webix.message('Ошибка получения списка последних заказов авто.'); console.debug('HttpClient:GetGetCarInfo:RequestError'); console.debug(XmlHttpRequest); } if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetGetCarInfo:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } if (data.json().error == 0) { if (callback) callback(data.json()); } else { webix.message({ type: 'success', text: 'Ошибка получения списка последних заказов авто!' }); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); } }); } else { webix.message({ type: 'error', text: 'Ошибка получения списка последних заказов авто! Неверный аргумент.' }); if (isDebug) console.debug('HttpClient:GetGetCarInfo:RequestError'); } }; // получить список причин отмены this.GetCancelCauses = function () { // обновить статус if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); // запрос webix.ajax().sync().post(__self.url, { action: 'get_cancel_causes' }, { // ошибка запроса error: function (text, data, XmlHttpRequest) { onLoadError = true; if (isDebug) { console.debug('HttpClient:GetCancelCauses:Error'); console.debug(XmlHttpRequest); } webix.message('HttpClient:GetCancelCauses:Error'); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, // получен ответ success: function (text, data, XmlHttpRequest) { // обновить статус if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (data.json() && data.json().error == 0) { // ошибок нет cancelCauses.clearAll(); // заполнить колекцию data.json().result.forEach(function (e) { cancelCauses.add(e); }); webix.message({ type: 'success', text: 'Список статусов отмен заказов загружен.' }); } else { // ошибка webix.message({ type: 'error', text: 'Ошибка #: ' + data.json().error + ' Msg: ' + data.json().error_msg }); onLoadError = true; } } }); }; this.GetPenalties = function () { // обновить статус if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); // запрос webix.ajax().sync().post(__self.url, { action: 'get_penalties', city_id: config.city_id }, { // ошибка запроса error: function (text, data, XmlHttpRequest) { onLoadError = true; if (isDebug) { console.debug('HttpClient:GetPenalties:Error'); console.debug(XmlHttpRequest); } webix.message('HttpClient:GetPenalties:Error'); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, // получен ответ success: function (text, data, XmlHttpRequest) { // обновить статус if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (data.json() && data.json().error == 0) { // ошибок нет if (data.json().response.penalties) penalties = data.json().response.penalties; if (data.json().response.causes) penaltyCauses = data.json().response.causes; webix.message({ type: 'success', text: 'Список штрафов загружен.' }); } else { // ошибка webix.message({ type: 'error', text: 'Ошибка #: ' + data.json().error + ' Msg: ' + data.json().error_msg }); onLoadError = true; } } }); }; this.ChatSendMessage = function (options, callback) { var errors = false; // обновить статус if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); // запрос var url = BuildApiUrl('chat_send'); var post = { type: 'all', client_id_to: 0, message: '' }; if (options) { if (options.message) { if (options.message.length < 1) { webix.message({ type: 'error', text: 'HttpClient:ChatSendMessage:Error: The message is short!' }); errors = true; } else if (options.message.length > 255) { webix.message({ type: 'error', text: 'HttpClient:ChatSendMessage:Error: The message is long!' }); errors = true; } else { post.message = options.message; } } else { errors = true; } if (options.type) { post.type = options.type; } if (options.client_id_to) { post.client_id_to = options.client_id_to; } } else { webix.message({ type: 'error', text: 'HttpClient:ChatSendMessage:Error: Invalid data' }); errors = true; } if (errors == false) { webix.ajax().sync().post(url, post, { error: function (text, data, XmlHttpRequest) { onLoadError = true; if (isDebug) { console.debug('HttpClient:ChatSendMessage:Error'); console.debug(XmlHttpRequest); } webix.message('HttpClient:ChatSendMessage:Error'); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, // получен ответ success: function (text, data, XmlHttpRequest) { // обновить статус if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); //console.log("SEND"); //console.log(data.json()); if (callback) callback(data.json()); } }); } }; this.GetChat = function (options) { // обновить статус if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); var post = { start: 0, count: 1000 }; if (options) { if (options.start) { post.start = options.start } if (options.count) { post.count = options.count } } // запрос var url = BuildApiUrl('chat_get'); webix.ajax().sync().post(url, post, { // ошибка запроса error: function (text, data, XmlHttpRequest) { onLoadError = true; if (isDebug) { console.debug('HttpClient:GetChat:Error'); console.debug(XmlHttpRequest); } webix.message('HttpClient:GetChat:Error'); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, // получен ответ success: function (text, data, XmlHttpRequest) { // обновить статус if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (data.json() && data.json().error == 0) { // ошибок нет chat.clearAll(); if (data.json().response && data.json().response.messages) { data.json().response.messages.forEach(function (i) { chat.add(i); }) } chat.sort('mid', 'asc', sortNumber); //chat.data.sort('#mid#','desc',sortNumber); webix.message({ type: 'success', text: 'Чат загружен.' }); if (sideChat) sideChat.Update(); } else { // ошибка webix.message({ type: 'error', text: 'Ошибка загрузки сообщений.' }); onLoadError = true; } } }); }; this.GetOrderFormData = function (data, callback) { data.order_id = typeof data.order_id != 'undefined' ? data.order_id : 0; data.phone = typeof data.phone != 'undefined' ? data.phone : 0; var order_form_data = { order_id: data.order_id, phone: data.phone, city_id: config.city_id, who: config.who, who_id: config.who_id, action: 'get_order_data' }; if (data.phone > 0 || data.order_id > 0) { if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post(__self.url, order_form_data, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:GetOrderFormData:Error'); console.debug(XmlHttpRequest); } webix.message('HttpClient:GetOrderFormData:Error'); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { webix.message('HttpClient:GetOrderFormData:Success'); if (isDebug) { console.debug('HttpClient:GetOrderFormData:Success'); console.debug(data.json()); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (data.json() != null && data.json().error == 0) { callback(data.json()); } } }); } }; this.Autocomplete = function (request, target, callback) { request = request.split('*')[0]; var url = location.pathname + '?client_key=' + config.client_key + '&action=find_adres&filter[city_id]=' + config.city_id + '&filter[value]=' + request; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); target.getList().clearAll(); target.getList().load(url, { error: function (text, data, http_request) { if (toolBarTop) toolBarTop.UpdateHttpStatus(); if (callback) { callback(data.json()); } }, success: function (text, data, http_request) { if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (callback) { callback(data.json()); } } }); }; // ORDER this.OrderCreate = function (order, callback) { order.who_create = config.who; order.who_id_create = config.who_id; order.who = config.who; order.who_id = config.who_id; order.city_id = config.city_id; order.order_id = order.id; order.j_uslugi = order.uslugi.join('-'); var post_data = {}; for (var i in order) { if (i != 'isValid' && i != 'Create' && i != 'Update') { post_data[i] = order[i]; } } var url = BuildApiUrl('order_create'); if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post(url, post_data, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderCreate:Error' }); console.debug(XmlHttpRequest); } if (toolBarTop) toolBarTop.UpdateHttpStatus(); if (callback) callback(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderCreate:Success'); console.debug(data.json()); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (callback) callback(data.json()); } }); }; this.OrderAccept = function (order_id, car_id, callback) { if (order_id && car_id) { var param = { order_id: order_id, car_id: car_id, oper_id: config.who_id } var url = BuildApiUrl('order_accept'); webix.ajax().post(url, param, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderAccept:Error' }); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderAccept:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderAccept:Success'); console.debug(data.json()); } if (data.json().error == 0) { webix.message({ type: 'success', text: 'HttpClient:OrderAccept:Success' }); } else { webix.message({ type: 'error', text: 'HttpClient:OrderAccept:Error:' }); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (callback) callback(data.json()); } }); } else { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderAccept:Error: Invalid data' }); } webix.message({ type: 'error', text: 'HttpClient:OrderAccept:Error' }); } }; this.OrderArrive = function (order_id, car_id, callback) { if (order_id && car_id) { var param = { order_id: order_id, car_id: car_id, oper_id: config.who_id } var url = BuildApiUrl('order_arrive'); webix.ajax().post(url, param, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderArrive:Error' }); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderArrive:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderArrive:Success'); console.debug(data.json()); } if (data.json().error == 0) { webix.message({ type: 'success', text: 'HttpClient:OrderArrive:Success' }); } else { webix.message({ type: 'error', text: 'HttpClient:OrderArrive:Error:' }); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (callback) callback(data.json()); } }); } else { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderArrive:Error: Invalid data' }); } webix.message({ type: 'error', text: 'HttpClient:OrderArrive:Error' }); } }; this.OrderRide = function (order_id, car_id, callback) { if (order_id && car_id) { var param = { order_id: order_id, car_id: car_id, oper_id: config.who_id }; var url = BuildApiUrl('order_ride'); webix.ajax().post(url, param, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderRide:Error' }); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderRide:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderRide:Success'); console.debug(data.json()); } if (data.json().error == 0) { webix.message({ type: 'success', text: 'HttpClient:OrderRide:Success' }); } else { webix.message({ type: 'error', text: 'HttpClient:OrderRide:Error:' }); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (callback) callback(data.json()); } }); } else { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderRide:Error: Invalid data' }); } webix.message({ type: 'error', text: 'HttpClient:OrderRide:Error' }); } }; this.OrderComplete = function (order_id, car_id, callback) { if (order_id && car_id) { var param = { order_id: order_id, car_id: car_id, oper_id: config.who_id }; var url = BuildApiUrl('order_complite'); webix.ajax().post(url, param, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderComplete:Error' }); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderComplete:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderRide:Success'); console.debug(data.json()); } if (data.json().error == 0) { webix.message({ type: 'success', text: 'HttpClient:OrderComplete:Success' }); } else { webix.message({ type: 'error', text: 'HttpClient:OrderComplete:Error:' }); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (callback) callback(data.json()); } }); } else { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderComplete:Error: Invalid data' }); } webix.message({ type: 'error', text: 'HttpClient:OrderComplete:Error' }); } }; this.OrderCancel = function (order, callback) { order.who = config.who; order.who_id = config.who_id; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post( BuildApiUrl('order_cancel'), { order_id: order.id, who: order.who, cause: order.cause }, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderCancel:Error' }); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderCancel:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderCancel:Success'); console.debug(data.json()); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); callback(data.json()); } }) }; this.OrderCopy = function order_copy(order_id, callback) { var post = { order_id: order_id, who_id: config.who_id, action: 'order_copy' }; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderCopy:Error' }); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderCopy:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderCopy:Success'); console.debug(data.json()); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); callback(data.json()); } }) }; this.OrderSendToOnline = function (order_id, callback) { var post = { order_id: order_id, who_id: config.who_id, action: 'order_send_online' }; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:OrderSendToOnline:Error' }); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderSendToOnline:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderSendToOnline:Success'); console.debug(data.json()); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); callback(data.json()); } }) }; this.OrderSendToCar = function (options, callback) { if (options && options.car_id && options.order_id) { var post = { action: 'order_send_to_car', car_id: options.car_id, order_id: options.order_id, who_id: config.who_id }; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderSendToCar:Error'); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderSendToCar:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderSendToCar:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } if (data.json().error == 0) { webix.message({ type: 'success', text: 'Заказ #' + data.json().result.order_id + ' доставлен позывному ' + data.json().result.poz }); activeOrders.Unselect(); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); if (callback) callback(data.json()); } }); } else { webix.message({ type: 'error', text: 'Ошибка отправки заказа! Неверный аргумент. order_send_to_car(car_id, order_id)' }) } }; this.OrderSendOtherCar = function (order_id, callback) { var post = { order_id: order_id, who_id: config.who_id, action: 'order_send_other_car' }; var error = ''; var error_msg = ''; if (toolBarTop) toolBarTop.UpdateHttpStatus('send'); webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderSendOtherCar:Error'); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:OrderSendOtherCar:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:OrderSendOtherCar:Success'); console.debug(data.json()); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); callback(data.json()); } }); }; this.Route = function (data, callback) { if (data) { webix.ajax().post( BuildApiUrl('route'), data, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug({ type: 'error', text: 'HttpClient:Route:Error' }); console.debug(XmlHttpRequest); } webix.message({ type: 'error', text: 'HttpClient:Route:Error' }); if (toolBarTop) toolBarTop.UpdateHttpStatus(); }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:Route:Success'); console.debug(data.json()); } if (toolBarTop) toolBarTop.UpdateHttpStatus('success'); callback(data.json()); } }) } }; this.CallExt = function (phone, callback) { if (!phone) { webix.message({ type: 'error', text: 'HttpClient:CallExt:Error. Invalid phone' }); } else { var post = { action: 'call_ext', exten: config.default.sip_user, phone: phone.replace(config.country_code, '') }; webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug(XmlHttpRequest); console.debug('HttpClient:CallExt:Error'); webix.message({ type: 'error', text: 'HttpClient:CallExt:Error' }); } }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:CallExt:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } if (callback) callback(data.json()); } }); } }; this.ReadConfig = function (callback) { webix.ajax().post(__self.url, { action: 'get_app_config' }, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug(XmlHttpRequest); console.debug('HttpClient:ReadIniFile:Error'); webix.message({ type: 'error', text: 'HttpClient:ReadIniFile:Error' }); } }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:ReadIniFile:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } callback(data.json()); } }); }; this.SaveConfig = function (data) { var post = { action: 'save_app_config', data: data }; webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug(XmlHttpRequest); webix.message('ERROR! ajax save_ini'); } }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('OK! ajax get_ini'); console.debug(XmlHttpRequest); console.debug(data.json()); } if (data.json().error == 0) { webix.alert({ type: 'success', text: 'Настройки сохранены. Чтобы настройки вступили в силу обновите страницу.' }) } else { webix.alert({ type: 'error', text: data.json().error_msg }) } } }); }; this.LogOut = function (callback) { var post = { action: 'logout' }; webix.ajax().post(__self.url, post, { error: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug(XmlHttpRequest); console.debug('HttpClient:LogOut:Error'); webix.message({ type: 'error', text: 'HttpClient:LogOut:Error' }); } }, success: function (text, data, XmlHttpRequest) { if (isDebug) { console.debug('HttpClient:LogOut:Success'); console.debug(XmlHttpRequest); console.debug(data.json()); } callback(data.json()); } }); }; // init this.GetConfiguration(); }