299 lines
9.3 KiB
PHP
299 lines
9.3 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
$EditPackagesEditId=0;
|
||
|
|
|
||
|
|
function WritePackagesList($ParentId, $ParentIsLocked)
|
||
|
|
{
|
||
|
|
global $GlobalMysqlHandler;
|
||
|
|
global $GlobalContent;
|
||
|
|
global $GlobalTemplate;
|
||
|
|
global $EditPackagesEditId;
|
||
|
|
|
||
|
|
$ListQuery="SELECT `Id` , `Name` FROM `Packages` WHERE `ParentId` =$ParentId";
|
||
|
|
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
|
||
|
|
|
||
|
|
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'EditPackages'))
|
||
|
|
$GlobalContent .= "<ul style=\"display:block;\">\n";
|
||
|
|
else
|
||
|
|
$GlobalContent .= "<ul style=\"display:none;\">\n";
|
||
|
|
|
||
|
|
if (mysqli_num_rows($ListQuery))
|
||
|
|
{
|
||
|
|
while ($ListData=mysqli_fetch_array($ListQuery))
|
||
|
|
{
|
||
|
|
if ($EditPackagesEditId
|
||
|
|
&& ($EditPackagesEditId==$ListData['Id'])
|
||
|
|
&& !( LockIsActive('Packages',$ListData['Id']) || $ParentIsLocked)
|
||
|
|
)
|
||
|
|
{ //edit entry
|
||
|
|
$GlobalContent .= " <li>\n";
|
||
|
|
$GlobalContent .= ' <a href="index.php?Page=EditPackages&ToDo=DeletePackage&Id='.$ListData['Id'].'" title="'.LangSpellHtml('TagTitleDelete').'">'.OtherGetIcon('Delete',"Button").'</a>';
|
||
|
|
$GlobalContent .= ' <form action="index.php?Page=EditPackages&ToDo=EditpackageSave" method="post">';
|
||
|
|
$GlobalContent .= ' <input type="hidden" name="Id" value="'.$ListData['Id'].'">';
|
||
|
|
$GlobalContent .= '<input type="text" name="Name" value="'.$ListData['Name'].'">';
|
||
|
|
$GlobalContent .= '<select name="MoveToId" title="'.LangSpellHtml('TagTitleMove').'">';
|
||
|
|
if ($ParentId)
|
||
|
|
$GlobalContent .= '<option value="#MOVE#ITEM#UP#">'.LangSpellHtml('TagTitleMoveUp').'</option>';
|
||
|
|
$GlobalContent .= '<option value="" selected>--- '.LangSpellHtml('TagTitleMove').' ---</option>';
|
||
|
|
$MoveItems = NestedLisGetSubelements($ParentId,"Packages");
|
||
|
|
foreach ($MoveItems as $MvItm)
|
||
|
|
{
|
||
|
|
if ($MvItm[0]==$ListData['Id']) continue;
|
||
|
|
$GlobalContent .= '<option value="'.$MvItm[0].'">'.$MvItm[1].'</option>';
|
||
|
|
}
|
||
|
|
$GlobalContent .= "</select>";
|
||
|
|
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'" class="Button">';
|
||
|
|
$GlobalContent .= ' </form>';
|
||
|
|
$GlobalContent .= ' <a href="index.php?Page=EditPackages&ToDo=CancelEditPackage&Id='.$ListData['Id'].'" title="'.LangSpellHtml('TagTitleCancel').'">'.OtherGetIcon('Cancel',"Button").'</a>' ."\n";
|
||
|
|
$GlobalContent .= " </li>\n";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{ //just show entry
|
||
|
|
$GlobalContent .= " <li>\n";
|
||
|
|
if (LockIsActive('Packages',$ListData['Id']) || $ParentIsLocked)
|
||
|
|
{
|
||
|
|
$GlobalContent .= ' '.OtherGetIcon('LockActive');
|
||
|
|
$ParentIsLocked = 1;
|
||
|
|
}
|
||
|
|
elseif (UserHasRight('EditPackages'))
|
||
|
|
{
|
||
|
|
$GlobalContent .= ' <a href="index.php?Page=EditPackages&ToDo=EditPackage&Id='.$ListData['Id'].'" target="_top" title="'.LangSpellHtml('TagTitleEdit').'">';
|
||
|
|
$GlobalContent .= OtherGetIcon('Edit',"Button");
|
||
|
|
}
|
||
|
|
$GlobalContent .= " <a href=\"index.php?Page=EditPackages&ToDo=OpenSublist&SublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name'])."</a>";
|
||
|
|
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Packages').")";
|
||
|
|
$GlobalContent .= " \n</li>\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
WritePackagesList($ListData['Id'],$ParentIsLocked);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (!$EditPackagesEditId && UserHasRight('EditPackages'))
|
||
|
|
{
|
||
|
|
$GlobalContent .= " <li>\n";
|
||
|
|
$GlobalContent .= ' <form action="index.php?Page=EditPackages&ToDo=NewPackage&ParentId='.$ParentId.'" method="post">'."\n";
|
||
|
|
$GlobalContent .= ' <input type="text" name="NewPackageName" value="">'."\n";
|
||
|
|
$GlobalContent .= ' <input type="submit" value="'.LangSpellHtml('ButtonNew').'" class="Button">'."\n";
|
||
|
|
$GlobalContent .= ' </form>'."\n";
|
||
|
|
$GlobalContent .= " </li>\n";
|
||
|
|
}
|
||
|
|
$GlobalContent .= "</ul>\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
if (UserHasRight('EditPackages'))
|
||
|
|
{
|
||
|
|
/////////////////
|
||
|
|
//edit package save
|
||
|
|
if ($ToDo=="EditpackageSave")
|
||
|
|
{
|
||
|
|
if (isset($_POST['Id']) && $_POST['Id'] && isset($_POST['Name']) && $_POST['Name'])
|
||
|
|
{
|
||
|
|
global $GlobalMysqlHandler;
|
||
|
|
$Id = $_POST['Id'];
|
||
|
|
$Name = $_POST['Name'];
|
||
|
|
$MoveId = (isset($_POST['MoveToId']))? $_POST['MoveToId']:0;
|
||
|
|
|
||
|
|
if ($MoveId)
|
||
|
|
{
|
||
|
|
$MoveQuery = "";
|
||
|
|
if ($MoveId=="#MOVE#ITEM#UP#")
|
||
|
|
{
|
||
|
|
$FirstParentId = NestedListGetParentId($Id,'Packages');
|
||
|
|
$MoveId = NestedListGetParentId($FirstParentId,'Packages');
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$FirstParentId = NestedListGetParentId($Id,'Packages');
|
||
|
|
}
|
||
|
|
|
||
|
|
$MoveQuery="UPDATE `Packages` SET `ParentId` = '$MoveId' WHERE `Id` =$Id LIMIT 1 ;";
|
||
|
|
|
||
|
|
if (mysqli_query($GlobalMysqlHandler, $MoveQuery))
|
||
|
|
{
|
||
|
|
MessageSuccess(LangSpell('SentenceNestedListMoved'));
|
||
|
|
NestedListVisibilityUnset($FirstParentId,'EditPackages');
|
||
|
|
NestedListVisibilitySet($MoveId,'EditPackages');
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('SentenceDatabaseError'));
|
||
|
|
ErrorLog("[edit_pacakges.php] Db error on moving element with id $Id to parent id $MoveId");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$ChangeNameQuery="UPDATE `Packages` SET `Name` = '$Name' WHERE `Id` =$Id LIMIT 1 ;";
|
||
|
|
if (!mysqli_query($GlobalMysqlHandler, $ChangeNameQuery))
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('SentenceDatabaseError'));
|
||
|
|
ErrorLog("[edit_pacakges.php] Db error on naming element with id $Id");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
if (isset($_POST['Name']) && !trim($_POST['Name']))
|
||
|
|
MessageError(LangSpell('EditPackagesNoPackageNameGiven'));
|
||
|
|
else
|
||
|
|
{
|
||
|
|
ErrorLog("[edit_pacakges.php] No Id to move down!");
|
||
|
|
MessageError(LangSpell('SentenceUnknownError'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$ToDo="";
|
||
|
|
}
|
||
|
|
|
||
|
|
/////////////////
|
||
|
|
// delete package
|
||
|
|
if ($ToDo=="DeletePackage")
|
||
|
|
{
|
||
|
|
if (isset($_GET['Id']) && $_GET['Id'])
|
||
|
|
{
|
||
|
|
$Id = $_GET['Id'];
|
||
|
|
if (!LockIsActive('Packages',$Id))
|
||
|
|
{
|
||
|
|
global $GlobalMysqlHandler;
|
||
|
|
$DeleteQuery="DELETE FROM `Packages` WHERE `Id` = $Id LIMIT 1";
|
||
|
|
if (mysqli_query($GlobalMysqlHandler, $DeleteQuery))
|
||
|
|
{
|
||
|
|
MessageSuccess(LangSpell('EditPackagesPackageDeleted'));
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('SentenceDatabaseError'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('SentenceLockIsActive'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
ErrorLog("[edit_pacakges.php] No Id to delete package!");
|
||
|
|
MessageError(LangSpell('SentenceUnknownError'));
|
||
|
|
}
|
||
|
|
$ToDo="";
|
||
|
|
}
|
||
|
|
|
||
|
|
////////////////
|
||
|
|
// add new package
|
||
|
|
if ($ToDo=="NewPackage")
|
||
|
|
{
|
||
|
|
if (isset($_GET['ParentId']) && isset($_POST['NewPackageName']))
|
||
|
|
{
|
||
|
|
$ParentId = $_GET['ParentId'];
|
||
|
|
$NewPackageName = $_POST['NewPackageName'];
|
||
|
|
if (LockActivate('Packages',$ParentId))
|
||
|
|
{
|
||
|
|
if (trim($NewPackageName)!="")
|
||
|
|
{
|
||
|
|
global $GlobalMysqlHandler;
|
||
|
|
$InsertQuery="INSERT INTO `Packages` ( `Name` , `ParentId` ) VALUES ( '$NewPackageName', '$ParentId' );";
|
||
|
|
if (mysqli_query($GlobalMysqlHandler, $InsertQuery))
|
||
|
|
{
|
||
|
|
MessageSuccess(LangSpell('EditPackagesNewPackageAdded'));
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('SentenceDatabaseError'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('EditPackagesNoPackageNameGiven'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('SentenceLockIsActive'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
if (!isset($_GET['ParentId']))
|
||
|
|
ErrorLog("[edit_pacakges.php] No ParentId to add new package!");
|
||
|
|
if (!isset($_POST['NewPackageName']))
|
||
|
|
ErrorLog("[edit_pacakges.php] No NewPackageName to add new package!");
|
||
|
|
MessageError(LangSpell('SentenceUnknownError'));
|
||
|
|
}
|
||
|
|
$ToDo="";
|
||
|
|
}
|
||
|
|
|
||
|
|
///////////////
|
||
|
|
// edit package
|
||
|
|
if ($ToDo=="EditPackage")
|
||
|
|
{
|
||
|
|
if (isset($_GET['Id']) && $_GET['Id'])
|
||
|
|
{
|
||
|
|
$EditId = $_GET['Id'];
|
||
|
|
if (LockActivate('Packages',$EditId))
|
||
|
|
{
|
||
|
|
$EditPackagesEditId=$EditId;
|
||
|
|
//NestedListVisibilityUnset($EditId, 'EditPackages');
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('SentenceLockIsActive'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
ErrorLog("[edit_pacakges.php] No Id to edit package");
|
||
|
|
MessageError(LangSpell('SentenceUnknownError'));
|
||
|
|
}
|
||
|
|
$ToDo = "";
|
||
|
|
}
|
||
|
|
|
||
|
|
//////////////////////
|
||
|
|
// cancel edit package
|
||
|
|
if ($ToDo=="CancelEditPackage")
|
||
|
|
{
|
||
|
|
if (isset($_GET['Id']) && $_GET['Id'])
|
||
|
|
{
|
||
|
|
$EditId = $_GET['Id'];
|
||
|
|
if (LockRelease('Packages',$EditId))
|
||
|
|
{
|
||
|
|
$EditPackagesEditId=0;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell('SentenceLockIsActive'));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
ErrorLog("[edit_pacakges.php] No Id to release loack on package");
|
||
|
|
MessageError(LangSpell('SentenceUnknownError'));
|
||
|
|
}
|
||
|
|
$ToDo = "";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if (UserHasRight('EditPackages') || UserHasRight('ViewSTPV'))
|
||
|
|
{
|
||
|
|
///////////////
|
||
|
|
// open sublist
|
||
|
|
if ($ToDo=="OpenSublist")
|
||
|
|
{
|
||
|
|
if (isset($_GET['SublistId']) && $_GET['SublistId'])
|
||
|
|
{
|
||
|
|
NestedListVisibilityToggle($_GET['SublistId'], 'EditPackages');
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
ErrorLog("[edit_pacakges.php] No SublistId to open package!");
|
||
|
|
MessageError(LangSpell('SentenceUnknownError'));
|
||
|
|
}
|
||
|
|
$ToDo="";
|
||
|
|
}
|
||
|
|
|
||
|
|
///////////////
|
||
|
|
// sow packages
|
||
|
|
if ($ToDo=="")
|
||
|
|
WritePackagesList(0,0);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
MessageError(LangSpell("ScentenceNoUserRights"));
|
||
|
|
}
|
||
|
|
?>
|