Skip to content
Snippets Groups Projects
upgrade.php 3.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jared Hancock's avatar
    Jared Hancock committed
    <?php
    /*********************************************************************
        upgrade.php
    
        osTicket Upgrade Wizard
    
        Peter Rotich <peter@osticket.com>
    
        Copyright (c)  2006-2013 osTicket
    
    Jared Hancock's avatar
    Jared Hancock committed
        http://www.osticket.com
    
        Released under the GNU General Public License WITHOUT ANY WARRANTY.
        See LICENSE.TXT for details.
    
        vim: expandtab sw=4 ts=4 sts=4:
    **********************************************************************/
    
    Peter Rotich's avatar
    Peter Rotich committed
    require_once 'admin.inc.php';
    require_once INCLUDE_DIR.'class.upgrader.php';
    
    
    //$_SESSION['ost_upgrader']=null;
    
    $upgrader = new Upgrader(TABLE_PREFIX, UPGRADE_DIR.'streams/');
    
    $errors=array();
    if($_POST && $_POST['s'] && !$upgrader->isAborted()) {
        switch(strtolower($_POST['s'])) {
            case 'prereq':
    
                    $errors['err']=__('Nothing to do! System already upgraded to the current version');
    
                } elseif(!$upgrader->isUpgradable()) {
    
                    $errors['err']=__('The upgrader does NOT support upgrading from the current vesion!');
    
                } elseif(!$upgrader->check_prereq()) {
    
                    $errors['prereq']=__('Minimum requirements not met! Refer to Release Notes for more information');
    
                } elseif(!strcasecmp(basename(CONFIG_FILE), 'settings.php')) {
    
                    $errors['err']=__('Config file rename required to continue!');
    
                    $upgrader->setState('upgrade');
    
                break;
            case 'upgrade': //Manual upgrade.... when JS (ajax) is not supported.
    
                if($upgrader->getTask()) {
    
    Peter Rotich's avatar
    Peter Rotich committed
                    $upgrader->doTask();
    
                } elseif($ost->isUpgradePending() && $upgrader->isUpgradable()) {
    
                    $upgrader->upgrade();
    
                } elseif(!$ost->isUpgradePending()) {
    
                    $upgrader->setState('done');
                }
    
                if(($errors=$upgrader->getErrors()))  {
                    $upgrader->setState('aborted');
                }
                break;
            default:
    
                $errors['err']=__('Unknown action');
    
        }
    }
    
    switch(strtolower($upgrader->getState())) {
        case 'aborted':
    
    Peter Rotich's avatar
    Peter Rotich committed
            $inc='aborted.inc.php';
    
            break;
        case 'upgrade':
            $inc='upgrade.inc.php';
            break;
        case 'done':
    
    Peter Rotich's avatar
    Peter Rotich committed
            $inc='done.inc.php';
    
            $inc='prereq.inc.php';
    
            if($upgrader->isAborted())
    
    Peter Rotich's avatar
    Peter Rotich committed
                $inc='aborted.inc.php';
    
            elseif(!strcasecmp(basename(CONFIG_FILE), 'settings.php'))
                $inc='rename.inc.php';
    
            elseif(!$ost->isUpgradePending())
    
                $errors['err']=sprintf(__('Nothing to do! System already upgraded to <b>%s</b> with no pending patches to apply.'),$ost->getVersion());
    
    Peter Rotich's avatar
    Peter Rotich committed
            elseif(!$upgrader->isUpgradable())
    
                $errors['err']=sprintf(__('The upgrader does NOT support upgrading from the current patch [%s]!'), $cfg->getSchemaSignature());
    
    $nav = new AdminNav($thisstaff);
    
    Peter Rotich's avatar
    Peter Rotich committed
    $nav->setTabActive('dashboard');
    
    $nav->addSubMenu(array('desc'=>__('Upgrader'),
                               'title'=>__('Upgrader'),
    
    Peter Rotich's avatar
    Peter Rotich committed
                               'href'=>'upgrade.php',
                               'iconclass'=>'preferences'),
                            true);
    $ost->addExtraHeader('<script type="text/javascript" src="./js/upgrader.js"></script>');
    require(STAFFINC_DIR.'header.inc.php');
    require(UPGRADE_DIR.$inc);
    require(STAFFINC_DIR.'footer.inc.php');
    
    Jared Hancock's avatar
    Jared Hancock committed
    ?>