Commit de09d0cf authored by Alina Habibulina's avatar Alina Habibulina

[FIX] fix

parent c8f65f80
package kz.arta.ext.sap;
import kz.arta.ext.sap.util.ImportBean;
import javax.ejb.Singleton;
import java.util.ArrayList;
import java.util.List;
......@@ -31,12 +33,26 @@ public class State {
json += "\"errors\": [";
for(String str : errors){
json += "\"" + str + "\",";
json += "\"" + unescapeJSONSpecials(str) + "\",";
}
if(errors.size() > 0) {
json = json.substring(0, json.length() - 1) + "]";
}
json = json.substring(0, json.length() - 1) + "]";
json += "}";
return json;
}
private static String unescapeJSONSpecials(String value){
value = value.replaceAll("\"", "\\\\\"");
value = value.replaceAll("\'", "\\\\\'");
value = value.replaceAll("\b", "\\\\\b");
value = value.replaceAll("\f", "\\\\\f");
value = value.replaceAll("\n", "\\\\\n");
value = value.replaceAll("\r", "\\\\\r");
value = value.replaceAll("\t", "\\\\\t");
return value;
}
}
......@@ -115,7 +115,7 @@ public class UnsecuredProxyService {
return Response.status(500).entity(e.getMessage()).build();
}
return Response.status(200).entity("Начат иморт записей реестра").build();
return Response.status(200).entity("{\"message\": \"Начат иморт записей реестра\"}").build();
}
......
......@@ -323,7 +323,7 @@ public class ImportBean {
} else {
try {
valueFF.setKey(valueFF.getElements().get(valueFF.getValue()));
valueFF.setKey(unescapeJSONSpecials(valueFF.getElements().get(valueFF.getValue())));
}catch (Exception ignore){}
}
......@@ -350,9 +350,9 @@ public class ImportBean {
rowFF.add(valueFF);
} catch (Exception e){
importState.errors.add("Ошибка в строке :" + (row.getRowNum() + 1) + ". в ячейке: " + cellValue.getCellType() +
", со значением: \"" + cellValue.formatAsString() + "\". Заголовок: \"" + header + "\". \\n");
", со значением: " + cellValue.formatAsString() + ". Заголовок: " + header + ". \\n");
LOGGER.error("Error in line :" + (row.getRowNum() + 1) + ". Something wrong with cell of type: " + cellValue.getCellType() +
", and value: \"" + cellValue.formatAsString() + "\". The header is: \"" + header + "\".");
", and value: " + cellValue.formatAsString() + ". The header is: " + header + ".");
LOGGER.error(e.getMessage());
return;
}
......@@ -571,7 +571,6 @@ public class ImportBean {
}
return null;
}
public static String formatDate(String format, String date) {
......
......@@ -106,9 +106,13 @@
<button class="uk-modal-close-default" type="button" uk-close></button>
<div class="uk-form-label">Прогресс импорта записей: </div>
<div class="uk-form-label">Обработка записей: </div>
<progress id="js-progressbar" class="uk-progress" value="0" max="100"></progress>
<div class="uk-form-label">Всего записей: <span id="whole_amount"></span></div>
<div class="uk-form-label">Успешно импортировано: <span id="sucessfully_imported"></span></div>
<div class="uk-form-label">Сообщения и ошибки:</div>
<div class="uk-margin">
<textarea class="uk-textarea" id="errors-area" rows="13" placeholder="..."></textarea>
......
......@@ -12,19 +12,14 @@ function showProcess(firstmessage, iserror){
if(firstmessage) errorsfield.val(firstmessage);
var progressbar = $("#js-progressbar");
progressbar.val(1);
if(!iserror){
//отправляем запрос за прогрессом и возникшими ошибками каждые 5 секунд, пока прогресс обработки записей не достигнет 100%
//отправляем запрос за прогрессом и возникшими ошибками каждые 5 секунд, пока прогресс обработк и записей не достигнет 100%
var percentage = 0;
var timerId = setInterval(function(){
if(percentage >= 100){
clearInterval(timerId);
isInProcess = false;
return;
}
$.ajax({
url: window.location.origin + "/import/api/registry/info",
type: 'GET',
......@@ -33,6 +28,9 @@ function showProcess(firstmessage, iserror){
data.errors.forEach(function(item){
str += item;
});
$("#sucessfully_imported").html(data.imported);
$("#whole_amount").html(data.total);
errorsfield.val(str);
percentage = data.count / (data.total / 100);
......@@ -60,6 +58,13 @@ function showProcess(firstmessage, iserror){
}
});
if(percentage >= 100){
clearInterval(timerId);
isInProcess = false;
return;
}
}, 3000);
}
......@@ -101,6 +106,8 @@ $(document).ready(function(){
$(".start_import").click(function(){
$("#js-progressbar").val(0);
$("#sucessfully_imported").html("");
$("#whole_amount").html("");
if(isInProcess){
showProcess();
......@@ -145,12 +152,13 @@ $(document).ready(function(){
type: 'POST',
success: function (data) {
$("#spin").hide();
showProcess(data.toString());
showProcess(data.message);
isInProcess = true;
},
error: function (error) {
$("#spin").hide();
showProcess(error.responseText);
if(error.code == 500) alert("Не создана папка /tmp/crm-import");
else alert(error.responseText);
isInProcess = false;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment