Add target attribute in menu

This commit is contained in:
Dan 2025-07-04 09:26:52 +07:00
commit 3f6fe237dc
2 changed files with 20 additions and 4 deletions

View file

@ -20,7 +20,8 @@ function parseMenus($menus) {
}
function parseMenu($menu) {
$li = '<li class="dd-item" data-class="'. $menu->class .'" data-id="'. $menu->id .'" data-name="'.$menu->name.'" data-slug="'.htmlspecialchars($menu->slug, FILTER_SANITIZE_URL).'">';
$target = !empty($menu->target) ? 'data-target="'.$menu->target.'"' : null;
$li = '<li class="dd-item" data-class="'. $menu->class .'" data-id="'. $menu->id .'" data-name="'.$menu->name.'" '.$target.' data-slug="'.htmlspecialchars($menu->slug, FILTER_SANITIZE_URL).'">';
$li .= '<div class="dd-handle">'.$menu->name.'</div>';
$li .= '<span class="button-delete btn btn-danger btn-xs" style="margin-right:0.5rem" data-owner-id="'.$menu->id.'">'.i18n('Delete').'</span>';
$li .= '<span class="button-edit btn btn-primary btn-xs" data-owner-id="'.$menu->id.'">'.i18n('Edit').'</span>';
@ -50,6 +51,10 @@ function parseMenu($menu) {
<input type="text" class="form-control" id="addInputSlug" placeholder="<?php echo i18n('item_slug');?>" required>
</div>
<div class="form-group">
<label for="addInputTarget">Target (<?php echo i18n('optional');?>)</label>
<input type="text" class="form-control" id="addInputTarget" placeholder="_blank, _self, _parent etc.">
</div>
<div class="form-group">
<label for="addInputClass"><?php echo i18n('CSS_Class_Optional');?></label>
<input type="text" class="form-control" id="addInputClass" placeholder="<?php echo i18n('item_class');?>">
</div>
@ -58,15 +63,19 @@ function parseMenu($menu) {
<form id="menu-editor" style="display: none;">
<h4>Editing <span id="currentEditName"></span></h4>
<div class="form-group">
<label for="addInputName"><?php echo i18n('Name')?></label>
<label for="editInputName"><?php echo i18n('Name')?></label>
<input type="text" class="form-control" id="editInputName" placeholder="<?php echo i18n('Link_name')?>" required>
</div>
<div class="form-group">
<label for="addInputSlug"><?php echo i18n('Slug');?></label>
<label for="editInputSlug"><?php echo i18n('Slug');?></label>
<input type="text" class="form-control" id="editInputSlug" placeholder="<?php echo i18n('item_slug');?>">
</div>
<div class="form-group">
<label for="addInputClass"><?php echo i18n('CSS_Class_Optional');?></label>
<label for="editInputTarget">Target (<?php echo i18n('optional');?>)</label>
<input type="text" class="form-control" id="editInputTarget" placeholder="_blank, _self, _parent etc.">
</div>
<div class="form-group">
<label for="editInputClass"><?php echo i18n('CSS_Class_Optional');?></label>
<input type="text" class="form-control" id="editInputClass" placeholder="<?php echo i18n('item_class');?>">
</div>
<button class="btn btn-primary btn-sm" id="editButton"><?php echo i18n('Save_Edit');?></button>

View file

@ -74,6 +74,7 @@ var menuEditor = $("#menu-editor");
var editButton = $("#editButton");
var editInputName = $("#editInputName");
var editInputSlug = $("#editInputSlug");
var editInputTarget = $("#editInputTarget");
var editInputClass = $("#editInputClass");
var currentEditName = $("#currentEditName");
@ -84,6 +85,7 @@ var prepareEdit = function () {
editInputName.val(target.data("name"));
editInputSlug.val(target.data("slug"));
editInputTarget.val(target.data("target"));
editInputClass.val(target.data("class"));
currentEditName.html(target.data("name"));
editButton.data("owner-id", target.data("id"));
@ -101,10 +103,12 @@ var editMenuItem = function () {
var newName = editInputName.val();
var newSlug = editInputSlug.val();
var newTarget = editInputTarget.val();
var newClass = editInputClass.val();
target.data("name", newName);
target.data("slug", newSlug);
target.data("target", newTarget);
target.data("class", newClass);
target.find("> .dd-handle").html(newName);
@ -126,6 +130,7 @@ var newIdCount = new Date().getTime();
var addToMenu = function () {
var newName = $("#addInputName").val();
var newSlug = $("#addInputSlug").val();
var newTarget = $("#addInputTarget").val();
var newClass = $("#addInputClass").val();
var newId = newIdCount;
@ -134,6 +139,7 @@ var addToMenu = function () {
'data-class="' + newClass + '" ' +
'data-id="' + newId + '" ' +
'data-name="' + newName + '" ' +
'data-target="' + newTarget + '" ' +
'data-slug="' + newSlug + '">' +
'<div class="dd-handle">' + newName + '</div> ' +
'<span class="button-delete button-delete-' + newId + ' btn btn-danger btn-xs" ' +
@ -159,6 +165,7 @@ var addToMenu = function () {
// clear input
$("#addInputName").val('');
$("#addInputSlug").val('');
$("#addInputTarget").val('');
$("#addInputClass").val('');
};