These changes were done by Sebastian Ruan

Allow the fair to choose calling the signature page either a signature page or a permission form.
Add a comment box for each judge that can only be read by a committee member.  Adding a comment will set a flag in the "manage judges" list.
Add "Update User" button to the list of judges so that a committee member can update a judge to the current year without having to log in as the judge.
This commit is contained in:
idziak 2015-04-08 21:13:02 +00:00
parent 9ec497df9f
commit 21636ce272
12 changed files with 217 additions and 24 deletions

View File

@ -23,6 +23,7 @@
?>
<?
require("../common.inc.php");
include"../config/signaturepage_or_permissionform.php";
require_once("../user.inc.php");
user_auth_required('committee', 'admin');
send_header("Participant Registration",
@ -31,7 +32,7 @@
"participant_registration"
);
echo "<br />";
echo "<a href=\"registration_receivedforms.php\">".i18n("Input Received Signature Forms")."</a> <br />";
echo "<a href=\"registration_receivedforms.php\">".i18n("Input Received $plural_participationform")."</a> <br />";
echo "<a href=\"registration_list.php\">".i18n("Registration List and Student/Project Editor")."</a> <br />";
echo "<a href=\"registration_stats.php\">".i18n("Registration Statistics")."</a> <br />";
echo "<a href=\"registration_webconsent.php\">".i18n("Website Consent")."</a> <br />";

View File

