Files
grzanieplus.pl/apps/backend/modules/stCategory/templates/managerSuccess.php
2025-03-12 17:06:23 +01:00

204 lines
9.8 KiB
PHP

<?php
use_helper("stAdminGenerator");
use_stylesheet("backend/stCategory.css?v4");
use_javascript("/jQueryTools/jstree/js/jstree.min.js?v1");
?>
<?php st_include_partial("stCategory/header", array("title" => __("Menedżer kategorii"), 'favorite' => array('add_title' => false))) ?>
<?php st_include_partial('stCategory/list_menu'); ?>
<?php st_include_partial('stAdminGenerator/message'); ?>
<div>
<form id="category_tree_form" class="admin_form" action="<?php echo st_url_for("stCategory/addTree") ?>" method="post">
<?php echo st_admin_section_start(); ?>
<?php echo st_admin_get_form_field('category_tree_name', __("Nazwa drzewa"), $sf_request->getParameter("category_tree_name"), '_category_tree_name') ?>
<?php echo st_admin_section_end() ?>
</form>
<div id="category_tree_container">
<?php foreach ($roots as $root): $id = $root["metadata"]["id"]; ?>
<div class="category_tree">
<div class="category_tree_actions">
<a class="category_tree_action help" href="<?php echo st_url_for("@stCategory?action=delete&id=".$id) ?>" title="<?php echo __("Usuń drzewo", null, "stCategoryTree") ?>" data-admin-confirm="<?php echo __("Zamierzasz usunąć całe drzewo kategorii. Jesteś pewien, że chcesz kontynuować?", null, "stCategoryTree") ?>" data-admin-action="delete"><?php echo st_admin_get_icon('delete') ?></a>
<a class="category_tree_action help" <?php echo $root["metadata"]["root-position"] <= 1 ? " disabled" : "" ?>" href="<?php echo st_url_for("@stCategory?action=setRootPosition&move=up&id=".$id) ?>" title="<?php echo __("Przenieś drzewo do góry", null, "stCategoryTree") ?>"><?php echo st_admin_get_icon('prev') ?></a>
<a class="category_tree_action help" <?php echo $root["metadata"]["root-position"] >= $maxRootPosition ? " disabled" : "" ?>" href="<?php echo st_url_for("@stCategory?action=setRootPosition&move=down&id=".$id) ?>" title="<?php echo __("Przenieś drzewo w dół", null, "stCategoryTree") ?>"><?php echo st_admin_get_icon('next') ?></a>
</div>
<div id="category_tree_<?php echo $id ?>"></div>
</div>
<script>
jQuery(function($) {
$("#category_tree_<?php echo $id ?>").jstree({
"core": {
"animation": 100
},
"plugins": ["themes", "json_data", "dnd", "ui", "crrm", "contextmenu"],
"themes": {
"url": "/jQueryTools/jstree/themes/default/style.css",
"theme": "default"
},
"crrm": {
"move": {
"check_move": function(m) {
if (("after" == m.p || "before" == m.p) && this._get_parent(m.r) < 0) {
return false;
}
if (this._get_parent(m.o) < 0) {
return false;
}
return true;
}
}
},
"json_data": {
"progressive_render": true,
"progressive_unload": true,
"data": function(node, cb) {
if (node == -1) {
cb(<?php echo json_encode($root) ?>);
} else {
$.get("<?php echo st_url_for("@stCategory?action=ajaxJstreeJson") ?>", { "id": node.data("id") } , function(response) {
cb(response);
});
}
}
},
"ui": {
"select_limit": 1,
"initially_select": ["<?php echo $sf_request->getParameter('category_id') ? "category-".$sf_request->getParameter('category_id') : "" ?>"]
},
"contextmenu": {
"select_node": true,
"items": function(node) {
var items = {
"create": {
"label": "<?php echo __("Dodaj", null, "stCategoryTree") ?>",
"action": function(node) {
this.create(node, "last", {
data: "<?php echo __("Nowa kategoria", null, "stCategoryTree") ?>",
});
},
"separator_after": true,
},
rename: {
"label": "<?php echo __("Zmień nazwę", null, "stCategoryTree") ?>",
"action": function(node) {
this.rename(node);
}
},
"remove": {
"label": "<?php echo __("Usuń", null, "stCategoryTree") ?>",
"action": function(node) {
if (window.confirm("<?php echo __("Zamierzasz usunąć kategorię z drzewa. Jesteś pewien, że chcesz kontynuować?", null, "stCategoryTree") ?>")) {
var tree = this;
$(document).trigger("preloader", "show");
$.post("<?php echo st_url_for("@stCategory?action=ajaxDelete") ?>", { "id": node.data("id") }, function(response) {
$(document).trigger("preloader", "close");
if (!response.error)
{
tree.delete_node(node);
}
else
{
window.alert(response.error);
}
});
}
},
"_disabled": node.data('is-root'),
"separator_after": true,
},
"edit": {
"label": "<?php echo __("Edytuj", null, "stCategoryTree") ?>",
"action": function(node) {
$(document).trigger("preloader", "show");
var location = "<?php echo st_url_for("@stCategory?action=edit&id=__id__") ?>";
window.location = location.replace("__id__", node.data("id"));
},
"submenu": false,
},
}
return items;
}
}
}).on("rename_node.jstree", function(e, data) {
$(document).trigger("preloader", "show");
var node = data.rslt.obj;
if (node.data("id")) {
$.post("<?php echo st_url_for("@stCategory?action=ajaxRename") ?>", { "id": node.data("id"), "name": data.rslt.name }, function() {
$(document).trigger("preloader", "close");
});
} else {
var parent = data.inst._get_parent(node);
$.post("<?php echo st_url_for("@stCategory?action=ajaxAdd") ?>", { "parent_id": parent.data("id"), "name": data.rslt.name }, function(response) {
node.data("id", response.id);
$(document).trigger("preloader", "close");
});
}
}).on("move_node.jstree", function(e, data) {
var tree = data.inst;
var node = data.rslt.o;
var target = data.rslt.r;
var type = data.rslt.p;
var params = { "id": node.data("id") };
switch (type) {
case "after":
var next = tree._get_next(node, true);
if (!next) {
var parent = tree._get_parent(target);
params.parent_id = parent.data("id");
} else {
params.sibling_id = next.data("id");
}
break;
case "last":
params.parent_id = target.data("id");
break;
case "before":
params.sibling_id = target.data("id");
break;
}
$(document).trigger("preloader", "show");
$.post("<?php echo st_url_for("@stCategory?action=ajaxMove") ?>", params, function(response) {
$(document).trigger("preloader", "close");
});
});
});
</script>
<?php endforeach; ?>
</div>
</div>
<script>
jQuery(function($) {
$("#category_tree_container .category_tree_action").click(function() {
var action = $(this);
if (action.hasClass("disabled")) {
return false;
}
if (action.data("admin-confirm") && !window.confirm(action.data('admin-confirm'))) {
return false;
}
if (!action.data("admin-confirm")) {
$(document).trigger("preloader", "show");
}
window.location = action.prop('href');
});
});
</script>
<?php st_include_partial("stCategory/footer") ?>