????

Your IP : 18.188.252.203


Current Path : /usr/local/lsws/add-ons/cpanel/lsws_whm_plugin/View/Model/
Upload File :
Current File : //usr/local/lsws/add-ons/cpanel/lsws_whm_plugin/View/Model/LswsVersionManagerViewModel.php

<?php

/* * ******************************************
 * LiteSpeed Web Server Plugin for WHM
 *
 * @author LiteSpeed Technologies, Inc. (https://www.litespeedtech.com)
 * @copyright (c) 2018-2019
 * ******************************************* */

namespace LsPanel\View\Model;

use \LsPanel\View\Model\BaseViewModel;
use \LsPanel\WhmMod_LiteSpeed_ControlApp;
use \LsPanel\WhmMod_LiteSpeed_Util;
use \LsPanel\WhmPluginLogger;

class LswsVersionManagerViewModel extends BaseViewModel
{

    const FLD_ICON_DIR = 'iconDir';
    const FLD_LSWS_VER = 'lswsVer';
    const FLD_LSWS_NEW_VER = 'lswsNewVer';
    const FLD_LSWS_INSTALLED_VERS = 'lswsInstalledVers';
    const FLD_LSWS_CURR_BUILD = 'lswsCurrBuild';
    const FLD_LSWS_NEW_BUILD = 'lswsNewBuild';
    const FLD_ERR_MSGS = 'errMsgs';
    const FLD_SUCC_MSGS = 'succMsgs';

    /**
     * @var WhmMod_LiteSpeed_Util
     */
    private $util;

    /**
     *
     * @param WhmMod_LiteSpeed_Util  $util
     */
    public function __construct( WhmMod_LiteSpeed_Util $util )
    {
        parent::__construct();

        $this->util = $util;

        $this->init();
    }

    private function init()
    {
        $this->setIconDir();
        $this->setVersionAndBuildData();
        $this->setMsgData();
    }

    private function setIconDir()
    {
        $this->tplData[self::FLD_ICON_DIR] =
                WhmMod_LiteSpeed_ControlApp::ICON_DIR;
    }

    private function setVersionAndBuildData()
    {
        $currBuild = $newBuild = '';

        $verInfo = array();
        $this->util->populateVersionInfo($verInfo);

        if ( isset($verInfo['lsws_build']) ) {
            $currBuild = $verInfo['lsws_build'];
            $newBuild = $verInfo['new_build'];
        }

        $installed = $this->util->GetInstalledVersions();
        natsort($installed);

        $this->tplData[self::FLD_LSWS_VER] = $verInfo['lsws_version'];
        $this->tplData[self::FLD_LSWS_NEW_VER] = $verInfo['new_version'];
        $this->tplData[self::FLD_LSWS_CURR_BUILD] = $currBuild;
        $this->tplData[self::FLD_LSWS_NEW_BUILD] = $newBuild;
        $this->tplData[self::FLD_LSWS_INSTALLED_VERS] =
                array_reverse($installed);
    }

    private function setMsgData()
    {
        $this->tplData[self::FLD_ERR_MSGS] =
                WhmPluginLogger::getUiMsgs(WhmPluginLogger::UI_ERR);
        $this->tplData[self::FLD_SUCC_MSGS] =
                WhmPluginLogger::getUiMsgs(WhmPluginLogger::UI_SUCC);
    }

    public function getTpl()
    {
        return realpath(__DIR__ . '/../Tpl') . '/LswsVersionManager.tpl';
    }

}