. */ /** * @brief Contains the docserver controler page * * * @file * @author Luc KEULEYAN - BULL * @author Laurent Giovannoni * @date $date$ * @version $Revision$ * @ingroup admin */ $sessionName = "docservers"; $pageName = "docservers_management_controler"; $tableName = "docservers"; $idName = "docserver_id"; $mode = 'add'; $core = new core_tools(); $core_tools = new core_tools(); $core->load_lang(); if (isset($_REQUEST['mode']) && !empty($_REQUEST['mode'])) { $mode = $_REQUEST['mode']; } else { $mode = 'list'; } try { require_once 'core/class/class_request.php'; require_once 'core/class/docservers_controler.php'; require_once 'core/class/docserver_locations_controler.php'; require_once 'core/class/docserver_types_controler.php'; if ($mode == 'list') { require_once "apps" . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id'] . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_list_show.php"; } } catch (Exception $e) { functions::xecho($e->getMessage()); } $core_tools->test_admin('admin_docservers', 'apps'); $docserverLocationsControler = new docserver_locations_controler(); $docserverTypesControler = new docserver_types_controler(); if ($mode == "up" || $mode == "add") { $docserverLocationsArray = array(); $docserverLocationsArray = $docserverLocationsControler->getAllId(); $docserverTypesArray = array(); $docserverTypesArray = $docserverTypesControler->getAllId(); } if (isset($_REQUEST['submit'])) { // Action to do with db validate_cs_submit($mode); } else { // Display to do if (isset($_REQUEST['id']) && ! empty($_REQUEST['id'])) { $docserverId = $_REQUEST['id']; } $state = true; switch ($mode) { case "up" : $state = display_up($docserverId); location_bar_management($mode); break; case "add" : display_add(); location_bar_management($mode); break; case "del" : display_del($docserverId); break; case "list" : $docserversList = display_list(); location_bar_management($mode); break; case "allow" : display_enable($docserverId); location_bar_management($mode); case "ban" : display_disable($docserverId); location_bar_management($mode); } include('docservers_management.php'); } /** * Initialize session variables */ function init_session() { $sessionName = "docservers"; $_SESSION['m_admin'][$sessionName] = array(); } /** * Management of the location bar */ function location_bar_management($mode) { $sessionName = "docservers"; $pageName = "docservers_management_controler"; $tableName = "docservers"; $idName = "docserver_id"; $pageLabels = array( 'add' => _ADDITION, 'up' => _MODIFICATION, 'list' => _DOCSERVERS_LIST, ); $pageIds = array( 'add' => 'docserver_add', 'up' => 'docserver_up', 'list' => 'docservers_list', ); $init = false; if (isset($_REQUEST['reinit']) && $_REQUEST['reinit'] == "true") { $init = true; } $level = ""; if (isset($_REQUEST['level']) && ($_REQUEST['level'] == 2 || $_REQUEST['level'] == 3 || $_REQUEST['level'] == 4 || $_REQUEST['level'] == 1) ) { $level = $_REQUEST['level']; } $pagePath = $_SESSION['config']['businessappurl'] . 'index.php?page=' . $pageName . '&admin=docservers&mode=' . $mode; $pageLabel = $pageLabels[$mode]; $pageId = $pageIds[$mode]; $ct = new core_tools(); $ct->manage_location_bar($pagePath, $pageLabel, $pageId, $init, $level); } /** * Validate a submit (add or up), * up to saving object */ function validate_cs_submit($mode) { $sessionName = "docservers"; $pageName = "docservers_management_controler"; $tableName = "docservers"; $idName = "docserver_id"; $f = new functions(); $docserversControler = new docservers_controler(); $docservers = new docservers(); $status = array(); $status['order'] = $_REQUEST['order']; $status['order_field'] = $_REQUEST['order_field']; $status['what'] = $_REQUEST['what']; $status['start'] = $_REQUEST['start']; if (isset($_REQUEST['id'])) { $docservers->docserver_id = $_REQUEST['id']; } if (isset($_REQUEST['docserver_type_id'])) { $docservers->docserver_type_id = $_REQUEST['docserver_type_id']; } if (isset($_REQUEST['device_label'])) { $docservers->device_label = $_REQUEST['device_label']; } if (isset($_REQUEST['is_readonly'])) { $docservers->is_readonly = $_REQUEST['is_readonly']; } if (isset($_REQUEST['size_limit_number'])) { $docservers->size_limit_number = $_REQUEST['size_limit_hidden']; } if (isset($_REQUEST['path_template'])) { $docservers->path_template = $_REQUEST['path_template']; } if (isset($_REQUEST['coll_id'])) { $docservers->coll_id = $_REQUEST['coll_id']; } if (isset($_REQUEST['priority_number'])) { $docservers->priority_number = $_REQUEST['priority_number']; } if (isset($_REQUEST['docserver_location_id'])) { $docservers->docserver_location_id = $_REQUEST['docserver_location_id']; } if (isset($_REQUEST['adr_priority_number'])) { $docservers->adr_priority_number = $_REQUEST['adr_priority_number']; } $control = array(); $control = $docserversControler->save($docservers, $mode); if (!empty($control['error']) && $control['error'] <> 1) { // Error management depending of mode $_SESSION['error'] = str_replace("#", "
", $control['error']); put_in_session("status", $status); put_in_session("docservers", $docservers->getArray()); //var_dump($_SESSION['m_admin']['docservers']); switch ($mode) { case "up": if (!empty($_REQUEST['id'])) { header( "location: " . $_SESSION['config']['businessappurl'] . "index.php?page=" . $pageName . "&mode=up&id=" . $_REQUEST['id'] . "&admin=docservers" ); } else { header( "location: " . $_SESSION['config']['businessappurl'] . "index.php?page=" . $pageName . "&mode=list&admin=docservers&order=" . $status['order'] . "&order_field=" . $status['order_field'] . "&start=" . $status['start'] . "&what=" . $status['what'] ); } exit; case "add": header( "location: " . $_SESSION['config']['businessappurl'] . "index.php?page=" . $pageName . "&mode=add&admin=docservers" ); exit; } } else { if ($mode == "add") { $_SESSION['info'] = _DOCSERVER_ADDED; } else { $_SESSION['info'] = _DOCSERVER_UPDATED; } unset($_SESSION['m_admin']); header( "location: " . $_SESSION['config']['businessappurl'] . "index.php?page=" . $pageName . "&mode=list&admin=docservers" . "&order=" . $status['order'] . "&order_field=" . $status['order_field'] . "&start=" . $status['start'] . "&what=" . $status['what'] ); } } /** * Initialize session parameters for update display * @param Long $docserverId */ function display_up($docserverId) { $docserversControler = new docservers_controler(); $state = true; $docservers = $docserversControler->get($docserverId); if (empty($docservers)) { $state = false; } else { put_in_session("docservers", $docservers->getArray()); if ($docserversControler->resxLinkExists( $docservers->docserver_id, $docservers->coll_id ) ) { $_SESSION['m_admin']['docservers']['link_exists'] = true; } if ($docserversControler->adrxLinkExists( $docservers->docserver_id, $docservers->coll_id ) ) { $_SESSION['m_admin']['docservers']['link_exists'] = true; } } return $state; } /** * Initialize session parameters for add display with given docserver */ function display_add() { $sessionName = "docservers"; if (!isset($_SESSION['m_admin'][$sessionName])) { init_session(); } } /** * Initialize session parameters for list display */ function display_list() { $sessionName = "docservers"; $pageName = "docservers_management_controler"; $tableName = "docservers"; $idName = "docserver_id"; $func = new functions(); $listShow = new list_show(); $_SESSION['m_admin'] = array(); init_session(); $select[_DOCSERVERS_TABLE_NAME] = array(); array_push( $select[_DOCSERVERS_TABLE_NAME], $idName, "device_label", "docserver_type_id", "size_limit_number", "actual_size_number", "coll_id", "enabled" ); $what = ""; $where = ""; $arrayPDO = array(); if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) { $what = $_REQUEST['what']; $where = "lower(".$idName.") like lower(?) "; $arrayPDO = array($what.'%'); } // Checking order and order_field values $order = 'asc'; if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) { $order = trim($_REQUEST['order']); } $field = $idName; if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) { $field = trim($_REQUEST['order_field']); } $orderstr = $listShow->define_order($order, $field); $request = new request(); $tab = $request->PDOselect( $select, $where, $arrayPDO, $orderstr, $_SESSION['config']['databasetype'] ); for ($i = 0; $i < count($tab); $i ++) { foreach ($tab[$i] as &$item) { switch ($item['column']) { case $idName: format_item( $item, _ID, "18", "left", "left", "bottom", true ); break; case "device_label": format_item( $item, _DEVICE_LABEL, "15", "left", "left", "bottom", true ); break; case "docserver_type_id": format_item( $item, _DOCSERVER_TYPE, "15", "left", "left", "bottom", true ); break; case "coll_id": format_item( $item, _COLL_ID, "15", "left", "left", "bottom", true ); break; case "size_limit_number": $sizeLimit = $item['value']; format_item( $item, _SIZE_LIMIT_NUMBER, "5", "left", "left", "bottom", false ); break; case "actual_size_number": if (isset($sizeLimit) && $sizeLimit <> 0) { $item['value'] = number_format( ($item['value'] * 100) / $sizeLimit, 0 ); } else { $item['value'] = 0; } $item['value'] .= "%"; format_item( $item, _PERCENTAGE_FULL, "5", "left", "left", "bottom", true ); break; case "enabled": format_item( $item, _ENABLED, "5", "left", "left", "bottom", true ); break; } } } $result = array(); $result['tab'] = $tab; $result['what'] = $what; $result['page_name'] = $pageName . "&mode=list"; $result['page_name_up'] = $pageName . "&mode=up"; $result['page_name_del'] = $pageName . "&mode=del"; $result['page_name_val'] = $pageName . "&mode=allow"; $result['page_name_ban'] = $pageName . "&mode=ban"; $result['page_name_add'] = $pageName . "&mode=add"; $result['label_add'] = _DOCSERVER_ADDITION; $_SESSION['m_admin']['init'] = true; $result['title'] = _DOCSERVERS_LIST . " : " . count($tab) . " " . _DOCSERVERS; $result['autoCompletionArray'] = array(); $result['autoCompletionArray']["list_script_url"] = $_SESSION['config']['businessappurl'] . "index.php?display=true&admin=docservers&page=docservers_list_by_id"; $result['autoCompletionArray']["number_to_begin"] = 1; return $result; } /** * Delete given docserver if exists and initialize session parameters * @param unknown_type $docserverId */ function display_del($docserverId) { $docserversControler = new docservers_controler(); $docservers = $docserversControler->get($docserverId); if (isset($docservers)) { // Deletion $control = array(); $control = $docserversControler->delete($docservers); if (!empty($control['error']) && $control['error'] <> 1) { $_SESSION['error'] = str_replace("#", "
", $control['error']); } else { $_SESSION['info'] = _DOCSERVER_DELETED . " " . $docserverId; } $pageName = "docservers_management_controler"; ?> get($docserverId); if (isset($docservers)) { // Enable $control = array(); $control = $docserversControler->enable($docservers); if (!empty($control['error']) && $control['error'] <> 1) { $_SESSION['error'] = str_replace("#", "
", $control['error']); } else { $_SESSION['info'] = _DOCSERVER_ENABLED." ".$docserverId; } $pageName = "docservers_management_controler"; ?> get($docserverId); if (isset($docservers)) { // Disable $control = array(); $control = $docserversControler->disable($docservers); if (!empty($control['error']) && $control['error'] <> 1) { $_SESSION['error'] = str_replace("#", "
", $control['error']); } else { $_SESSION['info'] = _DOCSERVER_DISABLED." ".$docserverId; } $pageName = "docservers_management_controler"; ?> show_string($item['value']); $item[$item['column']] = $item['value']; $item["label"] = $label; $item["size"] = $size; $item["label_align"] = $labelAlign; $item["align"] = $align; $item["valign"] = $valign; $item["show"] = $show; $item["order"] = $item['column']; } /** * Put given object in session, according with given type * NOTE: given object needs to be at least hashable * @param string $type * @param hashable $hashable */ function put_in_session($type,$hashable) { $func = new functions(); foreach ($hashable as $key => $value) { // echo "Key: $key Value: $value f:".$func->show_string($value)." // "; if ($key == 'path_template') { $_SESSION['m_admin'][$type][$key] = $value; } else { $_SESSION['m_admin'][$type][$key] = $func->show_string($value); } } }