2004-05-30 13:43:42 +00:00
< ? php
/*
$Id $
2009-10-27 18:47:12 +00:00
This code is part of LDAP Account Manager ( http :// www . ldap - account - manager . org / )
2010-01-01 17:21:46 +00:00
Copyright ( C ) 2003 - 2006 Michael Duergner
2012-07-22 10:37:01 +00:00
2005 - 2012 Roland Gruber
2004-05-30 13:43:42 +00:00
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
2005-07-27 17:43:57 +00:00
*/
2004-05-30 13:43:42 +00:00
2005-07-27 17:43:57 +00:00
/**
* This is the main window of the pdf structure editor .
*
2010-01-01 17:21:46 +00:00
* @ author Michael Duergner
* @ author Roland Gruber
2005-07-27 17:43:57 +00:00
* @ package PDF
2004-05-30 13:43:42 +00:00
*/
2006-03-26 17:51:25 +00:00
/** security functions */
include_once ( " ../../lib/security.inc " );
2005-07-27 17:43:57 +00:00
/** access to PDF configuration files */
2004-05-30 13:43:42 +00:00
include_once ( " ../../lib/pdfstruct.inc " );
2005-07-27 17:43:57 +00:00
/** LDAP object */
2004-05-30 13:43:42 +00:00
include_once ( " ../../lib/ldap.inc " );
2005-07-27 17:43:57 +00:00
/** for language settings */
2004-05-30 13:43:42 +00:00
include_once ( " ../../lib/config.inc " );
2005-07-27 17:43:57 +00:00
/** module functions */
2004-07-16 06:33:37 +00:00
include_once ( " ../../lib/modules.inc " );
2004-05-30 13:43:42 +00:00
// start session
2006-03-26 17:51:25 +00:00
startSecureSession ();
2004-05-30 13:43:42 +00:00
2007-12-30 13:15:39 +00:00
// die if no write access
if ( ! checkIfWriteAccessIsAllowed ()) die ();
2012-07-22 10:37:01 +00:00
checkIfToolIsActive ( 'toolPDFEditor' );
2004-05-30 13:43:42 +00:00
setlanguage ();
2004-06-03 14:26:48 +00:00
// Unset pdf structure definitions in session if set
if ( isset ( $_SESSION [ 'currentPDFStructure' ])) {
2004-09-08 14:40:25 +00:00
unset ( $_SESSION [ 'currentPDFStructure' ]);
unset ( $_SESSION [ 'availablePDFFields' ]);
unset ( $_SESSION [ 'currentPageDefinitions' ]);
2004-06-03 14:26:48 +00:00
}
2004-05-30 13:43:42 +00:00
// check if user is logged in, if not go to login
if ( ! $_SESSION [ 'ldap' ] || ! $_SESSION [ 'ldap' ] -> server ()) {
metaRefresh ( " ../login.php " );
exit ;
}
2008-12-28 19:08:57 +00:00
// check if new template should be created
if ( isset ( $_POST [ 'createNewTemplate' ])) {
2012-03-20 20:44:24 +00:00
metaRefresh ( 'pdfpage.php?type=' . htmlspecialchars ( $_POST [ 'scope' ]));
2008-12-28 19:08:57 +00:00
exit ();
2004-05-30 13:43:42 +00:00
}
2006-01-01 16:30:05 +00:00
$scopes = $_SESSION [ 'config' ] -> get_ActiveTypes ();
2010-04-04 15:00:06 +00:00
$sortedScopes = array ();
for ( $i = 0 ; $i < sizeof ( $scopes ); $i ++ ) {
$sortedScopes [ $scopes [ $i ]] = getTypeAlias ( $scopes [ $i ]);
}
natcasesort ( $sortedScopes );
2004-05-30 13:43:42 +00:00
2011-04-25 18:00:47 +00:00
$container = new htmlTable ();
$container -> addElement ( new htmlTitle ( _ ( 'PDF editor' )), true );
if ( isset ( $_POST [ 'deleteProfile' ]) && ( $_POST [ 'deleteProfile' ] == 'true' )) {
// delete structure
if ( deletePDFStructureDefinition ( $_POST [ 'profileDeleteType' ], $_POST [ 'profileDeleteName' ])) {
$message = new htmlStatusMessage ( 'INFO' , _ ( 'Deleted PDF structure.' ), getTypeAlias ( $_POST [ 'profileDeleteType' ]) . ': ' . htmlspecialchars ( $_POST [ 'profileDeleteName' ]));
$message -> colspan = 10 ;
$container -> addElement ( $message , true );
}
else {
$message = new htmlStatusMessage ( 'ERROR' , _ ( 'Unable to delete PDF structure!' ), getTypeAlias ( $_POST [ 'profileDeleteType' ]) . ': ' . htmlspecialchars ( $_POST [ 'profileDeleteName' ]));
$message -> colspan = 10 ;
$container -> addElement ( $message , true );
}
}
2008-12-28 19:08:57 +00:00
// get list of account types
2004-07-16 06:33:37 +00:00
$availableScopes = '' ;
2008-12-28 19:08:57 +00:00
$templateClasses = array ();
2010-04-04 15:00:06 +00:00
foreach ( $sortedScopes as $scope => $title ) {
2008-12-28 19:08:57 +00:00
$templateClasses [] = array (
2010-04-04 15:00:06 +00:00
'scope' => $scope ,
'title' => $title ,
2008-12-28 19:08:57 +00:00
'templates' => " " );
2010-10-18 19:47:07 +00:00
$availableScopes [ $title ] = $scope ;
2008-12-28 19:08:57 +00:00
}
// get list of templates for each account type
for ( $i = 0 ; $i < sizeof ( $templateClasses ); $i ++ ) {
2010-10-18 19:47:07 +00:00
$templateClasses [ $i ][ 'templates' ] = getPDFStructureDefinitions ( $templateClasses [ $i ][ 'scope' ]);
2008-12-28 19:08:57 +00:00
}
2004-05-30 13:43:42 +00:00
2008-12-28 19:08:57 +00:00
// check if a template should be edited
for ( $i = 0 ; $i < sizeof ( $templateClasses ); $i ++ ) {
if ( isset ( $_POST [ 'editTemplate_' . $templateClasses [ $i ][ 'scope' ]]) || isset ( $_POST [ 'editTemplate_' . $templateClasses [ $i ][ 'scope' ] . '_x' ])) {
2012-03-20 20:44:24 +00:00
metaRefresh ( 'pdfpage.php?type=' . htmlspecialchars ( $templateClasses [ $i ][ 'scope' ]) . '&edit=' . htmlspecialchars ( $_POST [ 'template_' . $templateClasses [ $i ][ 'scope' ]]));
2008-12-28 19:08:57 +00:00
exit ;
}
}
2010-10-18 19:47:07 +00:00
2010-01-01 17:21:46 +00:00
include '../main_header.php' ;
2004-05-30 13:43:42 +00:00
?>
2010-10-18 19:47:07 +00:00
< div class = " userlist-bright smallPaddingContent " >
< form action = " pdfmain.php " method = " post " >
2010-05-26 17:54:00 +00:00
< ? php
if ( isset ( $_GET [ 'savedSuccessfully' ])) {
2010-10-18 19:47:07 +00:00
$message = new htmlStatusMessage ( " INFO " , _ ( " PDF structure was successfully saved. " ), htmlspecialchars ( $_GET [ 'savedSuccessfully' ]));
$message -> colspan = 10 ;
$container -> addElement ( $message , true );
2010-05-26 17:54:00 +00:00
}
2008-12-28 19:08:57 +00:00
2010-10-18 19:47:07 +00:00
// new template
$container -> addElement ( new htmlSubTitle ( _ ( 'Create a new PDF structure' )), true );
$newPDFContainer = new htmlTable ();
$newScopeSelect = new htmlSelect ( 'scope' , $availableScopes );
$newScopeSelect -> setHasDescriptiveElements ( true );
$newScopeSelect -> setWidth ( '15em' );
$newPDFContainer -> addElement ( $newScopeSelect );
$newPDFContainer -> addElement ( new htmlSpacer ( '10px' , null ));
$newPDFContainer -> addElement ( new htmlButton ( 'createNewTemplate' , _ ( 'Create' )));
$container -> addElement ( $newPDFContainer , true );
$container -> addElement ( new htmlSpacer ( null , '10px' ), true );
2004-05-30 13:43:42 +00:00
2010-10-18 19:47:07 +00:00
// existing templates
$container -> addElement ( new htmlSubTitle ( _ ( " Manage existing PDF structures " )), true );
$existingContainer = new htmlTable ();
2008-12-28 19:08:57 +00:00
for ( $i = 0 ; $i < sizeof ( $templateClasses ); $i ++ ) {
2010-10-18 19:47:07 +00:00
$existingContainer -> addElement ( new htmlImage ( '../../graphics/' . $templateClasses [ $i ][ 'scope' ] . '.png' ));
$existingContainer -> addElement ( new htmlSpacer ( '3px' , null ));
$existingContainer -> addElement ( new htmlOutputText ( $templateClasses [ $i ][ 'title' ]));
$existingContainer -> addElement ( new htmlSpacer ( '3px' , null ));
$select = new htmlSelect ( 'template_' . $templateClasses [ $i ][ 'scope' ], $templateClasses [ $i ][ 'templates' ]);
$select -> setWidth ( '15em' );
$existingContainer -> addElement ( $select );
$existingContainer -> addElement ( new htmlSpacer ( '3px' , null ));
$exEditButton = new htmlButton ( 'editTemplate_' . $templateClasses [ $i ][ 'scope' ], 'edit.png' , true );
$exEditButton -> setTitle ( _ ( 'Edit' ));
$existingContainer -> addElement ( $exEditButton );
2011-04-25 18:00:47 +00:00
$deleteLink = new htmlLink ( null , '#' , '../../graphics/delete.png' );
$deleteLink -> setTitle ( _ ( 'Delete' ));
$deleteLink -> setOnClick ( " profileShowDeleteDialog(' " . _ ( 'Delete' ) . " ', ' " . _ ( 'Ok' ) . " ', ' " . _ ( 'Cancel' ) . " ', ' " . $templateClasses [ $i ][ 'scope' ] . " ', ' " . 'template_' . $templateClasses [ $i ][ 'scope' ] . " '); " );
$existingContainer -> addElement ( $deleteLink , true );
2010-10-18 19:47:07 +00:00
$existingContainer -> addElement ( new htmlSpacer ( null , '10px' ), true );
2008-12-28 19:08:57 +00:00
}
2010-10-18 19:47:07 +00:00
$container -> addElement ( $existingContainer , true );
2008-12-28 19:08:57 +00:00
2010-10-18 19:47:07 +00:00
$tabindex = 1 ;
parseHtml ( null , $container , array (), false , $tabindex , 'user' );
?>
</ form >
</ div >
2010-08-21 09:43:52 +00:00
< ? php
2011-04-25 18:00:47 +00:00
// form for delete action
echo '<div id="deleteProfileDialog" class="hidden"><form id="deleteProfileForm" action="pdfmain.php" method="post">' ;
echo _ ( " Do you really want to delete this PDF structure? " );
echo '<br><br><div class="nowrap">' ;
echo _ ( " Structure name " ) . ': <div id="deleteText" style="display: inline;"></div></div>' ;
echo '<input id="profileDeleteType" type="hidden" name="profileDeleteType" value="">' ;
echo '<input id="profileDeleteName" type="hidden" name="profileDeleteName" value="">' ;
echo '<input type="hidden" name="deleteProfile" value="true">' ;
echo '</form></div>' ;
include '../main_footer.php' ;
2010-08-21 09:43:52 +00:00
?>