예제 #1
0
function reportOrganization($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $credentials)
{
    global $arrPermission;
    $pOrganization = new paloSantoOrganization($pDB);
    $pACL = new paloACL($pDB);
    $arrData = array();
    $arrOrgs = false;
    $arrProp["name"] = null;
    $arrProp["domain"] = null;
    $arrProp["state"] = 'all';
    if ($credentials["userlevel"] == "superadmin") {
        $arrProp["name"] = getParameter("fname");
        $arrProp["domain"] = getParameter("fdomain");
        $arrProp["state"] = getParameter("fstate");
        $total = $pOrganization->getNumOrganization($arrProp);
    } else {
        $arrProp["id"] = $credentials["id_organization"];
        $total = $pOrganization->getNumOrganization($arrProp);
    }
    if ($total === false) {
        $total = 0;
        $smarty->assign("mb_title", _tr("Error"));
        $smarty->assign("mb_message", _tr("Couldn't be retrieved organization data"));
    }
    $limit = 20;
    $oGrid = new paloSantoGrid($smarty);
    $oGrid->setLimit($limit);
    $oGrid->setTotal($total);
    $offset = $oGrid->calculateOffset();
    $end = $offset + $limit <= $total ? $offset + $limit : $total;
    $url['menu'] = $module_name;
    $url['fname'] = $arrProp["name"];
    $url['fstate'] = $arrProp["state"];
    $url['fdomain'] = $arrProp["domain"];
    $oGrid->setTitle(_tr('Organization List'));
    $oGrid->setURL($url);
    $oGrid->setWidth("99%");
    $oGrid->setStart($total == 0 ? 0 : $offset + 1);
    $oGrid->setEnd($end);
    $oGrid->setTotal($total);
    $arrColumns = array();
    if ($credentials["userlevel"] == "superadmin") {
        $arrColumns[] = "";
        //delete
    }
    if (in_array('access_DID', $arrPermission)) {
        $arrColumns[] = "";
        //did
    }
    $arrColumns[] = _tr("Domain");
    $arrColumns[] = _tr("Name");
    $arrColumns[] = _tr("State");
    $arrColumns[] = _tr("Number of Users");
    $arrColumns[] = _tr("Country Code") . " / " . _tr("Area Code");
    $arrColumns[] = _tr("Email Qouta") . " (MB)";
    $oGrid->setColumns($arrColumns);
    $arrDatosGrid = array();
    if ($total != 0) {
        if ($credentials["userlevel"] == "superadmin") {
            $arrProp["limit"] = $limit;
            $arrProp["offset"] = $offset;
            $arrOrgs = $pOrganization->getOrganization($arrProp);
        } else {
            $arrOrgs = $pOrganization->getOrganization($arrProp);
        }
    }
    if ($arrOrgs === FALSE) {
        $smarty->assign("mb_title", _tr("Error"));
        $smarty->assign("mb_message", _tr($pOrganization->errMsg));
    } else {
        foreach ($arrOrgs as $value) {
            $arrTmp = array();
            if ($credentials["userlevel"] == "superadmin") {
                $arrTmp[] = "<input type='checkbox' class='chk_id' value='{$value['id']}' />";
                //checkbox selet
            }
            if (in_array('access_DID', $arrPermission)) {
                $arrTmp[] = "&nbsp;<a href='?menu={$module_name}&action=reportDIDs&domain=" . $value['domain'] . "'>" . _tr("Assign DIDs") . "</a>";
                //did
            }
            $arrTmp[] = "&nbsp;<a href='?menu={$module_name}&action=view&id=" . $value['id'] . "'>" . htmlentities($value['domain'], ENT_COMPAT, 'UTF-8') . "</a>";
            $arrTmp[] = htmlentities($value['name'], ENT_COMPAT, 'UTF-8');
            if ($value['state'] == 'active') {
                $arrTmp[] = "<span class='font-green'>" . _tr($value['state']) . "</span>";
            } elseif ($value['state'] == 'suspend') {
                $arrTmp[] = "<span class='font-orange'>" . _tr($value['state']) . "</span>";
            } else {
                $arrTmp[] = "<span class='font-red'>" . _tr($value['state']) . "</span>";
            }
            $arrTmp[] = $pOrganization->getNumUserByOrganization($value['id']);
            $cCode = $pOrganization->getOrganizationProp($value['id'], "country_code");
            $aCode = $pOrganization->getOrganizationProp($value['id'], "area_code");
            $eQuota = $pOrganization->getOrganizationProp($value['id'], "email_quota");
            $tmpcode = $cCode === false ? _tr("NONE") : $cCode;
            $tmpcode .= $aCode === false ? _tr("NONE") : " / " . $aCode;
            $arrTmp[] = $tmpcode;
            $arrTmp[] = $eQuota === false ? _tr("NONE") : $eQuota;
            $arrDatosGrid[] = $arrTmp;
        }
    }
    if ($credentials['userlevel'] == "superadmin") {
        $oGrid->addNew("new_organization", _tr("Create Organization"));
        $stateButton = '<select name="state_orgs" id="state_orgs">';
        $stateButton .= '<option label="' . _tr("Suspend") . '" value="suspend">' . _tr("Suspend") . '</option>';
        $stateButton .= '<option label="' . _tr("Unsuspend") . '" value="unsuspend">' . _tr("Unsuspend") . '</option>';
        $stateButton .= '<option label="' . _tr("Terminate") . '" value="terminate">' . _tr("Terminate") . '</option>';
        $stateButton .= "</select>";
        $stateButton .= '<input type="button" name="button_state" value="' . _tr("Change State") . '" onclick="change_state();" class="neo-table-action">';
        $stateButton .= '<input type="hidden" name="msg_ch_alert" id="msg_ch_alert" value="' . _tr("Are you sure you wish change the states of checked organizations to: ") . "STATE_NAME\n" . _tr("This process can take several minutes") . '">';
        $oGrid->addHTMLAction($stateButton);
        $oGrid->addButtonAction("del_orgs", _tr("Delete"), "{$arrConf['webCommon']}/images/delete5.png", "delete_orgs();");
        //filter
        $smarty->assign('USERLEVEL', $credentials['userlevel']);
        $smarty->assign('SEARCH', "<input name='search_org' type='submit' class='button' value='" . _tr('Search') . "'>");
        $arrState = array("all" => _tr("All"), "active" => _tr("Active"), "suspend" => _tr("Suspend"), "terminate" => _tr("terminate"));
        $_POST['fname'] = $arrProp['name'];
        $oGrid->addFilterControl(_tr("Filter applied ") . _tr("fname") . " = {$arrProp['name']}", $_POST, array("fname" => ''));
        $_POST['fdomain'] = $arrProp['domain'];
        $oGrid->addFilterControl(_tr("Filter applied ") . _tr("fdomain") . " = {$arrProp['domain']}", $_POST, array("fdomain" => ''));
        $_POST['fstate'] = isset($arrState[$arrProp['state']]) ? $arrProp['state'] : 'all';
        $oGrid->addFilterControl(_tr("Filter applied ") . _tr("State") . " = " . $arrState[$_POST['fstate']], $_POST, array("fstate" => 'all'), true);
        $arrFormFilter = createFilterForm($arrState);
        $oFilterForm = new paloForm($smarty, $arrFormFilter);
        $htmlFilter = $oFilterForm->fetchForm("{$local_templates_dir}/filter.tpl", "", $_POST);
        $oGrid->showFilter(trim($htmlFilter));
    }
    $content = $oGrid->fetchGrid(array(), $arrDatosGrid);
    $mensaje = showMessageReload($module_name, $pDB, $credentials);
    $content = $mensaje . $content;
    return $content;
}