204 lines
9.8 KiB
PHP
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") ?>
|