var changes = false;
$(document).ready(function() {
$("#main").after('
');
$("#buttons").after("");
$("#buttons").after("");
var deletedId = new Array();
var generatedId = new Array();
var deletedRes = new Array();
var dialog = 0;
var perms = [
[1, "Kto wykonuje", "X"],
[2, "Tylko do odczytu", "R"],
[3, "Odczyt, zapis, wykonanie", "R,W,X"],
[4, "Odczyt, zapis, wykonanie, tworzenie", "R,W,X,C"],
[5, "Odczyt i wykonanie", "R,X"],
[6, "Tylko do odczytu", "R"],
[7, "MAPA PROCESU - opis mapy procesu", ""],
[9, "Tylko do tworzenia rekordu", "C"],
[10, "Tylko tworzenie i czytanie rekordów bez edycji", "R,X,C"],
[11, "Tylko edycja rekordu - ustalanie nowej wartosci", "W"],
[12, "Tylko edycja i dodanie rekordu - ustalanie nowej wartosci", "W,C"],
[13, "Nowy rekord i edycja z pominieciem A_ADM_COMPANY", "R,W,X,C,S"],
[14, "Widok tylko swoich danych z rekordu", "W,O"],
[15, "Edycja rekordów dla super admina", "R,W,C,S"],
[16, "Widok i dodawanie rekordów tylko dla swojego ADM_COMPANY", "C,O"],
[17, "Super widok wszystkich rekordow niezaleznie od uprawnien rekordu", "R,V"],
[18, "Administracja Edycja i widok wszystkich rekordow z pominieciem A", "R,W,X,S,V"],
[19, "Administracja Edycja Tworzenie i widok wszystkich rekordow z pom", "R,W,X,C,S,V"],
[20, "Export", "R,X,E"],
[21, "Widzenie tylko swoich rekordów", "O"]
];
var gotoType = [
["GOTO", "Przejdź do procesu"],
["GOTO_AND_RETURN", "Przejdź do procesu i wróć"],
["FORK", "FORK"]
];
var state = [];
var loaded = true;
var tab = new Array(); //tablica kolejnosci
//var mainProces_id = 1; //id procesu glownego. Potem bedzie przypisywane z linku
var actSite = "none";
showPreview();
var filtr = 0;
var selectedArea = false;
var sZasoby;
var sProcesy;
var lastSearch = "";
var newSteps = 0;
var newRes = 0;
function loadResources() {
$("#main").html("
Pobieranie danych o zasobach.
");
//console.log("res!");
var res = new Array();
var sFiltr = "";
var link = BASE_URL + 'wfs-data.php/default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=p5_default_db:CRM_WSKAZNIK&SRSNAME=EPSG:3003&sortBy=SORT_PRIO+A,ID';
//console.log("link "+link);
sFiltr += `
`;
$.each(state, function(i, e) {
var id = e["id"];
sFiltr += 'ID_PROCES' + id + '';
});
sFiltr += 'A_STATUSDELETED';
//console.log("x "+sFiltr);
$.ajax({
url: link,
data: sFiltr,
type: 'POST',
contentType: "text/xml",
dataType: "xml",
success: function(data) {
//console.log(data);
$.each($(data).find("featureMember"), function() {
if ($(this).find("ID").text() == 0)
return;
var result = new Array();
result["ID"] = $(this).find("ID").text();
result["ID_ZASOB"] = $(this).find("ID_ZASOB").text();
result["ID_PROCES"] = $(this).find("ID_PROCES").text();
result["SORT_PRIO"] = $(this).find("SORT_PRIO").text();
result["ID_PRZYPADEK"] = $(this).find("ID_PRZYPADEK").text();
result["OPIS_ZASOB"] = $(this).find("OPIS_ZASOB").text();
res.push(result);
});
//console.log(res);
var sFiltr2 = "";
var link2 = BASE_URL + 'wfs-data.php/default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=p5_default_db:CRM_LISTA_ZASOBOW&SRSNAME=EPSG:3003&sortBy=SORT_PRIO+A,ID';
sFiltr2 += `
`;
$.each(res, function(index, value) {
var id = res[index]["ID_ZASOB"];
sFiltr2 += `
ID` + id + ``;
});
sFiltr2 += `
`;
//console.log(sFiltr2);
//console.log(link2);
var zasobInfo = new Array();
$.ajax({
url: link2,
data: sFiltr2,
type: 'POST',
contentType: "text/xml",
dataType: "xml",
success: function(data2) {
//console.log("data");
//console.log(data2);
$.each($(data2).find("featureMember"), function() {
//console.log();
zasobInfo[$(this).find("ID").text()] = new Array();
zasobInfo[$(this).find("ID").text()]["DESC"] = $(this).find("DESC").text();
zasobInfo[$(this).find("ID").text()]["OPIS"] = $(this).find("OPIS").text();
zasobInfo[$(this).find("ID").text()]["TYPE"] = $(this).find("TYPE").text();
});
//console.log(res);
$.each(res, function(index, value) {
var type;
if (zasobInfo[res[index]["ID_ZASOB"]]["TYPE"] == "DZIAL" || zasobInfo[res[index]["ID_ZASOB"]]["TYPE"] == "STANOWISKO" || zasobInfo[res[index]["ID_ZASOB"]]["TYPE"] == "PODMIOT") {
type = "prof";
} else {
type = "res";
}
var id = res[index]["ID_PROCES"];
var temp = {};
temp["id_zasob"] = res[index]["ID_ZASOB"]
temp["id"] = res[index]["ID"];
temp["id_przypadek"] = res[index]["ID_PRZYPADEK"];
temp["komentarz"] = res[index]["OPIS_ZASOB"];
temp["desc"] = zasobInfo[res[index]["ID_ZASOB"]]["DESC"];
temp["opis"] = zasobInfo[res[index]["ID_ZASOB"]]["OPIS"];
//console.log(temp);
state[getIndexById(id)][type].push(temp);
});
$("#main").html("
Generowanie widoku.
");
render(state, $("#main"));
}
});
}
});
}
$(document).ajaxStop(function() {
if (loaded)
return;
//alert("OK");
loaded = true;
//$(".drop").find("dl").hide();
loadResources();
});
$(document).on('click', '#clearBtn', function() {
swal({
title: 'Cofnij zmiany',
text: "Czy chcesz cofnąć wszystkie niezapisane zmiany?",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
cancelButtonText: "Anuluj",
confirmButtonText: 'Cofnij zmiany'
}).then(function() {
localStorage.removeItem("state" + mainProces_id);
$.notify("Niezapisane zmiany zostały wycofane.", "success");
showPreview();
//Parent_id = -1,
}).catch(function(e) {})
});
//Saveaction
$(document).on('click', '#saveBtn', function() {
$("#saveBtn").prop('disabled', true);
$.notify("Rozpoczęto zapisywanie. Nie zamykaj tego okna", "info");
//console.log("Saving has been started");
var genReq = `
`;
$.each(state, function(i, e) {
if (e['id'] < 0) {
genReq += `
-1`;
}
});
genReq += '';
//console.log("genReq: " + genReq)
var link = BASE_URL + 'wfs-data.php/default_db/?SERVICE=WFS&VERSION=1.0.0&SRSNAME=EPSG:3003&';
//console.log(link);
$.ajax({
url: link,
data: genReq,
type: 'POST',
contentType: "text/xml",
dataType: "text",
success: function(data) {
//console.log("x: " + data);
$(data).find("[fid]").each(function(i, e) {
var newId = $(e).attr("fid").substr($(e).attr("fid").indexOf('.') + 1);
generatedId.push(newId);
});
var i = 0;
var newIdTab = Array();
//console.log(generatedId);
$.each(state, function(z, e) {
if (e["id"] < 0) {
newIdTab[e["id"]] = generatedId[i];
//console.log("he:" + generatedId[i]);
i++;
}
});
//console.log(newIdTab);
var request = `
`;
$.each(state, function(i, e) {
request += `
`;
if (e["id"] >= 0)
request += '' + e["id"] + '';
else
request += '' + newIdTab[e["id"]] + '';
if (e["parent_id"] != false) {
if (e["parent_id"] >= 0)
request += '' + e["parent_id"] + '';
else
request += '' + newIdTab[e["parent_id"]] + '';
request += '' + e["SORT_PRIO"] + '';
}
if (typeof e["goto"] !== typeof undefined && e["goto"]["id"] !== null && e["goto"]["id"] !== 0 && e["goto"]["id"] !== "") {
request += '' + e["goto"]["id"] + '';
request += '' + e["goto"]["flag"] + '';
} else {
request += '0';
request += '';
}
request += '' + e["desc"] + '';
request += '' + e["opis"] + '';
request += `
`;
var id;
if (e["id"] >= 0)
id = e["id"];
else
id = newIdTab[e["id"]];
var sort_prio = 0;
$.each(e["prof"].concat(e["res"]), function(iR, eR) {
sort_prio++;
request += `
`;
if (eR["id"] >= 0) {
request += '' + eR["id"] + '';
}
request += '' + eR["id_zasob"] + '';
request += '' + id + '';
request += '' + eR["id_przypadek"] + '';
var opis = eR["komentarz"];
opis = opis.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, ''');
request += '' + sort_prio + '';
request += '' + opis + '';
request += `
`;
});
});
$.each(deletedId, function(key, value) {
request += `
`;
request += '' + value + '';
request += '-1';
request += 'DELETED';
request += `
`;
});
$.each(deletedRes, function(key, value) {
request += `
`;
request += '' + value + '';
request += 'DELETED';
request += `
`;
});
request += '';
//console.log(request);
$.ajax({
url: link,
data: request,
type: 'POST',
contentType: "text/xml",
dataType: "text",
success: function(data) {
//console.log(data);
deletedRes = [];
deletedId = [];
//console.log(data);
localStorage.removeItem("state" + mainProces_id);
showPreview();
$.notify("Zmiany zostały zapisane na serwerze.", "success");
$("#saveBtn").prop('disabled', false);
},
error: function(xhr, ajaxOptions, thrownError) {
$.notify("Brak połączenia z bazą danych", "error");
}
});
},
error: function(xhr, ajaxOptions, thrownError) {
$.notify("Brak połączenia z bazą danych", "error");
}
});
});
$(document).on('click', '.btnEdit', function() {
var parentIndex = getIndexById($(this).parents(".drop").data("id"));
var type;
if ($(this).parents("li").closest(".professions").length > 0)
type = "prof";
else
type = "res";
var zasobIndex = getResById(parentIndex, $(this).parents("li").data("id"), type);
//console.log(zasobIndex);
var permsOpt = "";
$.each(perms, function(key, value) {
if (state[parentIndex][type][zasobIndex]["id_przypadek"] == value[0])
permsOpt = permsOpt + "";
else
permsOpt = permsOpt + "";
})
swal({
showCancelButton: true,
title: 'Uprawnienia',
html: 'Uprawnienia ' +
'Komentarz ',
preConfirm: function() {
return new Promise(function(resolve) {
resolve([
$('#swal-input1').val(),
$('#swal-input2').val()
]);
});
}
}).then(function(result) {
state[parentIndex][type][zasobIndex]["id_przypadek"] = result[0];
state[parentIndex][type][zasobIndex]["komentarz"] = result[1];
state[parentIndex][type][zasobIndex]["changed"] = true;
updateAll();
}).catch(function(e) {})
});
//Buttony i ich zadania
$(document).on('click', '.step', function() {
newSteps--;
var main = false;
var temp = {};
if ($(this).parents(".drop").data("id") === mainProces_id)
main = true;
$(this).parents(".drop").after("");
temp["id"] = newSteps;
temp["desc"] = "";
temp["opis"] = "";
var index = getIndexById($(this).parents(".drop").data("id"));
//console.log(state[index]["depth"]);
temp["step"] = 0;
temp["prof"] = new Array();
temp["res"] = new Array();
temp["C-desc"] = true;
temp["C-opis"] = true;
temp["stepDesc"] = "";
if (!main) {
temp["parent_id"] = state[index]["parent_id"];
temp["depth"] = state[index]["depth"];
} else {
temp["parent_id"] = mainProces_id;
temp["depth"] = 1;
}
state.splice(index + 1, 0, temp);
stepsGenerator();
updateAll();
});
$(document).on('keyup', '#sProcesy', function() {
if ($(this).val() != lastSearch) {
lastSearch = $(this).val();
clearTimeout(sProcesy);
sProcesy = setTimeout(function() {
if (lastSearch == "")
procesy();
else
searchProc();
}, 300);
}
});
$(document).on('keyup', '#sZasoby', function() {
if ($(this).val() != lastSearch) {
lastSearch = $(this).val();
clearTimeout(sZasoby);
sZasoby = setTimeout(function() {
if (filtr === 0 && lastSearch == "")
zasoby();
else
searchRes();
}, 300);
}
});
function arraymove(arr, fromIndex, toIndex) {
//console.log("move " + fromIndex + " " + toIndex);
var element = [];
var element = arr[fromIndex];
arr.splice(fromIndex, 1);
arr.splice(toIndex, 0, element);
}
$(document).on('click', '.uArrowRes', function() {
var parent = getIndexById(($(this).parents(".drop").data("id")));
//alert(parent);
if ($(this).closest(".professions").length > 0)
type = "prof";
else
type = "res";
var id = getResById(parent, $(this).closest("li").data("id"), type);
//alert(id);
//console.log(state);
arraymove(state[parent][type], id, id - 1);
updateAll();
});
$(document).on('click', '.dArrowRes', function() {
var parent = getIndexById(($(this).parents(".drop").data("id")));
//alert(parent);
if ($(this).closest(".professions").length > 0)
type = "prof";
else
type = "res";
var id = getResById(parent, $(this).closest("li").data("id"), type);
//alert(id);
arraymove(state[parent][type], id, id + 1);
updateAll();
});
$(document).on('click', '.uArrow', function() {
var id = $(this).parents(".drop").data("id");
var index = getIndexById(id);
arraymove(state, index, index - 1);
updateAll();
});
$(document).on('click', '.dArrow', function() {
var id = $(this).parents(".drop").data("id");
var index = getIndexById(id);
//console.log("id " + id + " index" + index);
arraymove(state, index, index + 1);
updateAll();
});
$(document).on('click', '.rArrow', function() {
var id = $(this).parents(".drop").data("id");
state[getIndexById(id)]["depth"]++;
//var depthWidth = 20 * $(node).data("depth");
// $(node).css("padding-left", depthWidth + "px");
updateAll();
});
$(document).on('click', '.lArrow', function() {
var id = $(this).parents(".drop").data("id");
state[getIndexById(id)]["depth"]--;
//var depthWidth = 20 * $(node).data("depth");
// $(node).css("padding-left", depthWidth + "px");
updateAll();
});
$(document).on('click', '#btnZasoby', function(e) {
e.preventDefault();
$(".lButton").removeClass("btn-primary");
if (dialog == 0) {
zasoby();
$(this).addClass("btn-primary");
$("#wrapper").removeClass("toggled");
dialog = 1;
} else if (dialog == 1) {
$("#wrapper").addClass("toggled");
dialog = 0;
} else {
$("#wrapper").addClass("toggled");
$(this).addClass("btn-primary");
setTimeout(function() {
zasoby();
$("#wrapper").removeClass("toggled");
}, 500);
dialog = 1;
}
});
$(document).on('click', '#btnProcesy', function(e) {
e.preventDefault();
$(".lButton").removeClass("btn-primary");
if (dialog == 0) {
procesy();
$("#wrapper").removeClass("toggled");
$(this).addClass("btn-primary");
dialog = 2;
} else if (dialog == 2) {
$("#wrapper").addClass("toggled");
dialog = 0;
} else {
$("#wrapper").addClass("toggled");
$(this).addClass("btn-primary");
setTimeout(function() {
procesy();
$("#wrapper").removeClass("toggled");
}, 500);
dialog = 2;
}
});
$(document).on('click', 'body', function() {
if (selectedArea != false) {
var content = $(selectedArea).val();
var id = (selectedArea).parents(".drop").data("id");
if ($(selectedArea).parent().hasClass("hdesc")) {
state[getIndexById(id)]["desc"] = content;
state[getIndexById(id)]["C-desc"] = true;
}
if ($(selectedArea).parent().hasClass("sdesc")) {
state[getIndexById(id)]["opis"] = content;
state[getIndexById(id)]["C-opis"] = true;
}
selectedArea = false;
updateAll();
}
});
$(document).on('click', '.hdesc', function() {
if ($(this).find("textarea").is(selectedArea))
return false;
});
$(document).on('click', '.sdesc', function() {
if ($(this).find("textarea").is(selectedArea))
return false;
});
$(document).on('dblclick', '.sdesc', function() {
if (selectedArea)
return;
if ($(this).find("textarea").length == 0) {
var content = $(this).html();
$(this).empty();
$(this).append("");
selectedArea = $(this).find("textarea");
}
});
$(document).on('click', '.sDescAdd', function() {
if (selectedArea)
return;
var action = $(this).parents(".drop").find(".sdesc");
if ($(action).find("textarea").length == 0) {
//alert($(action).text());
$(action).html("");
selectedArea = $(action).find("textarea");
return false;
}
});
$(document).on('click', '.hDescAdd', function() {
if (selectedArea)
return;
var action = $(this).parents(".drop").find(".hdesc");
console.log(action);
if ($(action).find("textarea").length == 0) {
//alert($(action).text());
$(action).html("");
selectedArea = $(action).find("textarea");
return false;
}
});
$(document).on('dblclick', '.hdesc', function() {
if ($(this).find("textarea").length == 0) {
var content = $(this).html();
$(this).empty();
$(this).append("");
selectedArea = $(this).find("textarea");
}
});
$(document).on('click', '.del', function() {
var id = $(this).parents(".drop").data("id");
var index = getIndexById(id);
swal({
title: 'Usuwanie kroku',
text: "Czy napewno chcesz usunąć ten krok?",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
cancelButtonText: "Anuluj",
confirmButtonText: 'Tak, usuń ten krok'
}).then(function() {
state.splice(index, 1);
deletedId.push(id);
updateAll();
//Parent_id = -1,
}).catch(function(e) {})
});
$(document).on('click', '.delGoto', function() {
//var parent = $(this).parents(".drop");
var id = $(this).parents("li").data("id");
var parent = getIndexById($(this).parents(".drop").data("id"));
swal({
title: 'Usuwanie bramki',
text: "Czy napewno chcesz usunąć tę bramkę?",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
cancelButtonText: "Anuluj",
confirmButtonText: 'Tak, usuń tę bramkę'
}).then(function() {
state[parent]["goto"] = {
id: "",
flag: ""
};
updateAll();
//Parent_id = -1,
}).catch(function(e) {})
});
$(document).on('click', '.delRes', function() {
//var parent = $(this).parents(".drop");
var id = $(this).parents("li").data("id");
var parent = getIndexById($(this).parents(".drop").data("id"));
var type;
if ($(this).closest(".professions").length > 0)
type = "prof";
else
type = "res";
var index = getResById(parent, id, type);
swal({
title: 'Usuwanie wskaźnika',
text: "Czy napewno chcesz usunąć ten wskaźnik?",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
cancelButtonText: "Anuluj",
confirmButtonText: 'Tak, usuń ten wskaźnik'
}).then(function() {
deletedRes.push(id);
state[parent][type].splice(index, 1);
updateAll();
//Parent_id = -1,
}).catch(function(e) {})
});
//
$(document).on('click', '.fbutton', function(e) {
e.preventDefault();
$(".fbutton").removeClass("btn-success");
if ($(this).data("type") == filtr) {
filtr = 0;
//console.log("Odznaczono");
} else {
filtr = $(this).data("type");
$(this).addClass("btn-success");
}
if (filtr === 0)
$("#xBtn").prop("disabled", true);
else
$("#xBtn").prop("disabled", false);
if (filtr === 0) {
zasoby();
} else
searchRes();
});
$(document).on('click', '.showMore', function() {
var target = $(this).parent().find(".more");
var id = $(this).data("id");
if ($(target).parent().hasClass("resSelected")) {
$(".more").empty();
$(target).parent().removeClass("resSelected");
$(target).parent().find(".gIco").addClass("glyphicon-chevron-down");
$(target).parent().find(".gIco").removeClass("glyphicon-chevron-up");
} else {
$(".more").parent().removeClass("resSelected");
$(".more").parent().find(".gIco").addClass("glyphicon-chevron-down");
$(".more").parent().find(".gIco").removeClass("glyphicon-chevron-up");
$(".more").empty();
$(target).parent().addClass("resSelected");
$(target).parent().find(".gIco").removeClass("glyphicon-chevron-down");
$(target).parent().find(".gIco").addClass("glyphicon-chevron-up");
var link = BASE_URL + 'wfs-data.php/default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=p5_default_db:CRM_LISTA_ZASOBOW&SRSNAME=EPSG:3003&Filter=PARENT_ID' + id + 'TYPEKOMORKA&sortBy=SORT_PRIO+A,ID';
//console.log(link);
$.get(link, function(data) {
$.each($(data).find("featureMember"), function() {
if ($(this).find("ID").text() != 0) {
var type = 0;
$(target).append("
");
$(side).find("#procCon").append("");
$(side).find("#procCon").append("");
var link = BASE_URL + 'wfs-data.php/default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=p5_default_db:CRM_PROCES&SRSNAME=EPSG:3003&Filter=PARENT_ID0&sortBy=SORT_PRIO+A,ID';
var result = "";
$.get(link, function(data) {
//console.log(data);
$(data).find("featureMember").each(function() {
var type = 0;
result += "
# " + $(this).find("DESC").text() + "
[" + $(this).find("ID").text() + "]
";
});
$("#depth0").html(result);
$('.drag').draggable({
appendTo: 'body',
handle: '.handle',
helper: 'clone',
stack: "div",
distance: 0,
cursor: "copy"
});
});
}
$(document).on('click', '.liAdv', function() {
$(this).find(".glyphicon").removeClass("glyphicon-triangle-right");
$(this).find(".glyphicon").addClass("glyphicon-refresh");
$(this).parents(".singleAdv").nextAll(".singleAdv").remove();
$(this).parents(".singleAdv").find(".active").removeClass("active");
$(this).addClass("active");
var parent = this;
var parent_id = $(this).data("id");
var link = BASE_URL + 'wfs-data.php/default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=p5_default_db:CRM_LISTA_ZASOBOW&SRSNAME=EPSG:3003&Filter=PARENT_ID' + parent_id + '&sortBy=SORT_PRIO+A,ID';
var result = "";
var depth = $(this).parents(".singleAdv").data("depth") + 1;
$("#advCon").css("width", depth * 290 + 290);
$(this).parents(".singleAdv").after("");
//console.log(link);
var childs = true;
$.get(link, function(data) {
$(data).find("featureMember").each(function() {
if ($(this).find("ID").text() == 0) {
childs = false;
return;
}
var type = 0;
if ($(this).find("TYPE").text() == "DZIAL" || $(this).find("TYPE").text() == "PODMIOT" || $(this).find("TYPE").text() == "STANOWISKO")
type = 1;
result += "
");
$(side).find("#advCon").append("");
$(side).find("#advCon").append("");
var link = BASE_URL + 'wfs-data.php/default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=p5_default_db:CRM_LISTA_ZASOBOW&SRSNAME=EPSG:3003&Filter=PARENT_ID0&sortBy=SORT_PRIO+A,ID';
var result = "";
$.get(link, function(data) {
//console.log(data);
$(data).find("featureMember").each(function() {
var type = 0;
if ($(this).find("TYPE").text() == "DZIAL" || $(this).find("TYPE").text() == "PODMIOT" || $(this).find("TYPE").text() == "STANOWISKO")
type = 1;
result += "
");
}
function addProces(ui, target) {
var id = $(target).data("id");
var gotoOpt = "";
$.each(gotoType, function(key, value) {
gotoOpt += "";
})
swal({
showCancelButton: true,
cancelButtonText: "Anuluj",
title: 'Typ łącza',
html: (typeof state[getIndexById(id)]["goto"] !== typeof undefined && state[getIndexById(id)]["goto"]["id"] != null && state[getIndexById(id)]["goto"]["id"] != 0 ? 'Uwaga! Nowe łącze nadpisze już istniejące łącze. ' : "") + ' ',
preConfirm: function() {
return new Promise(function(resolve) {
resolve([
$('#swal-input1').val()
]);
});
}
}).then(function(result) {
//console.log("Dodaj zasob " + ui.draggable.data("id") + " do " + $(target).data("id") + " i uprawnienia id " + result[0] + " komentarz: " + result[1]); //
newRes--;
var temp = {};
temp["flag"] = result[0];
temp["id"] = ui.draggable.data("id");
//console.log(temp);
//console.log(state[getIndexById(id)]);
state[getIndexById(id)]["goto"] = temp;
updateAll();
}).catch(function(e) {})
}
function addResource(ui, target) {
var permsOpt = "";
$.each(perms, function(key, value) {
permsOpt = permsOpt + "";
})
swal({
showCancelButton: true,
cancelButtonText: "Anuluj",
title: 'Uprawnienia',
html: 'Uprawnienia ' +
'Komentarz ',
preConfirm: function() {
return new Promise(function(resolve) {
resolve([
$('#swal-input1').val(),
$('#swal-input2').val()
]);
});
}
}).then(function(result) {
//console.log("Dodaj zasob " + ui.draggable.data("id") + " do " + $(target).data("id") + " i uprawnienia id " + result[0] + " komentarz: " + result[1]); //
newRes--;
var temp = {};
temp["id_zasob"] = ui.draggable.data("id");
temp["id"] = newRes;
temp["id_przypadek"] = result[0];
temp["komentarz"] = result[1];
temp["changed"] = true;
temp["opis"] = ui.draggable.data("opis");
temp["desc"] = ui.draggable.data("desc");
var id = $(target).data("id");
if (ui.draggable.data("type") == 1) {
state[getIndexById(id)]["prof"].push(temp);
} else {
state[getIndexById(id)]["res"].push(temp);
}
updateAll();
}).catch(function(e) {})
}
//Najwazniejsza funkcja odpalana po kazdej zmianie. Sprawdza, czy wszystkie funkcje maja rodzica,
//jezeli nie to przesuwa w lewo obiekt
//Odpowiada tez za ukrywanie guzikow i wywowalanie funkcji generacji krokow
function updateAll() {
$.each(state, function(i, e) {
var pid = getParentNode(e["id"]);
if (pid != "NONE" && pid != false && pid != e["parent_id"]) {
e["parent_id"] = pid;
//console.log("Ustawiono nowe parent_id na " + e["parent_id"] + " dla " + e["id"]); //
} else if (pid === false) {
e["depth"]--;
//var depthWidth = 20 * $(node).data("depth");
//$(node).css("padding-left", depthWidth + "px");
updateAll();
return;
}
if (checkParentNode(e["id"], "right") === false) {
$(this).find(".rArrow").hide();
} else {
$(this).find(".rArrow").show();
}
if (checkParentNode(e["id"], "left") === false) {
$(this).find(".lArrow").hide();
} else {
$(this).find(".lArrow").show();
}
if (i == 1)
$(this).find(".uArrow").hide();
else
$(this).find(".uArrow").show();
if (i == state.length - 1) {
$(this).find(".dArrow").hide();
} else {
$(this).find(".dArrow").show();
}
});
//console.log(JSON.stringify(state));
changes = true;
$("#clearBtn").show();
localStorage.setItem("state" + mainProces_id, JSON.stringify(state));
localStorage.setItem("newStep" + mainProces_id, newSteps);
localStorage.setItem("newRes" + mainProces_id, newRes);
localStorage.setItem("deletedId" + mainProces_id, JSON.stringify(deletedId));
localStorage.setItem("deletedRes" + mainProces_id, JSON.stringify(deletedRes));
localStorage.setItem("date" + mainProces_id, moment().format("YYYY-MM-DD HH:mm:ss"));
render(state, $("#main"));
}
//Generuje kroki, sprawdza tez czy kolejnosc krokow w danym rodzicow zostala zmieniona
//Jezeli tak to mozna wyslac ajaxem zmiane kolejnosci dla sort_prio
function stepsGenerator() {
$.each(state, function(i, e) {
e["step"] = 0;
if (i == 0)
e["stepDesc"] = "";
else {
var iParent = getIndexById(e["parent_id"]);
//console.log("Generowanie step dla "+e["id"]);
//console.log("iParent "+iParent);
state[iParent]["step"] += 1;
//console.log(state[iParent]["step"]);
e["SORT_PRIO"] = state[iParent]["step"];
e["stepDesc"] = state[iParent]["stepDesc"] + state[iParent]["step"] + ". ";
}
});
}
//Na potrzeby guzikow dorobilem funkcje sprawdzajaca id rodzica po przesunieciu (przewidywanie).
//Jezeli nie znajdzie zwraca false, a wtedy blokuje sie odpowiednia strzalka
function checkParentNode(id, check) {
var x = getIndexById(id);
var y = x;
//console.log(tab);
var result = false;
while (x > 0) {
x--;
if (check == "right")
if (state[x]["depth"] == state[y]["depth"]) {
result = state[x]["id"];
break;
}
if (check == "left")
if (state[x]["depth"] == state[y]["depth"] - 2) {
result = state[x]["id"];
break;
}
if (check == "right" && state[x]["depth"] < state[y]["depth"])
break;
}
return result;
}
//Zwraca id rodzica, jezeli nie ma zwraca false
function getParentNode(id) {
var x = getIndexById(id);
var y = x;
if (x == 0)
return "NONE";
var result = false;
while (x > 0) {
x--;
if (state[x]["depth"] == state[y]["depth"] - 1) {
result = state[x]["id"];
break;
}
if (state[x]["depth"] - state[y]["depth"] == -2)
break;
}
return result;
}
function getResById(index, id, type) {
var result = state[index][type].length - 1;
$.each(state[index][type], function(i, e) {
//console.log(e["id"]);
//console.log(id);
if (e["id"] == id) {
//console.log("Zwraca "+i);
result = i;
return false;
}
});
return result;
}
function getIndexById(id) {
//console.log("Szuka"+id);
var result = state.length - 1;
$.each(state, function(i, e) {
//console.log(e["id"]);
//console.log(id);
if (e["id"] == id) {
//console.log("Zwraca "+i);
result = i;
return false;
}
});
return result;
}
/*function logState() {
//console.log("########");
$.each(state, function(i, e) {
//console.log(i + ": " + e["id"]);
});
//console.log("########");
}*/
function render(arr, target) {
stepsGenerator();
var result = "";
console.log(arr);
$.each(arr, function(i, e) {
result += "
";
result += "
";
if (i > 0) {
result += "";
//Arrows
if (checkParentNode(e["id"], "right") !== false)
result += "";
if (checkParentNode(e["id"], "left") !== false)
result += "";
if (i != 1)
result += "";
if (i != state.length - 1)
result += "";
} else {
}
result += "";
result += "";
if (e["opis"] == "")
result += "Dodaj opis";
else
result += "Edytuj opis";
result += "
";
}
if (typeof e["goto"] !== typeof undefined && e["goto"]["id"] != null && e["goto"]["id"] != 0) {
var name;
switch (e["goto"]["flag"]) {
case "GOTO":
name = "Przejdź do procesu " + e["goto"]["id"] + ".";
break;
case "GOTO_AND_RETURN":
name = "Przejdź do procesu " + e["goto"]["id"] + ", a następnie wróć.";
break;
case "FORK":
name = "— FORK" + e["goto"]["id"];
break;
default:
name = e["goto"]["id"];
}
result += "— " + name + " ";
}
result += " Dodaj nowy krok";
result += "