@ -23,11 +23,12 @@
?>
<?
require("../common.inc.php");
include "../config/signaturepage_or_permissionform.php";
require_once("../user.inc.php");
user_auth_required('committee', 'admin');
require("../register_participants.inc.php");
send_header("Input Received Signature Forms",
send_header("Input Received $plural_participationform",
array('Committee Main' => 'committee_main.php',
'Administration' => 'admin/index.php',
'Participant Registration' => 'admin/registration.php')
@ -294,7 +295,7 @@ echo mysql_Error();
{
echo "<form id=\"inputform\" method=\"post\" action=\"registration_receivedforms.php\">";
echo "<input type=\"hidden\" name=\"action\" value=\"received\" />";
echo i18n("Enter the registration number from the signature form: ")."<br />";
echo i18n("Enter the registration number from the $signatureformpermissionform : ")."<br />";
echo "<input id=\"registration_number\" type=\"text\" size=\"15\" name=\"registration_number\" />";
echo "<input type=\"submit\" value=\"".i18n("Lookup Registration Number")."\" />";
echo "</form>";

View File

@ -20,6 +20,11 @@
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
// This file was modified March of 2015 by Sebastian Ruan
/* Flagging for judges has been added to monitor concerns.
Update User button also added; allows super users to update
a judge to the current fair year without logging in as them. */
?>
<?
require_once('../common.inc.php');
@ -46,6 +51,8 @@
message_push(happy(i18n('User deleted.')));
}
send_header("User Editor",
array('Committee Main' => 'committee_main.php',
'Administration' => 'admin/index.php')
@ -62,6 +69,8 @@ function openeditor(id)
}
function toggleoptions()
{
if(document.getElementById('options').style.display == 'none') {
@ -95,10 +104,96 @@ function neweditor()
return false;
}
/* update (id) grabs the current url and appends an action called update as well as the id it is going to renew.
If there is already an action called update and an id the function will change the id to the new
id as determined by the button clicked
update (id) Int -> String
Effects: update(id) reloads the page with the adjusted url
Example: update (2526) => http://localhost/sfiab/testfair/admin/user_list.php?show_types[]=judge&action=update&id=2526 */
function update (id)
{
var url = window.location.href;
// if a previous update button was already clicked
if(url.indexOf('&action=')>-1){
url = url.substring(0,url.indexOf('&action=update'));
url += '&action=update&id='+id;
}
// if there is no ? in the url already present
else if (url.indexOf ('?') == -1) {
url += '?action=update&id='+id;
}
//if '?action...' is present in url
else if(url.indexOf('?action=')>-1){
url = url.substring(0,url.indexOf('?action=update'));
url += '?action=update&id='+id;
}
else{
url += '&action=update&id='+id;
}
// reload using adjusted url
window.location.href=url;
}
</script>
<?
// Begin updating user
if($_GET['action']=='update') {
$id = intval($_GET['id']);
//if no id print error
if(!$id) {
echo "Invalid id for update";
exit;
}
$user = user_load($id);
// Determine if there is a more recent uid that may possibly be in the current FAIRYEAR (allows refresh page to work)
$query = mysql_query("SELECT id,uid,year FROM users WHERE uid='{$user['uid']}'
ORDER BY year DESC LIMIT 1");
$user_new = mysql_fetch_assoc($query);
// Make sure our user is NOT in the current FAIRYEAR (again, this helps with page refresh to work )
if ($user_new['year'] != $config['FAIRYEAR']) {
/* Update user to new year via dupelicating row into new id.
If multiple Roles, all updated */
user_dupe($user, $config['FAIRYEAR']);
message_push(happy(i18n('User Updated')));
//find the newly updated user
$q_reload = mysql_query("SELECT id FROM users WHERE uid='{$user['uid']}'
ORDER BY year DESC LIMIT 1");
$reload_user = mysql_fetch_assoc($q_reload);
?>
<script language="javascript" type="text/javascript">
var new_id=<?=$reload_user['id'];?>;
// open or reopen user_editor_window.php with user's new id
openeditor(new_id);
</script>
<?
}
}
//End update to user
echo "<div class=\"notice\">";
echo "<a id=\"optionstext\" onclick=\"toggleoptions();return false;\">- ".i18n('Hide Display Options')."</a>";
@ -207,9 +302,14 @@ function neweditor()
echo mysql_error();
// echo $querystr;
$num=mysql_num_rows($q);
echo i18n("Listing %1 people total. See the table at the bottom for the totals by status",array($num));
echo mysql_error();
echo i18n("Listing %1 people total. See the table at the bottom for the totals by status <br><br><br>",array($num));
echo i18n(" <lh>Notes:</lh> <ul><li> Deleting users from this list is a permanent operation and cannot be undone. Consider editing the user and deactivating or deleting roles in their account instead.
<li> Updating a user to the current fair year allows you to then complete the user from this list.
<li> A flagged judge indicates there is text in the private information field for that judge.
<li> Only committee members can see text entered into the private information field for judges. This field is not seen nor editable by any judge.");
echo "<thead>";
echo "<tr>";
echo " <th>".i18n("Name")."</th>";
@ -218,6 +318,7 @@ function neweditor()
echo " <th>".i18n("Type(s)")."</th>";
echo " <th>".i18n("Active")."</th>";
echo " <th>".i18n("Complete")."</th>";
echo " <th>".i18n("Flagged")."</th>";
echo " <th>".i18n("Actions")."</th>";
echo "</tr>";
echo "</thead>";
@ -237,9 +338,14 @@ function neweditor()
if(in_array('judge',$show_types)){
$u=user_load_by_uid($r['uid']);
//we also set teh $r array so it displays properly on first load
//we also set the $r array so it displays properly on first load
if(judge_status_update($u)=="complete")
$r['judge_complete']='yes';
else{
$r['judge_complete']='no';
}
}
$types = explode(',', $r['types']);
$span = count($types) > 1 ? "rowspan=\"".count($types)."\"" : '';
@ -289,11 +395,54 @@ function neweditor()
}
echo "</td>";
// Begin flagging process
echo "<td align=\"center\">";
// Must be a judge in order to be flagged
if ($t == 'judge'){
/* Determine if judge is flagged and display X icon.
Icon is clickable. Brings user to user_editor_window file.
Would preferably ALSO bring the user to the judge other tab*/
if($r['flagged_judge'] == '1') {
echo "<a title=\"".i18n("Flagged")."\" href=\"#\" onClick=\"return openeditor({$r['id']});\">";
echo "<img src=\"".$config['SFIABDIRECTORY']."/images/16/flagged.".$config['icon_extension']."\" border=0>";
echo "</a>";
// Otherwise judge is not flagged; display checkmark icon. Also clickable.
} else { echo "<a title=\"".i18n("Not flagged")."\" href=\"#\" onClick=\"return openeditor({$r['id']});\">";
echo "<img src=\"".$config['SFIABDIRECTORY']."/images/16/ok.".$config['icon_extension']."\" border=0>";
echo "</a>";
}
} else {
// Do nothing. Only judges can be flagged.
}
echo "</td>";
//end flagging process
if($first) {
/* Finish off the the first line */
echo "<td $span align=\"center\">";
echo "<a href=\"#\" onclick=\"return openeditor({$r['id']})\"><img border=0 src=\"{$config['SFIABDIRECTORY']}/images/16/edit.{$config['icon_extension']}\"></a>&nbsp;";
echo "<a onclick=\"return confirmClick('Are you sure you wish to completely delete this user?')\" href=\"user_list.php?action=remove&uid={$r['id']}\"><img border=0 src=\"{$config['SFIABDIRECTORY']}/images/16/button_cancel.{$config['icon_extension']}\"></a>";
// If judge not in current fair year need seperate icons so that all icons align nicely in the table
if ($t == 'judge' and $r['year'] != $config['FAIRYEAR']){
echo "<td $span align=\"center\">";
echo "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp"; // aligns icons
echo "<a title = \"Edit User \" href=\"#\" onclick=\"return openeditor({$r['id']})\"><img border=0 src=\"{$config['SFIABDIRECTORY']}/images/16/edit.{$config['icon_extension']}\"></a>&nbsp;";
echo "<a title = \"Delete User\" onclick=\"return confirmClick('Are you sure you wish to completely delete this user?')\" href=\"user_list.php?action=remove&uid={$r['id']}\"><img border=0 src=\"{$config['SFIABDIRECTORY']}/images/16/button_cancel.{$config['icon_extension']}\"></a>";
echo "&nbsp<a title = \"Update User to Current Fair Year\"href=\"#\" onclick=\"update({$r['id']});return false;\"><img border=0 src=\"{$config['SFIABDIRECTORY']}/images/16/update2.{$config['icon_extension']}\" height = \"17\" ></a>";
}else{
echo "<td $span align=\"center\">";
echo "<a href=\"#\" onclick=\"return openeditor({$r['id']})\"><img border=0 src=\"{$config['SFIABDIRECTORY']}/images/16/edit.{$config['icon_extension']}\"></a>&nbsp;";
echo "<a onclick=\"return confirmClick('Are you sure you wish to completely delete this user?')\" href=\"user_list.php?action=remove&uid={$r['id']}\"><img border=0 src=\"{$config['SFIABDIRECTORY']}/images/16/button_cancel.{$config['icon_extension']}\"></a>";
}
echo "</td>";
}
@ -309,7 +458,6 @@ function neweditor()
}
echo "</table>";
echo i18n("Note: Deleting users from this list is a permanent operation and cannot be undone. Consider editting the user and deactivating or deleting roles in their account instead.");
// let's make a table with the complete/incomplete counts and the active/inacteve states
?>

View File

@ -23,6 +23,7 @@
?>
<?
require("../common.inc.php");
require("signaturepage_or_permissionform.php");
require_once("../user.inc.php");
require_once("../chat.inc.php");
user_auth_required('committee', 'config');
@ -46,7 +47,7 @@ draw_chatbox('general');
echo " <td><a href=\"divisions_cwsf.php\">".theme_icon("cwsf_project_divisions")."<br />".i18n("CWSF Project Divisions")."</a></td>";
echo " <td><a href=\"subdivisions.php\">".theme_icon("project_sub_divisions")."<br />".i18n("Project Sub-Divisions")."</a></td>";
echo " <td><a href=\"pagetexts.php\">".theme_icon("page_texts")."<br />".i18n("Page Texts")."</a></td>";
echo " <td><a href=\"signaturepage.php\">".theme_icon("exhibitor_signature_page")."<br />".i18n("Exhibitor Signature Page")."</a></td>";
echo " <td><a href=\"signaturepage.php\">".theme_icon("exhibitor_signature_page")."<br />".i18n("Exhibitor $participationform")."</a></td>";
echo " </tr>\n";
echo " <tr>";
echo " <td><a href=\"judges_questions.php\">".theme_icon("judge_registration_questions")."<br />".i18n("Judge Registration Questions")."</a></td>";

View File

@ -23,9 +23,10 @@
?>
<?
require("../common.inc.php");
require("signaturepage_or_permissionform.php");
require_once("../user.inc.php");
user_auth_required('committee', 'config');
send_header("Signature Page",
send_header("$participationform",
array('Committee Main' => 'committee_main.php',
'SFIAB Configuration' => 'config/index.php')
,"exhibitor_signature_page"
@ -44,7 +45,7 @@
mysql_query("UPDATE signaturepage SET `use`='$usete', `text`='".mysql_escape_string(stripslashes($_POST['teacherdeclaration']))."' WHERE name='teacherdeclaration'");
mysql_query("UPDATE signaturepage SET `use`='$usepa', `text`='".mysql_escape_string(stripslashes($_POST['postamble']))."' WHERE name='postamble'");
mysql_query("UPDATE signaturepage SET `use`='$userf', `text`='' WHERE name='regfee'");
echo happy(i18n("Signature page text successfully saved"));
echo happy(i18n("$sentence_begin_participationform text successfully saved"));
}
echo "<a href=\"../register_participants_signature.php?sample=true\">Preview your signature form as a PDF (as a student would see it)</a><br />";
@ -81,7 +82,7 @@ echo "<br />";
$q=mysql_query("SELECT * FROM signaturepage WHERE name='regfee'");
$r=mysql_fetch_object($q);
if($r->use) $ch="checked=\"checked\""; else $ch="";
echo "<input $ch type=\"checkbox\" name=\"useregfee\" value=\"1\">".i18n("Include registration fee information on the signature page");
echo "<input $ch type=\"checkbox\" name=\"useregfee\" value=\"1\">".i18n("Include registration fee information on the $non_capital_participationform");
echo "<br />";
echo "<br />";
@ -94,7 +95,7 @@ echo "<textarea name=\"postamble\" rows=\"8\" cols=\"80\">".$r->text."</textarea
echo "<br />";
echo "<br />";
echo "<input type=\"submit\" value=\"".i18n("Save Signature Page")."\">";
echo "<input type=\"submit\" value=\"".i18n("Save $non_capital_participationform")."\">";
echo "</form>";
send_footer();

View File

@ -23,6 +23,7 @@
?>
<?
require("common.inc.php");
require("./config/signaturepage_or_permissionform.php");
send_header("Confirmed Participants");
@ -32,7 +33,7 @@
if($r->test!=1)
{
list($d,$t)=explode(" ",$config['dates']['postparticipants']);
echo i18n("Confirmed participants (that signature forms have been received for) will be posted here on %1 at %2. Please do not contact the fair to inquire about receipt of your signature form until after this date (and only if you are not listed here after this date).",array($d,$t));
echo i18n("Confirmed participants (that $signatureformpermissionform have been received for) will be posted here on %1 at %2. Please do not contact the fair to inquire about receipt of your $signatureformpermissionform until after this date (and only if you are not listed here after this date).",array($d,$t));
}
else
{
@ -66,11 +67,11 @@
$lastcat="something_that_does_not_exist";
$lastdiv="something_that_does_not_exist";
echo i18n("The following is a list of all confirmed participants that the signature form has been received for. If you think you registered but you are not on this list, you should contact the %1 immediately.",array($config['fairname']))."<br />";
echo i18n("The following is a list of all confirmed participants that the $signatureformpermissionform has been received for. If you think you registered but you are not on this list, you should contact the %1 immediately.",array($config['fairname']))."<br />";
if($config['regfee']>0)
{
echo "<br />";
echo "<font color=\"red\">*</font>".i18n(" indicates payment was not received with the signature form.");
echo "<font color=\"red\">*</font>".i18n(" indicates payment was not received with the $signatureformpermissionform.");
echo "<br />";
echo "<br />";
}

View File

@ -1 +1 @@
177
178

View File

@ -20,6 +20,11 @@
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
// This file was modified March of 2015 by Sebastian Ruan
// Judges now have a private information field which only committee members can see and edit.
// If information is entered into this field the judge will be flagged in ./admin/user_list.php table.
?>
<?
require_once('common.inc.php');
@ -57,11 +62,22 @@ case 'save':
$u['years_regional'] = intval($_POST['years_regional']);
$u['years_national'] = intval($_POST['years_national']);
$u['highest_psd'] = stripslashes($_POST['highest_psd']);
$u['private_info'] = mysql_escape_string(iconv("UTF-8","ISO-8859-1//TRANSLIT",stripslashes($_POST['private_info'])));
//check if judge has been flagged then update them
if(empty($_POST['private_info'])) {
$u['flagged_judge'] = '0';
}
else {
$u['flagged_judge'] = '1';
}
user_save($u);
questions_save_answers("judgereg",$u['id'],$_POST['questions']);
happy_("Preferences successfully saved");
$u=user_load($eid);
$newstatus=judge_status_other($u);
echo "<script type=\"text/javascript\">";
@ -159,8 +175,10 @@ if($config['judges_specialaward_only_enable'] == 'yes') {
<? $ch = ($u['willing_chair'] == 'yes') ? 'checked="checked"' : ''; ?>
<input <?=$ch?> type="checkbox" name="willing_chair" value="yes" />
</tr><tr>
<td><?=i18n("Highest post-secondary degree")?></td>
<td><input onchange="fieldChanged()" type="text" name="highest_psd" size="35" value="<?=$u['highest_psd']?>" /></td>
</tr><tr>
<td colspan="2"><hr /></td></tr>
</table>
@ -171,6 +189,21 @@ questions_print_answer_editor('judgereg', $u, 'questions');
?>
</table>
<?
if ($_SESSION['users_type'] == 'committee' && committee_auth_has_access('admin') == true){
?>
<table class="editor">
<tr><td colspan="4"><hr /></td></tr><tr>
<?
//<td><?=i18n("Private Information")? > </td><td>
//<input onchange="fieldChanged()" type="textarea" name="private_info" size="35" value="<?=$u['private_info']? >"></td></tr>
echo"<tr><td>".i18n("Private Information").": </td><td><textarea cols=\"110\" rows=\"8\" id=\"private_info\" name=\"private_info\">".htmlspecialchars($u['private_info'])."</textarea><br />";
?>
</table>
<?
}
?>
<br /><br />
<input type="submit" onclick="judgeother_save(); return false;" value="<?=i18n("Save Information")?>" />

View File

@ -23,6 +23,7 @@
?>
<?
require("common.inc.php");
require("./config/signaturepage_or_permissionform.php");
include "register_participants.inc.php";
include "projects.inc.php";
@ -211,7 +212,7 @@ echo "<table><tr><td>";
else
echo error(i18n("No PDF generation library detected"),true);
}
echo i18n("Signature Page");
echo i18n("$participationform");
if($all_complete == true)
echo "</a>";
else
@ -223,7 +224,7 @@ echo "<table><tr><td>";
echo "</td></tr>";
//received information
echo "<tr><td>".i18n("Signature Page Received")."</td><td>";
echo "<tr><td>".i18n("$participationform Received")."</td><td>";
if(registrationFormsReceived())
echo outputStatus("complete");
else
@ -313,7 +314,7 @@ echo "<table><tr><td>";
}
else
{
echo "<tr><td>".error(i18n("We must receive your signature form before you can nominate yourself for special awards"))."</td></tr>";
echo "<tr><td>".error(i18n("We must receive your $signatureformpermissionform before you can nominate yourself for special awards"))."</td></tr>";
}
echo "</table>";

View File

@ -24,6 +24,7 @@
<?
require("common.inc.php");
include "register_participants.inc.php";
include"./config/signaturepage_or_permissionform.php";
require("lpdf.php");
//anyone can access a sample, we dont need to be authenticated or anything for that
@ -69,7 +70,7 @@ echo mysql_error();
//END OF AUTH, now lets try to generate a PDF using only PHP :) this should be fun!
$pdf=new lpdf( i18n($config['fairname']),
i18n("Participant Signature Page (".$registration_number.")"),
i18n("Participant $participationform (".$registration_number.")"),
$_SERVER['DOCUMENT_ROOT'].$config['SFIABDIRECTORY']."/data/logo-200.gif"
);

View File

@ -391,12 +391,13 @@ function user_save_committee($u)
committee_status_update($u);
}
//two new fields added: private_info and flagged_judge
function user_save_judge($u)
{
$fields = array('judge_active','judge_complete','years_school','years_regional','years_national',
'willing_chair','special_award_only',
'cat_prefs','div_prefs','divsub_prefs',
'expertise_other','languages', 'highest_psd');
'expertise_other','languages', 'highest_psd','private_info','flagged_judge');
user_save_type_list($u, 'users_judge', $fields);
}

View File

@ -113,6 +113,7 @@ function activate(type)
$("#activate_"+type).attr('disabled', 'disabled');
$("#deactivate_"+type).removeAttr('disabled');
$("#remove_"+type).removeAttr('disabled');
$("#complete_"+type).removeAttr('disabled');
}
function deactivate(type)
{
@ -120,6 +121,7 @@ function deactivate(type)
$("#activate_"+type).removeAttr('disabled');
$("#deactivate_"+type).attr('disabled', 'disabled');
$("#remove_"+type).attr('disabled', 'disabled');
$("#complete_"+type).attr('disabled', 'disabled');
}
function remove(type)
{
@ -131,6 +133,8 @@ function remove(type)
$("#remove_"+type).attr('disabled', 'disabled');
}
}
</script>
<form id="activate_form">