forked from science-ation/science-ation
40a49c8567
Start on the donor management interface Try to make the donor tab 'look pretty'
417 lines
17 KiB
PHP
417 lines
17 KiB
PHP
<?
|
|
/*
|
|
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) 2008 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("../common.inc.php");
|
|
require_once("../user.inc.php");
|
|
user_auth_required('committee', 'admin');
|
|
|
|
switch($_GET['action']) {
|
|
case 'organizationinfo_load':
|
|
$id=intval($_GET['id']);
|
|
$q=mysql_query("SELECT * FROM sponsors WHERE id='$id'");
|
|
$ret=mysql_fetch_assoc($q);
|
|
echo json_encode($ret);
|
|
exit;
|
|
break;
|
|
|
|
case 'organizationinfo_save':
|
|
$id=intval($_POST['sponsor_id']);
|
|
if($id==-1) {
|
|
$q=mysql_query("INSERT INTO sponsors (year) VALUES ('".$config['FAIRYEAR']."')");
|
|
$id=mysql_insert_id();
|
|
echo json_encode(array("id"=>$id));
|
|
}
|
|
|
|
if($id) {
|
|
$exec="UPDATE sponsors SET ".
|
|
"organization='".mysql_escape_string(stripslashes($_POST['organization']))."', ".
|
|
"address='".mysql_escape_string(stripslashes($_POST['address']))."', ".
|
|
"city='".mysql_escape_string(stripslashes($_POST['city']))."', ".
|
|
"province_code='".mysql_escape_string(stripslashes($_POST['province_code']))."', ".
|
|
"postalcode='".mysql_escape_string(stripslashes($_POST['postalcode']))."', ".
|
|
"phone='".mysql_escape_string(stripslashes($_POST['phone']))."', ".
|
|
"tollfree='".mysql_escape_string(stripslashes($_POST['tollfree']))."', ".
|
|
"fax='".mysql_escape_string(stripslashes($_POST['fax']))."', ".
|
|
"email='".mysql_escape_string(stripslashes($_POST['email']))."', ".
|
|
"website='".mysql_escape_string(stripslashes($_POST['website']))."', ".
|
|
"notes='".mysql_escape_string(stripslashes($_POST['notes']))."', ".
|
|
"donationpolicyurl='".mysql_escape_string(stripslashes($_POST['donationpolicyurl']))."', ".
|
|
"fundingselectiondate='".mysql_escape_string(stripslashes($_POST['fundingselectiondate']))."', ".
|
|
"waiveraccepted='".mysql_escape_string(stripslashes($_POST['waiveraccepted']))."', ".
|
|
"taxreceiptrequired='".mysql_escape_string(stripslashes($_POST['taxreceiptrequired']))."' ".
|
|
"WHERE id='$id'";
|
|
mysql_query($exec);
|
|
|
|
//FIXME accept the logo
|
|
//"logo='".mysql_escape_string(stripslashes($_POST['logo']))."', ".
|
|
|
|
}
|
|
exit;
|
|
break;
|
|
|
|
case 'sponsorshipinfo_load':
|
|
$id=intval($_GET['id']);
|
|
$ret=array();
|
|
echo json_encode($ret);
|
|
exit;
|
|
break;
|
|
|
|
case 'contactsinfo_load':
|
|
$sponsors_id=intval($_GET['id']);
|
|
$q=mysql_query("SELECT id,
|
|
uid,
|
|
year,
|
|
firstname,
|
|
lastname,
|
|
deleted,
|
|
salutation,
|
|
email,
|
|
phonework,
|
|
phonecell,
|
|
`primary`
|
|
FROM users,users_sponsor
|
|
WHERE
|
|
`types` LIKE '%sponsor%'
|
|
AND sponsors_id='$sponsors_id'
|
|
AND users_sponsor.users_id=users.id
|
|
AND users.deleted='no'
|
|
ORDER BY year DESC");
|
|
echo mysql_error();
|
|
|
|
echo "<table class=\"tableview\">";
|
|
echo "<tr>";
|
|
echo " <th>".i18n("Year")."</th>";
|
|
echo " <th>".i18n("Name")."</th>";
|
|
echo " <th>".i18n("Email")."</th>";
|
|
echo " <th>".i18n("Phone (Work)")."</th>";
|
|
echo " <th>".i18n("Phone (Cell)")."</th>";
|
|
echo " <th>".i18n("Primary")."</th>";
|
|
echo " <th>Actions</th>";
|
|
echo "</tr>\n";
|
|
|
|
while($r=mysql_fetch_object($q)) {
|
|
echo "<tr>\n";
|
|
echo " <td>$r->year</td>\n";
|
|
echo " <td>";
|
|
if($r->salutation) echo $r->salutation." ";
|
|
echo "$r->firstname $r->lastname</td>\n";
|
|
echo " <td>";
|
|
if($r->email) {
|
|
list($eb,$ea)=split("@",$r->email);
|
|
echo $r->email;
|
|
}
|
|
else
|
|
echo " ";
|
|
|
|
echo " </td>";
|
|
echo " <td>$r->phonework</td>\n";
|
|
echo " <td>$r->phonecell</td>\n";
|
|
$p = i18n(($r->primary=='yes')?'Yes':'No');
|
|
echo " <td>$p</td>\n";
|
|
echo " <td align=\"center\">";
|
|
//FIXME: should we just go to /user_personal.php here instead?
|
|
echo "<a href=\"sponsor_contacts.php?sponsors_id=$sponsors_id&action=edit&edit=$r->id\"><img border=\"0\" src=\"".$config['SFIABDIRECTORY']."/images/16/edit.".$config['icon_extension']."\"></a>";
|
|
echo " ";
|
|
echo "<a onclick=\"return confirmClick('Are you sure you want to remove this contact?')\" href=\"sponsor_contacts.php?sponsors_id=$sponsors_id&action=delete&delete=$r->id\"><img border=0 src=\"".$config['SFIABDIRECTORY']."/images/16/button_cancel.".$config['icon_extension']."\"></a>";
|
|
echo " </td>\n";
|
|
|
|
|
|
echo "</tr>\n";
|
|
}
|
|
echo "</table>\n";
|
|
|
|
exit;
|
|
break;
|
|
}
|
|
|
|
send_header("Donor Management",
|
|
array('Committee Main' => 'committee_main.php',
|
|
'Administration' => 'admin/index.php',
|
|
'Fundraising' => 'admin/fundraising.php')
|
|
);
|
|
|
|
?>
|
|
<script type="text/javascript">
|
|
/* Setup the popup window */
|
|
$(document).ready(function() {
|
|
/*`
|
|
$("#open_editor").dialog({
|
|
bgiframe: true, autoOpen: false,
|
|
modal: true, resizable: false,
|
|
draggable: false
|
|
});
|
|
*/
|
|
|
|
$("#editor_tabs").tabs({
|
|
show: function(event, ui) {
|
|
switch(ui.panel.id) {
|
|
case 'editor_tab_organization':
|
|
update_organizationinfo();
|
|
break;
|
|
case 'editor_tab_sponsorship':
|
|
update_sponsorshipinfo();
|
|
break;
|
|
case 'editor_tab_contacts':
|
|
update_contactsinfo();
|
|
break;
|
|
case 'editor_tab_activity':
|
|
update_activityinfo();
|
|
break;
|
|
}
|
|
},
|
|
selected: 0,
|
|
});
|
|
|
|
$("#organizationinfo_fundingselectiondate").datepicker({ dateFormat: 'yy-mm-dd', showOn: 'button', buttonText: "<?=i18n("calendar")?>" });
|
|
|
|
});
|
|
|
|
|
|
var sponsor_id=0;
|
|
|
|
function open_editor(id) {
|
|
sponsor_id=id;
|
|
$("#donor_editor").show();
|
|
$("#searchbrowse").hide();
|
|
|
|
if(id==-1) {
|
|
$('#editor_tabs').tabs('option', 'selected', 0);
|
|
$('#editor_tabs').tabs('option', 'disabled', [1,2,3]);
|
|
|
|
}
|
|
else {
|
|
$('#editor_tabs').tabs('option', 'selected', 0);
|
|
$('#editor_tabs').tabs('option', 'disabled', []);
|
|
}
|
|
|
|
update_organizationinfo();
|
|
return false;
|
|
}
|
|
|
|
function open_search() {
|
|
$("#donor_editor").hide();
|
|
$("#searchbrowse").show();
|
|
|
|
|
|
}
|
|
function update_organizationinfo()
|
|
{
|
|
var id=sponsor_id;
|
|
if(!sponsor_id)
|
|
return false;
|
|
if(sponsor_id==-1) {
|
|
$("#sponsor_id").val(-1);
|
|
return false;
|
|
}
|
|
|
|
$.getJSON("<?=$_SERVER['PHP_SELF']?>?action=organizationinfo_load&id="+id,
|
|
function(json){
|
|
$("#sponsor_id").val(json.id);
|
|
$("#organizationinfo_organization").val(json.organization);
|
|
$("#organizationinfo_address").val(json.address);
|
|
$("#organizationinfo_city").val(json.city);
|
|
$("#organizationinfo_province_code").val(json.province_code);
|
|
$("#organizationinfo_postalcodd").val(json.postalcode);
|
|
$("#organizationinfo_phone").val(json.phone);
|
|
$("#organizationinfo_tollfree").val(json.tollfree);
|
|
$("#organizationinfo_fax").val(json.fax);
|
|
$("#organizationinfo_email").val(json.email);
|
|
$("#organizationinfo_website").val(json.website);
|
|
$("#organizationinfo_donationpolicyurl").val(json.donationpolicyurl);
|
|
$("#organizationinfo_fundingselectiondate").val(json.fundingselectiondate);
|
|
$("#organizationinfo_notes").val(json.notes);
|
|
// For some reason, with checkboxes, these have to be arrays
|
|
$("[name=waiveraccepted]").val([json.waiveraccepted]);
|
|
$("[name=taxreceiptrequired]").val([json.taxreceiptrequired]);
|
|
});
|
|
}
|
|
|
|
function organizationinfo_save() {
|
|
|
|
//if we're creating we need to do the post, and get the id it returns, so we can re-open the popup window with that id
|
|
if($("#sponsor_id").val()==-1) {
|
|
$.post("<?$_SERVER['PHP_SELF']?>?action=organizationinfo_save", $("#organizationinfo").serializeArray(),
|
|
function(json) {
|
|
open_editor(json.id);
|
|
},
|
|
"json");
|
|
}
|
|
else
|
|
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=organizationinfo_save", $("#organizationinfo").serializeArray());
|
|
return false;
|
|
}
|
|
|
|
function update_sponsorshipinfo()
|
|
{
|
|
var id=sponsor_id;
|
|
$.getJSON("<?=$_SERVER['PHP_SELF']?>?action=sponsorshipinfo_load&id="+id,
|
|
function(json){
|
|
$("#sponsor_id").val(json.id);
|
|
});
|
|
}
|
|
|
|
function sponsorshipinfo_save() {
|
|
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=sponsorshipinfo_save", $("#sponsorshipinfo").serializeArray());
|
|
return false;
|
|
}
|
|
|
|
function update_contactsinfo()
|
|
{
|
|
var id=sponsor_id;
|
|
$("#editor_tab_contacts").load("<?=$_SERVER['PHP_SELF']?>?action=contactsinfo_load&id="+id);
|
|
}
|
|
|
|
function contactsinfo_save() {
|
|
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=contactsinfo_save", $("#contactsinfo").serializeArray());
|
|
return false;
|
|
}
|
|
|
|
|
|
function update_activityinfo()
|
|
{
|
|
var id=sponsor_id;
|
|
$.getJSON("<?=$_SERVER['PHP_SELF']?>?action=activityinfo_load&id="+id,
|
|
function(json){
|
|
$("#sponsor_id").val(json.id);
|
|
});
|
|
}
|
|
|
|
function activityinfo_save() {
|
|
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=activityinfo_save", $("#activityinfo").serializeArray());
|
|
return false;
|
|
}
|
|
|
|
function donorsearch() {
|
|
$("#searchresults").load("donors_search.php", $("#searchform").serializeArray());
|
|
return false;
|
|
}
|
|
|
|
</script>
|
|
<?
|
|
|
|
|
|
if($_GET['action']=="delete" && $_GET['delete'])
|
|
{
|
|
//dont allow any deleting until we figure out what we need to do, infact, i think we never should hard delete
|
|
//this should only soft-delete so things like awards from previous years are still all linked correctly.
|
|
// mysql_query("DELETE FROM sponsors WHERE id='".$_GET['delete']."'");
|
|
// echo happy("Sponsors cannot be deleted");
|
|
}
|
|
|
|
echo "<table cellspacing=2 width=740 border=0><tr>";
|
|
echo "<td>";
|
|
echo "<a href=\"#\" onclick=\"open_editor(-1)\">Add New Donor(s)</a>\n";
|
|
echo "</td>";
|
|
echo "<td>";
|
|
echo "<a href=\"#\" onclick=\"open_search()\">View/Modify Donor(s)</a>\n";
|
|
echo "</td>";
|
|
echo "</tr></table>";
|
|
echo "<hr />";
|
|
?>
|
|
|
|
<div id="donor_editor" title="Donor Editor" style="display: none">
|
|
<div id="editor_tabs">
|
|
<ul>
|
|
<li><a href="#editor_tab_organization"><span><?=i18n('Donor Details')?></span></a></li>
|
|
<li><a href="#editor_tab_sponsorship"><span><?=i18n('Donations')?></span></a></li>
|
|
<li><a href="#editor_tab_contacts"><span><?=i18n('Contacts')?></span></a></li>
|
|
<li><a href="#editor_tab_activity"><span><?=i18n('Activity Log')?></span></a></li>
|
|
</ul>
|
|
|
|
<div id="editor_tab_organization">
|
|
<form enctype="multipart/form-data" id="organizationinfo">
|
|
<input type="hidden" name="sponsor_id" id="sponsor_id" value="0">
|
|
<table class="tableedit" border=0>
|
|
<tr><td><?=i18n("Donor Type")?></td><td>
|
|
<input id="donortype_individual" type="radio" name="donortype" value="individual" /><label for="donortype_individual"><?=i18n("Individual")?></label>
|
|
<input id="donortype_organization" type="radio" name="donortype" value="organization" checked="checked"/><label for="donortype_organization"><?=i18n("Organization")?></label>
|
|
</td></tr>
|
|
<tr><td><?=i18n("Name")?></td><td colspan="5"><input class="translatable" type="text" id="organizationinfo_organization" name="organization" size="60" maxlength="128" /></td></tr>
|
|
<tr><td><?=i18n("Address 1")?></td><td colspan="5"><input id="organizationinfo_address" type="text" name="address" size="60" maxlength="64" /></td></tr>
|
|
<tr><td><?=i18n("Address 2")?></td><td colspan="5"><input id="organizationinfo_address2" type="text" name="address2" size="60" maxlength="64" /></td></tr>
|
|
<tr><td><?=i18n("City")?></td><td><input id="organizationinfo_city" type="text" name="city" size="16" maxlength="32" /></td>
|
|
<td><?=i18n($config['provincestate'])?></td><td>
|
|
<? emit_province_selector("province_code","","id=\"organizationinfo_province_code\""); ?>
|
|
</td>
|
|
<td><?=i18n($config['postalzip'])?></td><td><input id="organizationinfo_postalcode" type="text" name="postalcode" size="8" maxlength="7" /></td></tr>
|
|
<tr><td><?=i18n("Phone")?></td><td><input type="text" id="organizationinfo_phone" name="phone" size="16" maxlength="32" /></td>
|
|
<td><?=i18n("Toll Free")?></td><td><input type="text" id="organizationinfo_tollfree" name="tollfree" size="16" maxlength="32" /></td>
|
|
<td><?=i18n("Fax")?></td><td><input type="text" id="organizationinfo_fax" name="fax" size="16" maxlength="32" /></td></tr>
|
|
<tr><td><?=i18n("Email")?></td><td><input type="text" id="organizationinfo_email" name="email" size="16" maxlength="128" /></td>
|
|
<td><?=i18n("Website")?></td><td><input type="text" id="organizationinfo_website" name="website" size="16" maxlength="128" /></td>
|
|
<td><?=i18n("Donation Policy")?></td><td><input id="organizationinfo_donationpolicyurl" type="text" name="donationpolicyurl" size="16" maxlength="128" /></td></tr>
|
|
<tr><td><?=i18n("Funding Selection Date")?></td><td><input id="organizationinfo_fundingselectiondate" type="text" name="fundingselectiondate" size="10" maxlength="10" /></td>
|
|
<td><?=i18n("Logo")?></td><td colspan="3"><input type="file" name="logo" size="16" /></td></tr>
|
|
<tr><td><?=i18n("Waiver Accepted")?></td><td>
|
|
<input type="radio" id="organizationinfo_waiveraccepted_no" name="waiveraccepted" value="no"><label for="organizationinfo_waiveraccepted_no"><?=i18n("No")?></label>
|
|
<input type="radio" id="organizationinfo_waiveraccepted_yes" name="waiveraccepted" value="yes"><label for="organizationinfo_waiveraccepted_yes"><?=i18n("Yes")?></label>
|
|
</td>
|
|
<td><?=i18n("Tax Receipt Required")?></td><td colspan="3">
|
|
<input type="radio" id="organizationinfo_taxreceiptrequired_no" name="taxreceiptrequired" value="no"><label for="organizationinfo_taxreceiptrequired_no"><?=i18n("No")?></label>
|
|
<input type="radio" id="organizationinfo_taxreceiptrequired_yes" name="taxreceiptrequired" value="yes"><label for="organizationinfo_taxreceiptrequired_yes"><?=i18n("Yes")?></label>
|
|
</td></tr>
|
|
|
|
<tr><td><?=i18n("Notes")?></td><td colspan="5"><textarea id="organizationinfo_notes" name="notes" rows="4" cols="60"></textarea></td></tr>
|
|
</table>
|
|
<input type="submit" value="Save" onClick="return organizationinfo_save()" />
|
|
</form>
|
|
</div>
|
|
<div id="editor_tab_sponsorship">
|
|
sponsorship
|
|
</div>
|
|
<div id="editor_tab_contacts">
|
|
</div>
|
|
<div id="editor_tab_activity">
|
|
activity
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div id="searchbrowse" style="display: none;">
|
|
<form id="searchform" method="post" action="donors.php" onsubmit="return donorsearch()">
|
|
<?=i18n("Search")?>: <input type="text" name="search" />
|
|
<input id="donortype_individual" type="checkbox" name="donortype[]" value="individual" checked="checked" /><label for="donortype_individual"><?=i18n("Individual")?></label>
|
|
<input id="donortype_organization" type="checkbox" name="donortype[]" value="organization" checked="checked"/><label for="donortype_organization"><?=i18n("Organization")?></label>
|
|
<input type="submit" value="<?=i18n("Browse")?>" />
|
|
</form>
|
|
</div>
|
|
<div id="searchresults">
|
|
</div>
|
|
<?
|
|
|
|
if($_GET['action']=="add") {
|
|
?>
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
open_editor(-1);
|
|
});
|
|
</script>
|
|
<?
|
|
}
|
|
|
|
send_footer();
|
|
|
|
?>
|