<?php
#-------------------------------------------------------------------------
# Module: Newsletter Made Simple
#        (c) to 2008 by Paul Lempkepf
#        (c) 2008 and on by Robert Campbell (calguy1000@cmsmadesimple.org)
#
#  An addon module for CMS Made Simple to provide a flexible
#  mailing list solution.
#
#-------------------------------------------------------------------------
# CMSMS - CMS Made Simple is (c) 2005 by Ted Kulp (wishy@cmsmadesimple.org)
# Visit the CMSMS Homepage at: http://www.cmsmadesimple.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; either version 2 of the License, or
# (at your option) any later version.
#
# However, as a special exception to the GPL, this software is distributed
# as an addon module to CMS Made Simple.  You may not use this software
# in any Non GPL version of CMS Made simple, or in any version of CMS
# Made simple that does not indicate clearly and obviously in its admin
# section that the site was built with CMS Made simple.
#
# 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; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Or read it online: http://www.gnu.org/licenses/licenses.html#GPL
#
#-------------------------------------------------------------------------
#END_LICENSE
if( !isset($gCms) ) exit;
if (!$this->CheckPermission('Manage NMS Jobs')) return;


//
// provide a form that allows the user to select one or more lists
// and one message, and create a job.
//

$this->SetCurrentTab('jobs');
if( isset($params['cancel']) ) {
    $this->SetMessage($this->Lang('op_cancelled'));
    $this->RedirectToTab($id);
}

// get the messages
$messages = array();
$q = "SELECT * FROM ".NMS_MESSAGES_TABLE.' ORDER BY modified DESC';
$tmp = $db->GetArray($q);
if( !is_array($tmp) || count($tmp) == 0 ) {
    $this->SetError($this->Lang('error_nomessages'));
    $this->RedirectToTab($id);
    return;
}

foreach( $tmp as $row ) {
    $messages[$row['messageid']] = $row['subject'].' : '.$row['entered'];
}

// get the lists
$lists = $this->GetListsAsArray(array('active'=>1,'populated'=>1));

// create a default job
$job = new nms_job;
$job['title'] = $this->Lang('jobname').': '.strftime('%x %X');

try {
    // if we are given a jobid, load the job parts
    if( isset($params['jobid']) ) $job = nms_job::load($params['jobid']);

    if( isset($params['submit']) || isset($params['submitstart']) ) {
        if( isset($params['jobname']) ) $job['title'] = $params['jobname'];

        if( !isset($params['messagelist']) ) throw new Exception($this->Lang('error_nomessagesselected'));

        if( !isset($params['listlist']) ) throw new Exception($this->Lang('error_nolistsselected'));

        $job->clear_parts();
        foreach($params['messagelist'] as $messageid) {
            foreach( $params['listlist'] as $listid ) {
                $job->add_part($listid, $messageid);
            }
        }

        $job->save();

        if( isset($params['submitstart']) ) {
            $job->start();
            $this->SetMessage($this->Lang('msg_jobstarted'));
        }
        else {
            $this->SetMessage($this->Lang('msg_jobcreated'));
        }
        $this->RedirectToTab($id);
    }

}
catch( Exception $e ) {
    $smarty->assign('error',1);
    $smarty->assign('message',$e->GetMessage());
}

$parms = array();
if( isset($params['jobid']) ) $parms['jobid'] = $params['jobid'];
$smarty->assign('startform', $this->CGCreateFormStart($id,'create_edit_job',$returnid,$parms));
$smarty->assign('endform',$this->CreateFormEnd());
$smarty->assign('job',$job);
$smarty->assign('messagelist',$messages);
$smarty->assign('lists',$lists);
echo $this->ProcessTemplate('createjob.tpl');

?>
