Split committee management out

This commit is contained in:
james 2010-09-03 16:59:05 +00:00
parent a5f309c022
commit dfb6112e66
4 changed files with 92 additions and 121 deletions

View File

@ -0,0 +1,55 @@
<?
/*
This file is part of the 'Science Fair In A Box' project
SFIAB Website: http://www.sfiab.ca
Copyright (C) 2005 Sci-Tech Ontario Inc <info@scitechontario.org>
Copyright (C) 2005 James Grant <james@lightbox.org>
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, version 2.
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; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
?>
<?
require_once("../common.inc.php");
require_once("../user.inc.php");
require_once("../committee.inc.php");
user_auth_required('admin');
require("../tableeditor.class.php");
/* Now, start the output for this page */
send_header("Committee Management",
array('Committee Main' => 'committee_main.php',
'Administration' => 'admin/index.php' ),
"committee_management");
$_SESSION['last_page'] = 'committee_management';
//make sure storage folder exists
$editor=new TableEditor("committees",
array("name"=>"Committee Name",
)
);
$editor->setPrimaryKey("id");
$editor->setDefaultSortField("name");
$editor->setRecordType("Committee");
$editor->execute();
send_footer();
?>

View File

@ -33,7 +33,7 @@ if($_POST['accounts_id'])
/* Now, start the output for this page */ /* Now, start the output for this page */
send_header("Committee Management", send_header("Committee Member Management",
array('Committee Main' => 'committee_main.php', array('Committee Main' => 'committee_main.php',
'Administration' => 'admin/index.php' ), 'Administration' => 'admin/index.php' ),
"committee_management"); "committee_management");
@ -125,24 +125,15 @@ function actionSubmit()
</script> </script>
<? <?
if($_POST['addcommittee']) if($_POST['committees_id']) {
{
//add a new committee
mysql_query("INSERT INTO committees (name) VALUES ('".mysql_escape_string($_POST['addcommittee'])."')");
echo happy(i18n("Committee successfully added"));
}
if($_POST['committees_id'] && $_POST['committees_ord']) {
//re-order the committees //re-order the committees
$x=0; $x=0;
$ids=$_POST['committees_id']; $ids=$_POST['committees_id'];
$ords=$_POST['committees_ord'];
$titles=$_POST['title']; $titles=$_POST['title'];
$pords = $_POST['order']; $pords = $_POST['order'];
while($ids[$x]) { while($ids[$x]) {
$cid = intval($ids[$x]); $cid = intval($ids[$x]);
mysql_query("UPDATE committees SET ord='".intval($ords[$x])."' WHERE id='$cid'");
$x++; $x++;
$ctitle = $titles[$cid]; $ctitle = $titles[$cid];
@ -185,12 +176,6 @@ if($_POST['action']=="assign")
echo error(("You must choose both a member and a committee")); echo error(("You must choose both a member and a committee"));
} }
if($_GET['deletecommittee']) {
$del = intval($_GET['deletecommittee']);
mysql_query("DELETE FROM committees WHERE id='$del'");
echo happy(i18n("Committee removed"));
}
if($_POST['action']=="remove") { if($_POST['action']=="remove") {
/* user_delete takes care of unlinking the user in other tables */ /* user_delete takes care of unlinking the user in other tables */
user_delete($accounts_id, 'committee'); user_delete($accounts_id, 'committee');
@ -205,37 +190,6 @@ if($_GET['unlinkmember'] && $_GET['unlinkcommittee']) {
echo happy(i18n("Committee member unlinked from committee")); echo happy(i18n("Committee member unlinked from committee"));
} }
echo "<table>";
echo "<tr><td>";
echo "<h4>".i18n("Add Committee")."</h4>\n";
echo "<form method=\"post\" action=\"committees.php\">\n";
echo "<table>\n";
echo "<tr><td>".i18n("Committee Name").": </td><td><input type=\"text\" size=\"15\" name=\"addcommittee\" /></td>";
echo " <td><input type=\"submit\" value=\"".i18n("Add")."\" /></td></tr>\n";
echo "</table>\n";
echo "</form>\n";
echo "</td><td width=\"40\">&nbsp;</td><td>";
echo "<h4>".i18n("Add Committee Member")."</h4>\n";
echo "<form method=\"post\" name=\"addmember\" action=\"committees.php\" onsubmit=\"return neweditor();\">\n";
echo "<table>\n";
echo "<tr><td>".i18n("Member Email").": </td><td>";
echo "<input type=\"text\" size=\"15\" name=\"add_member\" />\n";
echo "</td>\n";
echo " <td><input type=\"submit\" onclick=\"return neweditor();\" value=\"".i18n("Add")."\" /></td></tr>\n";
echo "</table>\n";
echo "<a href=\"committees.php\">".i18n("Reload committee list (needed after adding a new member)")."</a>\n";
echo "</form>\n";
echo "</td></tr>";
echo "</table>";
echo "<hr />";
echo "<h4>".i18n("Committee Member Management")."</h4>\n";
echo "<form name=\"memberaction\" method=\"post\" action=\"committees.php\" onsubmit=\"return actionSubmit()\">\n"; echo "<form name=\"memberaction\" method=\"post\" action=\"committees.php\" onsubmit=\"return actionSubmit()\">\n";
echo "<table>"; echo "<table>";
echo "<tr><td>"; echo "<tr><td>";
@ -290,19 +244,16 @@ if($_GET['unlinkmember'] && $_GET['unlinkcommittee']) {
$q=mysql_query("SELECT * FROM committees ORDER BY ord,name"); $q=mysql_query("SELECT * FROM committees ORDER BY ord,name");
if(mysql_num_rows($q)) if(mysql_num_rows($q))
{ {
echo "<h4>".i18n("Committees")."</h4>";
echo "<form method=\"post\" action=\"committees.php\">\n"; echo "<form method=\"post\" action=\"committees.php\">\n";
echo "<table>"; echo "<table>";
echo "<tr><td colspan=\"2\"></td><td><b>".i18n('Title')."</b></td>"; echo "<tr><td colspan=\"2\"></td><th colspan=\"2\">".i18n('Title within committee / Sort order')."</th>";
echo "<td><b>".i18n('Order')."</b></td>"; echo "</tr>";
echo "<td><b>".i18n("Public Email / Private Email")."</b></td></tr>"; while($r=mysql_fetch_object($q)) {
while($r=mysql_fetch_object($q))
{
echo "<tr>"; echo "<tr>";
echo "<td colspan=\"3\">"; echo "<td colspan=\"4\">";
echo "<input type=\"hidden\" name=\"committees_id[]\" value=\"$r->id\" />"; echo "<input type=\"hidden\" name=\"committees_id[]\" value=\"$r->id\" />";
echo "<input size=\"1\" type=\"text\" name=\"committees_ord[]\" value=\"$r->ord\" />"; // echo "<input size=\"1\" type=\"text\" name=\"committees_ord[]\" value=\"$r->ord\" />";
echo "&nbsp; <b>$r->name</b>"; echo "<b>$r->name</b>";
$q2=mysql_query("SELECT $q2=mysql_query("SELECT
@ -318,11 +269,6 @@ if($_GET['unlinkmember'] && $_GET['unlinkcommittee']) {
ORDER BY ord, ORDER BY ord,
users.lastname "); users.lastname ");
if(mysql_num_rows($q2)==0) {
echo "&nbsp; &nbsp;";
echo "<a title=\"Remove Committee\" onclick=\"return confirmClick('Are you sure you want to remove this committee?');\" href=\"committees.php?deletecommittee=$r->id\"><img src=\"".$config['SFIABDIRECTORY']."/images/16/button_cancel.".$config['icon_extension']."\" border=\"0\" alt=\"Remove Committee\" /></a>";
}
echo "</td></tr>\n"; echo "</td></tr>\n";
echo mysql_error(); echo mysql_error();
while($r2=mysql_fetch_object($q2)) { while($r2=mysql_fetch_object($q2)) {
@ -335,26 +281,12 @@ if($_GET['unlinkmember'] && $_GET['unlinkcommittee']) {
echo "<td valign=\"top\">"; echo "<td valign=\"top\">";
echo "<b>{$u['name']}</b>"; echo "<b>{$u['name']}</b>";
echo "</td><td>"; echo "</td><td>";
echo "<input type=\"text\" value=\"{$r2->title}\" name=\"title[{$r->id}][{$u['accounts_id']}]\" size=\"15\">"; echo "<input type=\"text\" value=\"{$r2->title}\" name=\"title[{$r->id}][{$u['accounts_id']}]\" size=\"25\">";
echo "</td><td>"; echo "</td><td>";
echo "<input type=\"text\" value=\"{$r2->ord}\" name=\"order[{$r->id}][{$u['accounts_id']}]\" size=\"2\">"; echo "<input type=\"text\" value=\"{$r2->ord}\" name=\"order[{$r->id}][{$u['accounts_id']}]\" size=\"2\">";
echo "</td><td>";
if($u['email']) {
list($b,$a)=split("@",$u['email']);
echo "<script language=\"javascript\" type=\"text/javascript\">em('$b','$a')</script>";
}
if($u['emailprivate']) {
if($u['email']) echo " <b>/</b> ";
list($b,$a)=split("@",$u['emailprivate']);
echo "<script language=\"javascript\" type=\"text/javascript\">em('$b','$a')</script>";
}
echo "</td></tr>\n"; echo "</td></tr>\n";
} }
echo "<tr><td colspan=\"2\">&nbsp;</td></tr>\n"; echo "<tr><td colspan=\"4\">&nbsp;</td></tr>\n";
} }
echo "<tr><td colspan=\"2\"><input type=\"submit\" value=\"".i18n("Save Committee Orders and Titles")."\" /></td></tr>\n"; echo "<tr><td colspan=\"2\"><input type=\"submit\" value=\"".i18n("Save Committee Orders and Titles")."\" /></td></tr>\n";
echo "</table>"; echo "</table>";

View File

@ -105,11 +105,11 @@ function neweditor()
<? <?
echo "<div class=\"notice\">"; echo "<div class=\"notice\">";
echo "<a id=\"optionstext\" onclick=\"toggleoptions();return false;\">- ".i18n('Hide Display Options')."</a>"; echo "<a id=\"optionstext\" onclick=\"toggleoptions();return false;\">- ".i18n('Show Display Options')."</a>";
echo "<form method=\"GET\" action=\"$PHP_SELF\">"; echo "<form method=\"GET\" action=\"$PHP_SELF\">";
echo "<div id=\"options\" style=\"display: block;\" >"; echo "<div id=\"options\" style=\"display: none;\" >";
echo "<table><tr><td>".i18n('Type').":</td>"; echo "<table><tr><td>".i18n('Type').":</td>";
$x = 0; $x = 0;
foreach($user_what as $k=>$v ) { foreach($user_what as $k=>$v ) {

View File

@ -1032,9 +1032,11 @@ class TableEditor
$query.=" LIMIT $offset,$this->rowsPerPage"; $query.=" LIMIT $offset,$this->rowsPerPage";
} }
if($this->allowAdding) echo "<div id=\"table-editor-wrapper\">\n";
{ if($this->allowAdding) {
echo "<a href=\"{$_SERVER['PHP_SELF']}?TableEditorAction=add\">".i18n("Add new %1",array($this->recordType))."</a><br /><br />"; echo "<div id=\"table-editor-addnew\">\n";
echo "<a href=\"{$_SERVER['PHP_SELF']}?TableEditorAction=add\">".i18n("Add new %1",array($this->recordType))."</a>";
echo "</div>\n";
} }
if($this->DEBUG) echo $query; if($this->DEBUG) echo $query;
@ -1142,8 +1144,6 @@ class TableEditor
// else // else
// echo "no need to paganate, foundrows=$foundrows, rowsPerPage=".$this->rowsPerPage; // echo "no need to paganate, foundrows=$foundrows, rowsPerPage=".$this->rowsPerPage;
echo " (Total: $foundrows)\n";
if(mysql_num_rows($q)) if(mysql_num_rows($q))
{ {
echo "<table cellspacing=\"0\" class=\"tableview\">"; echo "<table cellspacing=\"0\" class=\"tableview\">";
@ -1157,11 +1157,9 @@ class TableEditor
} }
echo "<th>".i18n("Actions")."</th>"; echo "<th>".i18n("Actions")."</th>";
echo "</tr>"; echo "</tr>";
while($r=mysql_fetch_object($q)) while($r=mysql_fetch_object($q)) {
{
echo "<tr>"; echo "<tr>";
foreach($this->listfields AS $f=>$n) foreach($this->listfields AS $f=>$n) {
{
//figure out what kind of input this should be //figure out what kind of input this should be
$typeq=mysql_query("SHOW COLUMNS FROM `{$this->table}` LIKE '$f'"); $typeq=mysql_query("SHOW COLUMNS FROM `{$this->table}` LIKE '$f'");
$typer=mysql_fetch_object($typeq); $typer=mysql_fetch_object($typeq);
@ -1171,67 +1169,52 @@ class TableEditor
echo "<td valign=\"top\">".$this->format_date($r->$f)."</td>"; echo "<td valign=\"top\">".$this->format_date($r->$f)."</td>";
else if($typer->Type=="datetime") else if($typer->Type=="datetime")
echo "<td valign=\"top\">".$this->format_datetime($r->$f)."</td>"; echo "<td valign=\"top\">".$this->format_datetime($r->$f)."</td>";
else if(substr($f,0,8)=="filename" && $this->uploadPath) else if(substr($f,0,8)=="filename" && $this->uploadPath) {
{
echo "<td valign=\"top\">"; echo "<td valign=\"top\">";
if($this->downloadLink) { if($this->downloadLink) {
$pk=$this->primaryKey; $pk=$this->primaryKey;
echo "<a href=\"{$this->downloadLink}?{$pk}={$r->$pk}\">{$r->$f}</a>"; echo "<a href=\"{$this->downloadLink}?{$pk}={$r->$pk}\">{$r->$f}</a>";
} }
else else {
{
//only show a link to the file if the upload path is inside the document root //only show a link to the file if the upload path is inside the document root
if(strstr(realpath($this->uploadPath),$_SERVER['DOCUMENT_ROOT']) && file_exists($this->uploadPath."/".$editdata[$f])) if(strstr(realpath($this->uploadPath),$_SERVER['DOCUMENT_ROOT']) && file_exists($this->uploadPath."/".$editdata[$f])) {
{
echo "<A href=\"{$this->uploadPath}/{$r->$f}\">{$r->$f}</a>"; echo "<A href=\"{$this->uploadPath}/{$r->$f}\">{$r->$f}</a>";
} }
else else {
{
echo $r->$f; echo $r->$f;
} }
} }
echo "</td>"; echo "</td>";
} }
else if(substr($f,0,7)=="website") else if(substr($f,0,7)=="website") {
{
echo "<td valign=\"top\">"; echo "<td valign=\"top\">";
echo "<a href=\"{$r->$f}\" target=\"_blank\">{$r->$f}</a>"; echo "<a href=\"{$r->$f}\" target=\"_blank\">{$r->$f}</a>";
echo "</td>"; echo "</td>";
} }
else else {
{ if($this->fieldOptions[$f]) {
if($this->fieldOptions[$f]) if(is_array($this->fieldOptions[$f][0])) {
{
if(is_array($this->fieldOptions[$f][0]))
{
//if it is an aray, then we have a key=> and val=> so we need //if it is an aray, then we have a key=> and val=> so we need
//to lookup the key and display the val //to lookup the key and display the val
$TE_Found_Field=false; $TE_Found_Field=false;
foreach($this->fieldOptions[$f] AS $i=>$o) foreach($this->fieldOptions[$f] AS $i=>$o) {
{ if($o['key']==$r->$f) {
if($o['key']==$r->$f)
{
echo "<td valign=\"top\">{$o['val']}</td>"; echo "<td valign=\"top\">{$o['val']}</td>";
$TE_Found_Field=true; $TE_Found_Field=true;
break; break;
} }
} }
if(!$TE_Found_Field) if(!$TE_Found_Field) {
{
echo "<td valign=\"top\"></td>"; echo "<td valign=\"top\"></td>";
} }
} }
else else {
{
//if its not an array, then each element is simply a data value anyways, so we can just show the value //if its not an array, then each element is simply a data value anyways, so we can just show the value
echo "<td valign=\"top\">{$r->$f}</td>"; echo "<td valign=\"top\">{$r->$f}</td>";
} }
} }
else else {
{
echo "<td valign=\"top\">{$r->$f}</td>"; echo "<td valign=\"top\">{$r->$f}</td>";
} }
} }
@ -1240,10 +1223,8 @@ class TableEditor
$pk=$this->primaryKey; $pk=$this->primaryKey;
//custom action buttons go first //custom action buttons go first
if(count($this->actionButtons)) if(count($this->actionButtons)) {
{ foreach($this->actionButtons AS $button) {
foreach($this->actionButtons AS $button)
{
echo "<a title=\"{$button["name"]}\" href=\"{$button["link"]}?$pk=".$r->$pk."\"><img src=\"{$button["icon"]}.$icon_extension\" border=0></a>"; echo "<a title=\"{$button["name"]}\" href=\"{$button["link"]}?$pk=".$r->$pk."\"><img src=\"{$button["icon"]}.$icon_extension\" border=0></a>";
echo "&nbsp;&nbsp;"; echo "&nbsp;&nbsp;";
} }
@ -1261,9 +1242,12 @@ class TableEditor
echo "</tr>"; echo "</tr>";
} }
echo "</table>"; echo "</table>";
echo " (Total: $foundrows)\n";
} }
echo "<br />"; echo "<br />";
echo "</div><!--table-editor-wrapper-->\n";
} }
function month_selector($name,$selected="") function month_selector($name,$selected="")