partstock/pages/edit_packages.php

299 lines
9.3 KiB
PHP
Raw Normal View History

2018-12-17 17:50:23 +01:00
<?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"));
}
?>