Working campaign editor

This commit is contained in:
james 2009-10-07 19:43:58 +00:00
parent f01eac5b7b
commit 087e89248a

View File

@ -24,71 +24,82 @@
require("../common.inc.php");
require_once("../user.inc.php");
user_auth_required('committee', 'admin');
switch($_GET['action']){
case "campaigninfo_save":
save_campaign_info();
exit;
break;
case "display":
echo "<div id=\"campaignaccordion\" style=\"width: 780px;\">\n";
$q=mysql_query("SELECT * FROM fundraising_campaigns WHERE fiscalyear='{$config['FISCALYEAR']}' ORDER BY name");
while($r=mysql_fetch_object($q)) {
echo "<h3><a href=\"#\">".htmlspecialchars($r->name)."</a></h3>\n";
echo "<div id=\"campaign_{$r->id}\">\n";
echo "<form id=\"campaigninfo_{$r->id}\" method=\"post\" action=\"{$_SERVER['PHP_SELF']}\" onsubmit=\"return campaigninfo_save($r->id)\">\n";
echo "<input type=\"hidden\" name=\"campaign_id\" value=\"{$r->id}\" />\n";
echo "<table>\n";
display_campaign_form($r);
?>
<tr><td colspan="6" style="text-align: center;">
<br />
<input type="submit" value="<?=i18n("Save Campaign")?>"></td>
</tr>
</table>
</form>
</div>
<?
}
?>
<h3><a href="#"><?=i18n("Create New Campaign")?></a></h3>
<div id="campaign_new">
<form id="campaigninfo_new" method="post" action="<?=$_SERVER['PHP_SELF']?>" onsubmit="return campaigninfo_save(-1)">
<input type="hidden" name="campaign_id" value="-1" />
<table>
<?
display_campaign_form();
?>
<tr><td colspan="6" style="text-align: center;">
<br />
<input type="submit" value="<?=i18n("Create Campaign")?>"></td>
</tr>
</table>
</form>
</div>
</div>
<?
exit;
break;
}
function save_campaign_info(){
if($_POST["campaign_id"] == -1){
// this is a new campaign. let's create it.
global $config;
if(!$_POST['name']){
error_("Campaign Name is required");
return;
}
if(!$_POST['startdate']) $startdate=date("Y-m-d"); else $startdate=$_POST['startdate'];
// first, we'll make sure we have some reasonable data
if(array_key_exists('name', $_POST)) $name = $_POST['name'];
if($name == NULL) $name = i18n("New Campaign");
if(array_key_exists('startdate', $_POST)) $startdate = $_POST['startdate'];
if($startdate == NULL) $startdate = date("Y-m-d");
if(array_key_exists('enddate', $_POST)) $enddate = $_POST['enddate'];
if($enddate == NULL) $enddate = date("Y-m-d");
// now we need to create some default data to fill the record
$type = ""; //FIXME - these need more sensible and controlled values
$active = "yes";
$target = 0;
$goal_id = "";
$fiscalyear = $config['FISCALYEAR'];
$query = "INSERT INTO fundraising_campaigns (name, type, startdate, enddate, followupdate, active, target, fundraising_goal, fiscalyear) VALUES (
'$campagin_name,'$type','$startdate',
'$enddate',
DATE_ADD('$startdate', INTERVAL 1 MONTH),
'$active',
'$target',
'$goal_id',
'$fiscalyear')";
mysql_query($query);
// Let's grab the new campaign ID for further use
if(!$_GET['id']) {
$query = "INSERT INTO fundraising_campaigns (name,fiscalyear) VALUES (
'".mysql_real_escape_string($_POST['name'])."','{$config['FISCALYEAR']}')";
mysql_query($query);
$id = mysql_insert_id();
echo json_encode(array("id"=>$id));
happy_("Campaign Created");
}else{
$id = $_POST["campaign_id"];
// we are updating an existing campaign.
echo "Updating an existing campaign<br/>\n";
// build our query
$formfields = array('name', 'type', 'startdate', 'enddate', 'active', 'target', 'fundraising_goal', 'fiscalyear');
$updates = false;
$query = "UPDATE fundraising_campaigns SET ";
foreach($formfields AS $fieldname){
if(array_key_exists($fieldname, $_POST)){
$updates = true;
$query .= $fieldName . "='" . mysql_escape_string(stripslashes($_POST[$fieldname])) . ",";
}
}
if($updates = true){
$query = rtrim($query, ",") . " WHERE id=" . $id;
}
// and execute it
echo $query; //FIXME - not yet tested
}
$id = $_GET["id"];
happy_("Campaign Saved");
}
mysql_query("UPDATE fundraising_campaigns SET
name='".mysql_real_escape_string($_POST['name'])."',
`type`='".mysql_real_escape_string($_POST['type'])."',
startdate='".mysql_real_escape_string($startdate)."',
followupdate='".mysql_real_escape_string($_POST['followupdate'])."',
enddate='".mysql_real_escape_string($_POST['enddate'])."',
target='".mysql_real_escape_string($_POST['target'])."',
fundraising_goal='".mysql_real_escape_string($_POST['fundraising_goal'])."'
WHERE id='$id'");
}
send_header("Campaign Management",
@ -101,67 +112,74 @@ send_header("Campaign Management",
<script type="text/javascript">
$(document).ready(function() {
$("#campaignaccordion").accordion();
update_datefields();
loadcampaigns();
});
function update_datefields(){
function loadcampaigns() {
$("#campaigndiv").load("<?$_SERVER['PHP_SELF']?>?action=display", null, function() {loadcampaignsfinish();});
}
function loadcampaignsfinish(){
$("#campaignaccordion").accordion();
// create the date pickers for our form
$("#startdate").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd'
});
$("#enddate").datepicker({
changeMonth: true,
changeYear: true,
$(".date").datepicker({
dateFormat: 'yy-mm-dd'
});
}
function campaigninfo_save() {
function campaigninfo_save(id) {
//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($("#campaign_id").val()==-1) {
$.post("<?$_SERVER['PHP_SELF']?>?action=campaigninfo_save", $("#campaigninfo").serializeArray(),
function(json) {
open_editor(json.id);
},
"json");
if(id==-1) {
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=campaigninfo_save", $("#campaigninfo_new").serializeArray(), function() { loadcampaigns(); });
} else {
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=campaigninfo_save", $("#campaigninfo").serializeArray());
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=campaigninfo_save&id="+id, $("#campaigninfo_"+id).serializeArray(), function() { loadcampaigns(); });
}
return false;
}
function open_editor(id) {
alert("open_editor");
}
</script>
<div id="campaignaccordion" style="width: 780px;\">
<h3><a href="#"><?=i18n("Create New Campaign")?></a></h3>
<div id="campaignnew">
<form id="campaigninfo" method="post" action="<?=$_SERVER['PHP_SELF']?>" onsubmit="return campaigninfo_save(-1)">
<table class="tableedit">
<?
function display_campaign_form($r=null) {
global $config;
?>
<tr>
<td><?=i18n("Campaign Name")?></td>
<td><input type="text" name="name"></td>
<td><?=i18n("Start Date")?></td>
<td><input type="text" id="startdate" name="startdate" class="date" value="<?=date("Y-m-d")?>"/></td>
<td><?=i18n("End Date")?></td>
<td><input type="text" id="enddate" name="enddate" class="date"/></td>
<td><input type="submit" value="<?=i18n("add");?>"></td>
</tr>
</table>
<input type="hidden" name="campaign_id" value="-1" />
</form>
</div>
<td><?=i18n("Name")?></td>
<td colspan="3"><input size="40" type="text" name="name" value="<?=$r->name?>"></td>
<td><?=i18n("Type")?></td><td><input type="text" name="type" value="<?=$r->type?>"></td>
</tr>
<?
if($r->startdate) $sd=$r->startdate;
else $sd=date("Y-m-d");
?>
<tr>
<td><?=i18n("Start Date")?></td><td><input type="text" name="startdate" class="date" value="<?=$sd?>" /></td>
<td><?=i18n("Follow-Up Date")?></td><td><input type="text" name="followupdate" class="date" value="<?=$r->followupdate?>" /></td>
<td><?=i18n("End Date")?></td><td><input type="text" name="enddate" class="date" value="<?=$r->enddate?>" /></td>
</tr>
<tr>
<td><?=i18n("Target")?></td><td>$<input type="text" id="target" name="target" size="10" value="<?=$r->target?>" /></td>
<td><?=i18n("Default Goal")?></td><td colspan="3">
<?
$fgq=mysql_query("SELECT * FROM fundraising_goals WHERE fiscalyear='{$config['FISCALYEAR']}' ORDER BY name");
echo "<select name=\"fundraising_goal\">";
echo "<option value=\"\">".i18n("Choose Default Goal")."</option>\n";
while($fgr=mysql_fetch_object($fgq)) {
if($r->fundraising_goal==$fgr->goal) $sel="selected=\"selected\""; else $sel="";
echo "<option $sel value=\"$fgr->goal\">".i18n($fgr->name)."</option>\n";
}
echo "</select>\n";
?>
</td>
</tr>
<?
}
?>
<h3><a href="#">Campaign 123</a></h3>
<div id="campaign_123">
</div>
<div id="campaigndiv" style="width: 780px;">
</div>
<?
send_footer();
?>