$(function(){
var $body = $("body");
var loader = '<div id="loader" class="overlay-loader"><img class="loader-icon spinning-cog" src="/MelisCore/assets/images/cog12.svg" data-cog="cog12"></div>';
$body.on("click", ".melis-tool-creator .btn-steps", function(){
var curStep = $(this).data("curstep");
var nxtStep = $(this).data("nxtstep");
var dataString = new Array;
var stepForm = $(".melis-toolcreator-steps-content form.tool-creator-step-"+curStep);
var dataName = "step-form";
if (stepForm.length > 1){
dataName = "step-form[%s]";
}
stepForm.each(function(index, val){
var formData = $(this).serializeArray();
$.each(formData, function(i, v){
/**
* This form contains input with the same name attribute of "tcf-db-table-cols"
*/
var multInpt = "";
if ($.inArray(v.name, ["tcf-db-table-cols", "tcf-db-table-col-display", "tcf-db-table-col-editable", "tcf-db-table-col-required", "tcf-db-table-col-type", ""]) != -1){
multInpt = "[]";
}
dataString.push({
name : dataName.replace(/%s/g, index)+"["+v.name+"]"+multInpt,
value : v.value
});
});
});
dataString.push({
name : "curStep",
value : curStep,
});
dataString.push({
name : "nxtStep",
value : nxtStep,
});
if ($(this).hasClass("tcf-validate")){
dataString.push({
name : "validate",
value : true,
});
}
$("#id_melistoolcreator_steps").append(loader);
$.post("/melis/tool-creator-validate-cur-step", dataString).done(function(data){
$("#id_melistoolcreator_steps #loader img").removeClass('spinning-cog').addClass('shrinking-cog');
setTimeout(function(){
if(!data.errors) {
$("#id_melistoolcreator_steps").html(data.html);
$(".melis-toolcreator-steps li").removeClass("active");
var targetId = $("#id_melistoolcreator_steps .steps-content").attr("id");
$("#tc_"+targetId).addClass("active");
}else{
melisHelper.melisKoNotification(data.textTitle, data.textMessage, data.errors);
tcHighlightErrors(0, data.errors, ".tool-creator-step-"+curStep);
$("#id_melistoolcreator_steps #loader").remove();
}
}, 500);
}).fail(function(xhr, textStatus, errorThrown){
console.log( translations.tr_meliscore_error_message );
// alert(xhr.responseText);
});
});
function tcHighlightErrors(success, errors, divContainer) {
// if all form fields are error color them red
$(divContainer + " .form-group label").css("color","inherit");
$(divContainer + " .form-group label").css("color","#686868");
$.each( errors, function( key, error ) {
$(divContainer + " .form-control[name='"+key +"']").prev("label").css("color","red");
});
}
$body.on("change", "input[name='tcf-tool-type']", function(){
$(".tcf-tool-type").parents(".form-group").hide();
$(".tcf-tool-type-"+$(this).val()).parents(".form-group").show();
if ($("input[name='tcf-tool-framework'].tcf-tool-type-"+$(this).val()).length) {
if ($("input[name='tcf-create-framework-tool']").parents(".make-switch").find(".switch-animate").hasClass("switch-on")) {
$("input[name='tcf-tool-framework'].tcf-tool-type-"+$(this).val()).parents(".form-group").show();
}else{
$("input[name='tcf-tool-framework'].tcf-tool-type-"+$(this).val()).parents(".form-group").hide();
}
}
});
$body.on("click", ".tc-reload-dbtbl-cached", function(){
$("#id_melistoolcreator_steps").append(loader);
$.post('/melis/tool-creator-validate-cur-step', {
reloadDbTblCached: true,
curStep: 2,
nxtStep: 3
}).done(function(res){
setTimeout(function(){
$("#id_melistoolcreator_steps #loader").remove();
$("#id_melistoolcreator_steps").html(res);
}, 500);
});
});
$body.on("click", ".melis-toolcreator-steps-table-tabs .widget-head a[data-toggle='tab']", function(){
var type =$(this).data("type");
});
function resetLangDbSelection(disableTlb){
$(".melis-toolcreator-steps-language-db-table-list li").removeClass("melis-toolcreator-disable-db-tbl-item");
if (typeof disableTlb !== "undefined"){
$(".melis-toolcreator-steps-language-db-table-list li[data-table-name='"+disableTlb+"']").addClass("melis-toolcreator-disable-db-tbl-item");
}
$(".melis-toolcreator-steps-language-db-table-list li .fa").removeClass("fa-check-square-o")
.addClass("fa-square-o")
.removeClass("text-success");
$(".melis-toolcreator-steps-language-db-table-columns").html("");
$(".melis-toolcreator-steps-language-db-table-list input[name='tcf-db-table-language-tbl']").val("");
$(".melis-toolcreator-steps-language-db-table-list input[name='tcf-db-table-language-pri-fk']").val("");
$(".melis-toolcreator-steps-language-db-table-list input[name='tcf-db-table-language-lang-fk']").val("");
$(".melis-toolcreator-steps-table-list.melis-toolcreator-steps-language-db-table-list #loader").remove();
}
$body.on("click", ".melis-toolcreator-steps-table-list li", function(){
if ($(this).find(".fa").hasClass("fa-check-square-o") || $(this).hasClass("melis-toolcreator-disable-db-tbl-item")) {
return;
}
var type = $(this).parent("ul").data("type");
var typeSelector = ".melis-toolcreator-steps-"+type+"-table-list";
$(".melis-toolcreator-steps-table-list"+typeSelector+" li .fa").removeClass("fa-check-square-o")
.addClass("fa-square-o")
.removeClass("text-success");
$(this).find(".fa").addClass("fa-check-square-o");
$(this).find(".fa").removeClass("fa-square-o");
$(this).find(".fa").addClass("text-success");
$(".melis-toolcreator-steps-table-list"+typeSelector).append(loader);
$(".melis-toolcreator-steps-"+type+"-table-columns").append(loader);
var input = "tcf-db-table";
if (type !== "primary-db"){
input = "tcf-db-table-language-tbl";
}
$(".melis-toolcreator-steps-"+type+"-table-list input[name='"+input+"']").val($(this).data("table-name"));
if (type === "primary-db") {
$("#melistoolcreator_step3 .alert").hide("slow");
$(".melis-toolcreator-steps-table-list.melis-toolcreator-steps-language-db-table-list").append(loader);
if ($.trim($(".melis-toolcreator-steps-language-db-table-columns").html()) !== ""){
$(".melis-toolcreator-steps-language-db-table-columns").append(loader);
}
}else{
$("#melistoolcreator_step3 .melis-toolcreator-steps-language-db-table-columns .alert").hide("slow");
}
var tableName = $(this).data("table-name");
$.post('/melis/tool-creator-get-tbl-cols', {tableName : tableName, type : type}).done(function(res){
$(".melis-toolcreator-steps-table-list"+typeSelector+" #loader img").removeClass('spinning-cog').addClass('shrinking-cog');
$(".melis-toolcreator-steps-"+type+"-table-columns #loader img").removeClass('spinning-cog').addClass('shrinking-cog');
setTimeout(function(){
$(".melis-toolcreator-steps-table-list"+typeSelector+" #loader").remove();
$(".melis-toolcreator-steps-"+type+"-table-columns").html(res.html);
if (type === "primary-db"){
resetLangDbSelection(tableName);
}else{
// Reset language Foreign key fields
$(".melis-toolcreator-steps-language-db-table-list input[name='tcf-db-table-language-pri-fk']").val("");
$(".melis-toolcreator-steps-language-db-table-list input[name='tcf-db-table-language-lang-fk']").val("");
}
}, 500);
});
});
$body.on("click", ".melis-toolcreator-steps-tbl-cols .tcf-fa-checkbox", function(){
if ($(this).hasClass("fa-check-square-o")){
// Unchecking
if ($(this).hasClass("tcf-fa-checkall")){
$(".tcf-fa-checkbox.tcf-fa-checkitem[data-col-type='"+$(this).data("col-type")+"'").addClass("fa-square-o")
.removeClass("text-success")
.removeClass("fa-check-square-o")
.next("input").attr("checked", false);
if ($(this).hasClass("tfc-table-list")) {
// Disabling field type select input
$("select[name='tcf-db-table-col-display'][data-col-type='"+$(this).data("col-type")+"']").attr("disabled", true);
}
}else{
// Unchecking select all checkbox
$(".tcf-fa-checkbox.tcf-fa-checkall[data-col-type='"+$(this).data("col-type")+"']").addClass("fa-square-o")
.removeClass("text-success")
.removeClass("fa-check-square-o");
}
$(this).addClass("fa-square-o")
.removeClass("text-success")
.removeClass("fa-check-square-o")
.next("input").attr("checked", false);
// Unchecking required if the editable is unchecked
if ($(this).hasClass("tcf-fa-checkbox-editable")) {
var requiredInput = $("input[name='tcf-db-table-col-required'][value='"+$(this).next("input").val()+"']");
var requiredIcon = $("input[name='tcf-db-table-col-required'][value='"+$(this).next("input").val()+"']").prev();
if (requiredIcon.hasClass("fa-check-square-o")) {
requiredIcon.addClass("fa-square-o");
requiredIcon.removeClass("text-success");
requiredIcon.removeClass("fa-check-square-o");
requiredInput.attr("checked", false);
}
// Disabling field type select input
$(this).parents("tr").find("select[name='tcf-db-table-col-type']").attr("disabled", true);
}
if ($(this).hasClass("tfc-table-list")) {
// Disabling field type select input
$(this).parents("tr").find("select[name='tcf-db-table-col-display']").attr("disabled", true);
}
}else{
// Checking
if ($(this).hasClass("tcf-fa-checkall")){
$(".tcf-fa-checkbox.tcf-fa-checkitem[data-col-type='"+$(this).data("col-type")+"']").removeClass("fa-square-o")
.addClass("fa-check-square-o")
.addClass("text-success")
.next("input").attr("checked", true);
if ($(this).hasClass("tfc-table-list")) {
// Disabling field type select input
$("select[name='tcf-db-table-col-display'][data-col-type='"+$(this).data("col-type")+"']").attr("disabled", false);
}
}
$(this).removeClass("fa-square-o")
.addClass("fa-check-square-o")
.addClass("text-success")
.next("input").attr("checked", true);
// Set check "select all checkbox"
if ($(".tcf-fa-checkbox.tcf-fa-checkitem").length === $(".tcf-fa-checkbox.tcf-fa-checkitem.fa-check-square-o").length){
$(".tcf-fa-checkbox.tcf-fa-checkall[data-col-type='"+$(this).data("col-type")+"']").removeClass("fa-square-o")
.addClass("fa-check-square-o")
.addClass("text-success");
}
// Checking editable if the required is checked
if ($(this).hasClass("tcf-fa-checkbox-required")) {
var editableInput = $("input[name='tcf-db-table-col-editable'][value='"+$(this).next("input").val()+"']");
var editableIcon = $("input[name='tcf-db-table-col-editable'][value='"+$(this).next("input").val()+"']").prev();
if (editableIcon.hasClass("fa-square-o")){
editableIcon.removeClass("fa-square-o");
editableIcon.addClass("fa-check-square-o");
editableIcon.addClass("text-success");
editableInput.attr("checked", true);
// Enabling field type select input
$(this).parents("tr").find("select[name='tcf-db-table-col-type']").attr("disabled", false);
}
}
// Checking required if the editable is unchecked
if ($(this).hasClass("tcf-fa-checkbox-editable")) {
// Enabling field type select input
$(this).parents("tr").find("select[name='tcf-db-table-col-type']").attr("disabled", false);
}
if ($(this).hasClass("tfc-table-list")) {
// Disabling field type select input
$(this).parents("tr").find("select[name='tcf-db-table-col-display']").attr("disabled", false);
}
}
});
$body.on("click", ".melis-tc-tool-language.fa", function(){
if ($(this).hasClass("fa-check-square-o")){
// unChecking
$(this).addClass("fa-square-o");
$(this).removeClass("text-success");
$(this).removeClass("fa-check-square-o");
$(".melis-tc-tool-language-db-list").hide(1000, "linear", function(){
$(".tool-creator-step-3 input[name='tcf-db-table-has-language']").val("");
$(".tool-creator-step-3 input[name='tcf-db-table-language-tbl']").val("");
$(".tool-creator-step-3 input[name='tcf-db-table-language-pri-fk']").val("");
$(".tool-creator-step-3 input[name='tcf-db-table-language-lang-fk']").val("");
});
}else{
// Checking
$(this).removeClass("fa-square-o");
$(this).addClass("fa-check-square-o");
$(this).addClass("text-success");
$(".melis-tc-tool-language-db-list").show(1000, "linear", function(){
$(".tool-creator-step-3 input[name='tcf-db-table-has-language']").val(1);
});
}
});
$body.on("click", ".melis-tc-lang-tbl-pt-fk.fa, .melis-tc-lang-tbl-lt-fk.fa", function(){
if ($(this).hasClass("fa-check-square-o")){
// unChecking
$(this).addClass("fa-square-o");
$(this).removeClass("text-success");
$(this).removeClass("fa-check-square-o");
$(".tool-creator-step-3 input[name='"+$(this).data("field-name")+"']").val("");
}else{
var ptFkInpt;
// Checking
if ($(this).hasClass("melis-tc-lang-tbl-pt-fk")){
$(".melis-tc-lang-tbl-pt-fk.fa").addClass("fa-square-o")
.removeClass("text-success")
.removeClass("fa-check-square-o");
var ltFk = $(".melis-tc-lang-tbl-lt-fk.fa[data-tbl-name='"+$(this).data("tbl-name")+"']");
ltFk.addClass("fa-square-o")
.removeClass("text-success")
.removeClass("fa-check-square-o");
ptFkInpt = $(".tool-creator-step-3 input[name='"+ltFk.data("field-name")+"']");
if (ptFkInpt.val() === $(this).data("tbl-name")) {
ptFkInpt.val("");
}
}else{
$(".melis-tc-lang-tbl-lt-fk.fa").addClass("fa-square-o")
.removeClass("text-success")
.removeClass("fa-check-square-o");
var ptFk = $(".melis-tc-lang-tbl-pt-fk.fa[data-tbl-name='"+$(this).data("tbl-name")+"']");
ptFk.addClass("fa-square-o")
.removeClass("text-success")
.removeClass("fa-check-square-o");
ptFkInpt = $(".tool-creator-step-3 input[name='"+ptFk.data("field-name")+"']");
if (ptFkInpt.val() === $(this).data("tbl-name")) {
ptFkInpt.val("");
}
}
$(".tool-creator-step-3 input[name='"+$(this).data("field-name")+"']").val($(this).data("tbl-name"));
$(this).removeClass("fa-square-o");
$(this).addClass("fa-check-square-o");
$(this).addClass("text-success");
}
});
$body.on("switch-change", "div.make-switch[data-input-name='tcf-create-framework-tool']", function(e, data){
if(data.value === false){
$("label[for='tcf-tool-framework']").parents(".form-group").hide();
// $("input[name='tcf-tool-framework']").attr("disabled", true);
}else{
$("label[for='tcf-tool-framework']").parents(".form-group").show();
// $("input[name='tcf-tool-framework']").attr("disabled", false);
}
});
$body.on("click", ".melis-tc-final-content .fa", function(){
if ($(this).hasClass("fa-check-square-o")){
// unChecking
$(this).addClass("fa-square-o");
$(this).removeClass("text-success");
$(this).removeClass("fa-check-square-o");
$(this).next("input").attr("checked", false);
}else{
// Checking
$(this).removeClass("fa-square-o");
$(this).addClass("fa-check-square-o");
$(this).addClass("text-success");
$(this).next("input").attr("checked", true);
}
});
$body.on("click", ".tc-final-step", function(){
var activateModule = false;
if ($(".melis-tc-final-content .fa").hasClass("fa-check-square-o")){
activateModule = true;
}
$.get("/melis/MelisToolCreator/ToolCreator/finalize", {activateModule : activateModule}).done(function(res){
$(".melis-tc-final-content").hide();
$(".melis-tc-final-content").hide();
}).fail(function(){
});
});
});
|