Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F91575603
addActionEDS.php.wml
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Nov 12, 08:47
Size
16 KB
Mime Type
text/x-c
Expires
Thu, Nov 14, 08:47 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
22285864
Attached To
R3600 invenio-infoscience
addActionEDS.php.wml
View Options
## $Id$
## This file is part of the CERN Document Server Software (CDSware).
## Copyright (C) 2002, 2003, 2004, 2005, 2006 CERN.
##
## The CDSware 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.
##
## The CDSware 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 CDSware; if not, write to the Free Software Foundation, Inc.,
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
<?
require("commonPhpFunctions.php");
?>
#include "cdspage.wml" \
title="Create a new action" \
navtrail_previous_links="<a class=navtrail href=<WEBURL>/admin/<lang:star: index.*.html>>_(Admin Area)_</a> > <a class=navtrail href=<WEBURL>/admin/websubmit/>_(WebSubmit Administration)_</a>" \
navbar_name="admin" \
navbar_select="websubmit"
<?
<protect>
## $Id$
## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES.
?>
<SCRIPT TYPE='text/javascript'>
<!-- hide
function validateIsInt(param)
// This function validates its parameter to ensure that it is an integer
// value.
// Author: Nicholas Robinson
// Email: Nicholas.Robinson@cern.ch
// ca8nro@yahoo.co.uk
// Created: 16/11/2000
// Last Modified: 16/11/2000
{
// Create a flag to indicate that we have found a non-digit value
var nonDigit = false;
for(index = 0; index < param.length; index++)
{
if(!(param[index] >= 0 && param[index] <= 9))
{
// In this case, we've found a non-digit value, and can stop
// searching, as the parameter is clearly not an integer
nonDigit = true;
break;
} // END if
} // END for
return true;
} // END function validateIsInt(param)
function checkRequired(sactname, lactname)
// This is a function to ensure that the user enters the required
// parameters for the action.
// Author: Nicholas Robinson
// Email: Nicholas.Robinson@cern.ch
// ca8nro@yahoo.co.uk
// Created: Long ago!
// Last Modified: 19/12/2000
{
// If the field is left blank by the user...
if((sactname == "") || (lactname == ""))
{ // Alert them, and return false.
alert("Values must be entered into the Action Code,"
+ "Long Action Name fields.");
return false;
} // End if
else // If level has been filled by the user...
{
return true;
} // End else
} // End function checkRequired(param)
// -->
</SCRIPT>
<?
/*********************Function Descriptions***************************/
function enterEDSaction($lactname = "", $dir = "",
$actionbutton = "", $statustext = "", $sactname = "")
{
/*******************************************************************
This function has the task of creating a form in which a user can
enter a new EDS action.
Author: Nicholas Robinson
Email: Nicholas.Robinson@cern.ch
ca8nro@yahoo.co.uk
Created: 19/12/2000
Last Modified: 17/01/2001
*******************************************************************/
# Now, display a quick set of page instructions for the user..
print("<TABLE WIDTH='90%' BGCOLOR='#D3DCE3' ALIGN='center' "
. "CELLSPACING=0 CELLPADDING=0 BORDER=1>\n<TR><TD "
. "ALIGN='center'>\n<P STYLE=\"color: blue; text-align: "
. "center; font-size: small; font-weight: bold\">Below, is "
. "a form in which you can enter the details of a new action."
. "<BR><BR>When you enter a new action, it will not be "
. "accepted by the system unless you have given it a unique "
. "\"Action Code\".<BR>"
. "<BR>You can commit this new action to the database by "
. "clicking on \"SAVE DETAILS\".</P>\n</TD>\n</TR>\n</TABLE>"
. "\n");
# Make a horizontal rule to divide the page sections...
drawSeparator();
print("<FORM ACTION='addActionEDS.php' METHOD='post'>\n"
. "<INPUT TYPE='hidden' NAME='commitAct' VALUE='true'>\n"
. "<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=0 ALIGN='center' "
. "WIDTH='100%'>\n");
# Get the columns list
$columns = mysql_list_fields(DOCS_DATABASE, "sbmACTION");
# Get the number of fields
$numTblFlds = mysql_num_fields($columns);
# Get the data, so that it can be committed for the modification
# date field (md)...
$dateDets = makeEDSmdDate();
# Now display the upper part of the table - fields that are system
# generated...
print("<TABLE WIDTH='100%' ALIGN='center' CELLSPACING=0 "
. "CELLPADDING=0 BORDER=0>\n<TR>\n<TH BGCOLOR='#D3DCE3' "
. "ALIGN='right' WIDTH='20%'>\nCreation "
. "Date: </TH>\n<TD WIDTH='80%' ALIGN='left' BGCOLOR="
. "'#FFFFCC'><INPUT TYPE='readonly' NAME='cd' VALUE='"
. "$dateDets'>\n</TD>\n</TR>\n<TR>\n<TH WIDTH='20%'"
. " BGCOLOR='#D3DCE3' ALIGN='right'>\nModification "
. "Date: </TH>\n<TD WIDTH='80%' ALIGN='left' "
. "BGCOLOR='#FFFFCC'><INPUT TYPE='readonly' NAME='md' "
. "VALUE='$dateDets'>\n</TD>\n</TR>\n");
# Now create the fields that the user can edit...
# Make the sactname field...
print("<TR>\n<TH BGCOLOR='#87CEFA' ALIGN='right' WIDTH='20%'>\n"
. "Action Code: </TH>\n<TD ALIGN='left' WIDTH='80%' "
. "BGCOLOR='#FFFFCC'>\n<INPUT TYPE='text' NAME='sactname' SIZE="
. mysql_field_len($columns, 1) . " VALUE='"
. ereg_replace("'", "'",
htmlspecialchars(${mysql_field_name($columns, 1)}))
. "'>\n</TD>\n</TR>\n");
print("<input type=\"hidden\" name=\"actionbutton\" value=\"\">");
for($indx = 0; $indx < $numTblFlds; $indx++)
{
# Get the name of the current field...
$currentField = mysql_field_name($columns, $indx);
# Ensure we dont once again print certain fields
if(($currentField != "cd") && ($currentField != "md")
&& ($currentField != "sactname")&& ($currentField != "actionbutton"))
{
# First display the form field label...
print("<TR>\n<TH BGCOLOR='#87CEFA' ALIGN='right' "
. "WIDTH='20%'>\n");
if($currentField == "lactname")
{
print("Action Description: ");
} // END if
else
{
print("$currentField" . ": ");
} // END else
print(" </TH>\n<TD ALIGN='left' WIDTH='80%' "
. "BGCOLOR='#FFFFCC'>\n<INPUT TYPE='text' NAME="
. "'$currentField' SIZE=");
if(mysql_field_type($columns, $indx) == "blob")
{
print("60");
} // END if
else
{
print(mysql_field_len($columns, $indx));
} // END else
print(" VALUE='" . ereg_replace("'", "'",
htmlspecialchars(${mysql_field_name($columns, $indx)}))
. "'>\n</TD>\n</TR>\n");
} // END if
} // END for
# Now that the table has been created, it can be closed...
print("</TABLE>\n");
# Now make the commit buttons that must be used for the form...
print("<TABLE ALIGN='center' CELLSPACING=2 CELLPADDING=2 BORDER=0>"
. "<TR>\n<TD ALIGN='left'>\n<INPUT TYPE='button' VALUE='SAVE DETAIL"
. "S' onClick=\"if(checkRequired(sactname.value, lactname.value"
. ")) { if(confirm('Really Commit This New Action"
. "?')) { submit(); } else { return false; } }\">\n</TD><TD ALIGN='"
. "center'>\n<INPUT TYPE='button' VALUE='RESET' onClick=\"reset();"
. "\">\n</TD>\n</FORM>\n<FORM ACTION='allActionsEDS.php' METHOD='po"
. "st'>\n<TD ALIGN='left'>\n<INPUT TYPE='button' VALUE='CANCEL' onC"
. "lick=\"submit();\">\n</TD>\n</FORM>\n</TR>\n</TABLE>\n");
} // END function enterEDSaction()
function displayPage()
{
global $commitAct,$sactname,$lactname,$dir,$actionbutton,$statustext;
if($commitAct)
{
# In this case, the user has entered the details of the new
# action, and these details should be committed to the DB.
# Make sure the sactname field is uppercase...
$sactname = strtoupper($sactname);
# First we can ensure that there is not already an action in the
# DB with the same name as that given to the new action...
# Lock table
mysql_query("LOCK TABLES sbmACTION READ");
$checkRes = mysql_query("SELECT sactname FROM sbmACTION WHERE "
. "sactname = '$sactname'");
if($checkRes)
{
# In this case, the query has worked , so carry on...
if(mysql_num_rows($checkRes) != 0)
{
# Ah-Hah! They have tried to add an action whose ID Code
# is already in use!
mysql_query("UNLOCK TABLES");
# Let the check result go...
mysql_free_result($checkRes);
# Give them an explanatory error message...
print("<P STYLE=\"color: red; text-align: center; font-"
. "size: small; font-weight: bold\">Unable To Commit These"
. " Details. The Action Code Used Already Exists. Try "
. "Again With A New Code.</P>\n");
# Now a JavaScript alert...
print("<SCRIPT TYPE='text/javascript'>\nalert('ERROR: It "
. "was not possible to commit these details for the new "
. "action because the action code chosen already exists in"
. DOCS_DATABASE . ".\\n\\nTry submitting he details again "
. "with a new action code.</SCRIPT>\n");
# Now redisplay the page...
enterEDSaction($lactname, $dir, $actionbutton,
$statustext);
} // END if
else
{
# The details should now be fine to commit...
# Unlock tables.
mysql_query("UNLOCK TABLES");
# Let the previous result set go...
mysql_free_result($checkRes);
# Make the insert string...
$updStr = "INSERT INTO sbmACTION (lactname, sactname, dir, "
. "cd, md, actionbutton, statustext) VALUES"
. "('$lactname', '$sactname', '$dir', '$cd', '$md', "
. "'$actionbutton', '$statustext')";
# LOCK sbmACTION table as write.
mysql_query("LOCK TABLES sbmACTION WRITE");
# Commit the details...
$updRes = mysql_query($updStr);
if($updRes)
{
# Query worked...
if(mysql_affected_rows() == 1)
{
# Insertion successful...alert user, email admin, and
# redirect browser...
# UNLOCK TABLES.
mysql_query("UNLOCK TABLES");
print("<SCRIPT TYPE='text/javascript'>\nalert('New "
. "Action Added.');\n</SCRIPT>\n");
print("<P STYLE=\"color: green; text-align: center; "
. "font-size: large\">The New Action Has Been Added."
. "</P>\n");
$msgTxt = "A new action has been added to the "
. DOCS_DATABASE;
$msgTxt .= " database.";
$msgTxt .= " This action is the $sactname "
. "action.\n\n";
$msgTxt .= "WebSubmit Administrator (";
$msgTxt .= makeDate();
$msgTxt .= ")";
# Now send the mail..
mail(ADMIN_EMAIL, "$sactname Action Added to "
. "EDS/WebSubmit", $msgTxt,
"From: WebSubmit_Administrator");
# Redirect the browser...
print("<FORM ACTION='allActionsEDS.php' METHOD='post"
. "' NAME='referForm'>\n<INPUT TYPE='hidden'>"
. "</FORM>\n");
print("<SCRIPT TYPE='text/javascript'>\n"
. "setTimeout(\"document.referForm.submit();\", "
. "1000);\n</SCRIPT>\n");
} // END if
else
{
# Unable to add the thing...
# Now unlock the ACTION table.
mysql_query("UNLOCK TABLES");
# Alert the user...
print("<P STYLE=\"color: red; text-align: center; "
. "font-size: small; font-weight: bold\">Unable To "
. "Commit These Details. Try Again Later.</P>\n");
print("<SCRIPT TYPE='text/javascript'>\nalert('"
. "ERROR: It was not possible to commit the details"
. " for the new action.\\n\\nTry again, or contact "
. "the system administrator.');\n</SCRIPT>\n");
# Redisplay the form - with the details...
enterEDSaction($lactname, $dir, $actionbutton,
$statustext, $sactname);
} // END else
} // END if
else
{
# Couldn't execute insert query
# Now unlock the sbmACTION table.
mysql_query("UNLOCK TABLES");
# Alert the user...
print("<P STYLE=\"color: red; text-align: center; "
. "font-size: small; font-weight: bold\">Unable To "
. "Execute The Query To Commit These Details. Try "
. "Again Later.</P>\n");
print("<SCRIPT TYPE='text/javascript'>\nalert('ERROR:"
. " It was not possible to execute the query to commit"
. " the details for the new action.\\n\\nTry again, or"
. " contact the system administrator.');\n</SCRIPT>\n");
# Redisplay the form - with the details...
enterEDSaction($lactname, $dir, $actionbutton,
$statustext, $sactname);
} // END else
} // END else
} // END if
else
{
# In this case, we were unable to read from the sbmACTION table
# to see if there was already a record withthe same action
# code as the action that we have just attempted to add. We
# should therefore not try to add the new action, incase we
# cause key inconsistencies in the sbmACTION table. Instead,
# simply redisplay the form, with the new action data in it.
# Unlock tables.
mysql_query("UNLOCK TABLES");
# Alert the user of the problem...
print("<P STYLE=\"color: red; text-align: center; font-size: "
. "small; font-weight: bold\">Unable To Commit These Details."
. " Try Again Later.</P>\n");
print("<SCRIPT TYPE='text/javascript'>\nalert('ERROR: It was "
. "not possible to perform a query upon the sbmACTION table.\\n"
. "This meant that it was not possible to commit the new acti"
. "on\\n\\nTry again later, or inform the system administrato"
. "r.');\n</SCRIPT>\n");
# Now redisplay the form...
enterEDSaction($lactname, $dir, $actionbutton,
$statustext, $sactname);
} // END else
} // END if
else
{
# In this case, this is the first call to the page, so we should
# just display the form in which the new action will be entered.
enterEDSaction();
} // END else
}
/**********************Start of main script***************************/
# Connect to the MySQL server
serverConnect(MYSQLDOCMACHINE, MYSQLDOCUSERID, MYSQLDOCPASSWORD);
# Select the CDS Search database...
dbSelect(DOCS_DATABASE);
$auth = canUseWebSubmitAdmin($uid);
if (!$auth[0])
outWarning($auth[1]);
else
displayPage();
/************************End of main script***************************/
</protect>
?>
Event Timeline
Log In to Comment