From ae4061d42952e87ce063fc398f82b7bfffac6d7e Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Tue, 13 Feb 2018 17:49:44 +0100 Subject: [PATCH] FEAT #76 administration doctype + TU --- composer.json | 1 + core/Test/DoctypeControllerTest.php | 4 +- ...ontroller.php => FirstLevelController.php} | 0 .../controllers/SecondLevelController.php | 193 ++++++++++++++++++ .../doctype/models/DoctypeModelAbstract.php | 193 ++++-------------- .../models/FirstLevelModelAbstract.php | 168 +-------------- .../models/SecondLevelModelAbstract.php | 170 ++------------- src/app/folder/models/FolderTypeModel.php | 21 ++ .../folder/models/FolderTypeModelAbstract.php | 69 +++++++ 9 files changed, 354 insertions(+), 465 deletions(-) rename src/app/doctype/controllers/{DoctypeController.php => FirstLevelController.php} (100%) create mode 100644 src/app/doctype/controllers/SecondLevelController.php create mode 100644 src/app/folder/models/FolderTypeModel.php create mode 100644 src/app/folder/models/FolderTypeModelAbstract.php diff --git a/composer.json b/composer.json index 3ef1b0d6cda..dee2afac1dd 100755 --- a/composer.json +++ b/composer.json @@ -8,6 +8,7 @@ "Docserver\\" : "src/app/docserver/", "Doctype\\" : "src/app/doctype/", "Entity\\" : "src/app/entity/", + "Folder\\" : "src/app/folder/", "History\\" : "src/app/history/", "Link\\" : "src/app/link/", "Notification\\" : "src/app/notification/", diff --git a/core/Test/DoctypeControllerTest.php b/core/Test/DoctypeControllerTest.php index f9fe6629468..43a89d9e0c6 100755 --- a/core/Test/DoctypeControllerTest.php +++ b/core/Test/DoctypeControllerTest.php @@ -22,7 +22,7 @@ class DoctypesControllerTest extends TestCase $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $request = \Slim\Http\Request::createFromEnvironment($environment); - $doctypeController = new \Doctype\controllers\DoctypeController(); + $doctypeController = new \Doctype\controllers\FirstLevelController(); $response = $doctypeController->get($request, new \Slim\Http\Response()); $responseBody = json_decode((string)$response->getBody()); @@ -42,7 +42,7 @@ class DoctypesControllerTest extends TestCase $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $request = \Slim\Http\Request::createFromEnvironment($environment); - $doctypeController = new \Doctype\controllers\DoctypeController(); + $doctypeController = new \Doctype\controllers\FirstLevelController(); $response = $doctypeController->getFirstLevelById($request, new \Slim\Http\Response(), ["id" => self::$firstLevelId]); $responseBody = json_decode((string)$response->getBody()); diff --git a/src/app/doctype/controllers/DoctypeController.php b/src/app/doctype/controllers/FirstLevelController.php similarity index 100% rename from src/app/doctype/controllers/DoctypeController.php rename to src/app/doctype/controllers/FirstLevelController.php diff --git a/src/app/doctype/controllers/SecondLevelController.php b/src/app/doctype/controllers/SecondLevelController.php new file mode 100644 index 00000000000..546a412f8de --- /dev/null +++ b/src/app/doctype/controllers/SecondLevelController.php @@ -0,0 +1,193 @@ +<?php +/** +* Copyright Maarch since 2008 under licence GPLv3. +* See LICENCE.txt file at the root folder for more details. +* This file is part of Maarch software. + +* @brief SecondLevelController +* @author dev <dev@maarch.org> +* @ingroup core +*/ + +namespace Doctype\controllers; + +use History\controllers\HistoryController; +use Respect\Validation\Validator; +use Doctype\models\FirstLevelModel; +use Doctype\models\SecondLevelModel; +use Doctype\models\DoctypeModel; +use Core\Models\ServiceModel; +use Slim\Http\Request; +use Slim\Http\Response; + +class SecondLevelController +{ + + public function getById(Request $request, Response $response, $aArgs) + { + + if (!Validator::intVal()->validate($aArgs['id']) || !Validator::notEmpty()->validate($aArgs['id'])) { + return $response + ->withStatus(500) + ->withJson(['errors' => 'wrong format for id']); + } + + $obj = SecondLevelModel::getById(['id' => $aArgs['id']]); + + if(!empty($obj)){ + if ($obj['enabled'] == 'Y') { + $obj['enabled'] = true; + } else { + $obj['enabled'] = false; + } + } + + return $response->withJson($obj); + } + + public function initSecondLevel(Request $request, Response $response, $aArgs) + { + $obj['secondLevel'] = FirstLevelModel::get(['select' => ['doctypes_first_level_id', 'doctypes_first_level_label']]); + return $response->withJson($obj); + } + + public function create(Request $request, Response $response) + { + if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { + return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); + } + + $data = $request->getParams(); + $data = $this->manageValue($data); + + $errors = $this->control($data, 'create'); + if (!empty($errors)) { + return $response->withStatus(500)->withJson(['errors' => $errors]); + } + + $obj = SecondLevelModel::create($data); + + HistoryController::add([ + 'tableName' => 'doctypes_second_level', + 'recordId' => $obj['doctypes_second_level_id'], + 'eventType' => 'ADD', + 'eventId' => 'subfolderadd', + 'info' => _DOCTYPE_SECONDLEVEL_ADDED . ' : ' . $obj['doctypes_second_level_label'] + ]); + + return $response->withJson( + [ + 'secondLevel' => $obj + ] + ); + } + + public function update(Request $request, Response $response, $aArgs) + { + if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { + return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); + } + + $data = $request->getParams(); + $data['doctypes_second_level_id'] = $aArgs['id']; + + $data = $this->manageValue($data); + $errors = $this->control($data, 'update'); + + if (!empty($errors)) { + return $response + ->withStatus(500) + ->withJson(['errors' => $errors]); + } + + $obj = SecondLevelModel::update($data); + + HistoryController::add([ + 'tableName' => 'doctypes_second_level', + 'recordId' => $obj['doctypes_second_level_id'], + 'eventType' => 'UP', + 'eventId' => 'subfolderup', + 'info' => _DOCTYPE_SECONDLEVEL_UPDATED. ' : ' . $obj['doctypes_second_level_label'] + ]); + + return $response->withJson( + [ + 'secondLevel' => $obj + ] + ); + } + + public function delete(Request $request, Response $response, $aArgs) + { + if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { + return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); + } + + if (!Validator::intVal()->validate($aArgs['id'])) { + return $response + ->withStatus(500) + ->withJson(['errors' => 'Id is not a numeric']); + } + + $secondLevel = SecondLevelModel::getById(['id' => $aArgs['id']]); + SecondLevelModel::update(['doctypes_second_level_id' => $aArgs['id'], 'enabled' => 'N']); + DoctypeModel::disabledSecondLevel(['doctypes_second_level_id' => $aArgs['id'], 'enabled' => 'N']); + + HistoryController::add([ + 'tableName' => 'doctypes_second_level', + 'recordId' => $aArgs['doctypes_second_level_id'], + 'eventType' => 'DEL', + 'eventId' => 'subfolderdel', + 'info' => _DOCTYPE_SECONDLEVEL_DELETED. ' : ' . $secondLevel['doctypes_second_level_label'] + ]); + + return $response->withJson(['secondLevel' => $secondLevel]); + } + + protected function control($aArgs, $mode) + { + $errors = []; + + if ($mode == 'update') { + if (!Validator::intVal()->validate($aArgs['doctypes_second_level_id'])) { + $errors[] = 'Id is not a numeric'; + } else { + $obj = SecondLevelModel::getById(['id' => $aArgs['doctypes_second_level_id']]); + } + + if (empty($obj)) { + $errors[] = 'Id ' .$aArgs['doctypes_second_level_id']. ' does not exists'; + } + } + + if (!Validator::notEmpty()->validate($aArgs['doctypes_second_level_label']) || + !Validator::length(1, 255)->validate($aArgs['doctypes_second_level_label'])) { + $errors[] = 'Invalid doctypes_second_level_label'; + } + + if (!Validator::notEmpty()->validate($aArgs['doctypes_first_level_id']) || + !Validator::intVal()->validate($aArgs['doctypes_first_level_id'])) { + $errors[] = 'Invalid doctypes_first_level_id'; + } + + if (!Validator::notEmpty()->validate($aArgs['enabled']) || ($aArgs['enabled'] != 'Y' && $aArgs['enabled'] != 'N')) { + $errors[]= 'Invalid history value'; + } + + return $errors; + } + + protected function manageValue($request) + { + foreach ($request as $key => $value) { + if (in_array($key, ['enabled'])) { + if (empty($value)) { + $request[$key] = 'N'; + } else { + $request[$key] = 'Y'; + } + } + } + return $request; + } +} diff --git a/src/app/doctype/models/DoctypeModelAbstract.php b/src/app/doctype/models/DoctypeModelAbstract.php index 3f44afbb4e0..c0ff4a0bcd1 100644 --- a/src/app/doctype/models/DoctypeModelAbstract.php +++ b/src/app/doctype/models/DoctypeModelAbstract.php @@ -58,180 +58,73 @@ class DoctypeModelAbstract ValidatorModel::notEmpty($aArgs, ['description', 'doctypes_first_level_id', 'doctypes_second_level_id', 'coll_id']); ValidatorModel::intVal($aArgs, ['doctypes_first_level_id', 'doctypes_second_level_id']); - $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_second_level_id_seq']); + $aArgs['type_id'] = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_type_id_seq']); DatabaseModel::insert([ 'table' => 'doctypes', 'columnsValues' => $aArgs ]); - return true; + return $aArgs; } public static function update(array $aArgs) { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); + ValidatorModel::notEmpty($aArgs, ['type_id']); + ValidatorModel::intVal($aArgs, ['type_id']); DatabaseModel::update([ - 'table' => 'actions', - 'set' => [ - 'keyword' => $aArgs['keyword'], - 'label_action' => $aArgs['label_action'], - 'id_status' => $aArgs['id_status'], - 'action_page' => $aArgs['action_page'], - 'history' => $aArgs['history'], - 'is_folder_action' => $aArgs['is_folder_action'] - ], - 'where' => ['id = ?'], - 'data' => [$aArgs['id']] - ]); - - DatabaseModel::delete([ - 'table' => 'actions_categories', - 'where' => ['action_id = ?'], - 'data' => [$aArgs['id']] + 'table' => 'doctypes', + 'set' => $aArgs, + 'where' => ['type_id = ?'], + 'data' => [$aArgs['type_id']] ]); - $tab['action_id'] = $aArgs['id']; - - for ($i=0; $i < count($aArgs['actionCategories']); $i++) { - $tab['category_id'] = $aArgs['actionCategories'][$i]; - DatabaseModel::insert([ - 'table' => 'actions_categories', - 'columnsValues' => $tab - ]); - } - return true; } - public static function delete(array $aArgs) + public static function disabledFirstLevel(array $aArgs) { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); - - DatabaseModel::delete([ - 'table' => 'actions', - 'where' => ['id = ?'], - 'data' => [$aArgs['id']] - ]); - DatabaseModel::delete([ - 'table' => 'actions_categories', - 'where' => ['action_id = ?'], - 'data' => [$aArgs['id']] - ]); - DatabaseModel::delete([ - 'table' => 'actions_groupbaskets', - 'where' => ['id_action = ?'], - 'data' => [$aArgs['id']] + ValidatorModel::notEmpty($aArgs, ['doctypes_first_level_id']); + ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']); + + DatabaseModel::update([ + 'table' => 'doctypes', + 'set' => $aArgs, + 'where' => ['doctypes_first_level_id = ?'], + 'data' => [$aArgs['doctypes_first_level_id']] ]); return true; } - public static function getAction_pages() - { - $customId = CoreConfigModel::getCustomId(); - - if (file_exists('custom/' .$customId. '/core/xml/actions_pages.xml')) { - $path = 'custom/' .$customId. '/core/xml/actions_pages.xml'; - } else { - $path = 'core/xml/actions_pages.xml'; - } - - $tabActions_pages = []; - $tabActions_pages['modules'][] = 'Apps'; - - $xmlfile = simplexml_load_file($path); + // public static function updateFirstLevel(array $aArgs) + // { + // ValidatorModel::notEmpty($aArgs, ['doctypes_first_level_id']); + // ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']); - if (count($xmlfile) > 0) { - foreach ($xmlfile->ACTIONPAGE as $actionPage) { - if (!defined((string) $actionPage->LABEL)) { - $label = $actionPage->LABEL; - } else { - $label = constant((string) $actionPage->LABEL); - } - if (!empty((string) $actionPage->MODULE)) { - $origin = (string) $actionPage->MODULE; - } else { - $origin = 'apps'; - } - if (!empty((string) $actionPage->DESC)) { - $desc = constant((string) $actionPage->DESC); - } else { - $desc = 'no description'; - } - $tabActions_pages['actionsPageList'][] = array( - 'id' => (string) $actionPage->ID, - 'label' => $label, - 'name' => (string) $actionPage->NAME, - 'desc' => $desc, - 'origin' => ucfirst($origin), - ); - } - } - - array_multisort( - array_map( - function ($element) { - return $element['label']; - }, $tabActions_pages['actionsPageList'] - ), - SORT_ASC, $tabActions_pages['actionsPageList'] - ); + // DatabaseModel::update([ + // 'table' => 'doctypes', + // 'set' => $aArgs, + // 'where' => ['doctypes_first_level_id = ?'], + // 'data' => [$aArgs['doctypes_first_level_id']] + // ]); + + // return true; + // } + + // public static function updateSecondLevel(array $aArgs) + // { + // ValidatorModel::notEmpty($aArgs, ['doctypes_second_level_id']); + // ValidatorModel::intVal($aArgs, ['doctypes_second_level_id']); - $tabActions_pages['modules'] = array_unique($tabActions_pages['modules']); - sort($tabActions_pages['modules']); - return $tabActions_pages; - } - - public static function getKeywords() - { - $tabKeyword = []; - $tabKeyword[] = ['value' => '', label => _NO_KEYWORD]; - $tabKeyword[] = ['value' => 'redirect', label => _REDIRECT, desc => _KEYWORD_REDIRECT_DESC]; - //$tabKeyword[] = ['value' => 'to_validate', label => _TO_VALIDATE]; - $tabKeyword[] = ['value' => 'indexing', label => _INDEXING, desc => _KEYWORD_INDEXING_DESC]; - //$tabKeyword[] = ['value' => 'workflow', label => _WF]; - - return $tabKeyword; - } + // DatabaseModel::update([ + // 'table' => 'doctypes', + // 'set' => $aArgs, + // 'where' => ['doctypes_second_level_id = ?'], + // 'data' => [$aArgs['doctypes_second_level_id']] + // ]); - public static function getActionPageById(array $aArgs) - { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); - - $action = DatabaseModel::select([ - 'select' => ['action_page'], - 'table' => ['actions'], - 'where' => ['id = ? AND enabled = ?'], - 'data' => [$aArgs['id'], 'Y'] - ]); + // return true; + // } - if (empty($action[0])) { - return ''; - } - - return $action[0]['action_page']; - } - - public static function getDefaultActionByGroupBasketId(array $aArgs) - { - ValidatorModel::notEmpty($aArgs, ['groupId', 'basketId']); - ValidatorModel::stringType($aArgs, ['groupId', 'basketId']); - - $action = DatabaseModel::select([ - 'select' => ['id_action'], - 'table' => ['actions_groupbaskets'], - 'where' => ['group_id = ?', 'basket_id = ?', 'default_action_list = ?'], - 'data' => [$aArgs['groupId'], $aArgs['basketId'], 'Y'] - ]); - - if (empty($action[0])) { - return ''; - } - - return $action[0]['id_action']; - } } diff --git a/src/app/doctype/models/FirstLevelModelAbstract.php b/src/app/doctype/models/FirstLevelModelAbstract.php index 18447807623..0bb1f3eb89f 100644 --- a/src/app/doctype/models/FirstLevelModelAbstract.php +++ b/src/app/doctype/models/FirstLevelModelAbstract.php @@ -57,180 +57,28 @@ class FirstLevelModelAbstract { ValidatorModel::notEmpty($aArgs, ['label']); - $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_first_level_id_seq']); + $aArgs['doctypes_first_level_id'] = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_first_level_id_seq']); DatabaseModel::insert([ 'table' => 'doctypes_first_level', 'columnsValues' => $aArgs ]); - return true; + return $aArgs; } public static function update(array $aArgs) { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); + ValidatorModel::notEmpty($aArgs, ['doctypes_first_level_id']); + ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']); DatabaseModel::update([ - 'table' => 'actions', - 'set' => [ - 'keyword' => $aArgs['keyword'], - 'label_action' => $aArgs['label_action'], - 'id_status' => $aArgs['id_status'], - 'action_page' => $aArgs['action_page'], - 'history' => $aArgs['history'], - 'is_folder_action' => $aArgs['is_folder_action'] - ], - 'where' => ['id = ?'], - 'data' => [$aArgs['id']] - ]); - - DatabaseModel::delete([ - 'table' => 'actions_categories', - 'where' => ['action_id = ?'], - 'data' => [$aArgs['id']] - ]); - - $tab['action_id'] = $aArgs['id']; - - for ($i=0; $i < count($aArgs['actionCategories']); $i++) { - $tab['category_id'] = $aArgs['actionCategories'][$i]; - DatabaseModel::insert([ - 'table' => 'actions_categories', - 'columnsValues' => $tab - ]); - } - - return true; - } - - public static function delete(array $aArgs) - { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); - - DatabaseModel::delete([ - 'table' => 'actions', - 'where' => ['id = ?'], - 'data' => [$aArgs['id']] - ]); - DatabaseModel::delete([ - 'table' => 'actions_categories', - 'where' => ['action_id = ?'], - 'data' => [$aArgs['id']] - ]); - DatabaseModel::delete([ - 'table' => 'actions_groupbaskets', - 'where' => ['id_action = ?'], - 'data' => [$aArgs['id']] + 'table' => 'doctypes_first_level', + 'set' => $aArgs, + 'where' => ['doctypes_first_level_id = ?'], + 'data' => [$aArgs['doctypes_first_level_id']] ]); return true; } - public static function getAction_pages() - { - $customId = CoreConfigModel::getCustomId(); - - if (file_exists('custom/' .$customId. '/core/xml/actions_pages.xml')) { - $path = 'custom/' .$customId. '/core/xml/actions_pages.xml'; - } else { - $path = 'core/xml/actions_pages.xml'; - } - - $tabActions_pages = []; - $tabActions_pages['modules'][] = 'Apps'; - - $xmlfile = simplexml_load_file($path); - - if (count($xmlfile) > 0) { - foreach ($xmlfile->ACTIONPAGE as $actionPage) { - if (!defined((string) $actionPage->LABEL)) { - $label = $actionPage->LABEL; - } else { - $label = constant((string) $actionPage->LABEL); - } - if (!empty((string) $actionPage->MODULE)) { - $origin = (string) $actionPage->MODULE; - } else { - $origin = 'apps'; - } - if (!empty((string) $actionPage->DESC)) { - $desc = constant((string) $actionPage->DESC); - } else { - $desc = 'no description'; - } - $tabActions_pages['actionsPageList'][] = array( - 'id' => (string) $actionPage->ID, - 'label' => $label, - 'name' => (string) $actionPage->NAME, - 'desc' => $desc, - 'origin' => ucfirst($origin), - ); - } - } - - array_multisort( - array_map( - function ($element) { - return $element['label']; - }, $tabActions_pages['actionsPageList'] - ), - SORT_ASC, $tabActions_pages['actionsPageList'] - ); - - $tabActions_pages['modules'] = array_unique($tabActions_pages['modules']); - sort($tabActions_pages['modules']); - return $tabActions_pages; - } - - public static function getKeywords() - { - $tabKeyword = []; - $tabKeyword[] = ['value' => '', label => _NO_KEYWORD]; - $tabKeyword[] = ['value' => 'redirect', label => _REDIRECT, desc => _KEYWORD_REDIRECT_DESC]; - //$tabKeyword[] = ['value' => 'to_validate', label => _TO_VALIDATE]; - $tabKeyword[] = ['value' => 'indexing', label => _INDEXING, desc => _KEYWORD_INDEXING_DESC]; - //$tabKeyword[] = ['value' => 'workflow', label => _WF]; - - return $tabKeyword; - } - - public static function getActionPageById(array $aArgs) - { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); - - $action = DatabaseModel::select([ - 'select' => ['action_page'], - 'table' => ['actions'], - 'where' => ['id = ? AND enabled = ?'], - 'data' => [$aArgs['id'], 'Y'] - ]); - - if (empty($action[0])) { - return ''; - } - - return $action[0]['action_page']; - } - - public static function getDefaultActionByGroupBasketId(array $aArgs) - { - ValidatorModel::notEmpty($aArgs, ['groupId', 'basketId']); - ValidatorModel::stringType($aArgs, ['groupId', 'basketId']); - - $action = DatabaseModel::select([ - 'select' => ['id_action'], - 'table' => ['actions_groupbaskets'], - 'where' => ['group_id = ?', 'basket_id = ?', 'default_action_list = ?'], - 'data' => [$aArgs['groupId'], $aArgs['basketId'], 'Y'] - ]); - - if (empty($action[0])) { - return ''; - } - - return $action[0]['id_action']; - } } diff --git a/src/app/doctype/models/SecondLevelModelAbstract.php b/src/app/doctype/models/SecondLevelModelAbstract.php index ed92b164a91..9e3ceb6d80a 100644 --- a/src/app/doctype/models/SecondLevelModelAbstract.php +++ b/src/app/doctype/models/SecondLevelModelAbstract.php @@ -58,180 +58,44 @@ class SecondLevelModelAbstract ValidatorModel::notEmpty($aArgs, ['label', 'doctypes_first_level_id']); ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']); - $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_second_level_id_seq']); + $aArgs['doctypes_second_level_id'] = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_second_level_id_seq']); DatabaseModel::insert([ 'table' => 'doctypes_second_level', 'columnsValues' => $aArgs ]); - return true; + return $aArgs; } public static function update(array $aArgs) { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); + ValidatorModel::notEmpty($aArgs, ['doctypes_second_level_id']); + ValidatorModel::intVal($aArgs, ['doctypes_second_level_id']); DatabaseModel::update([ - 'table' => 'actions', - 'set' => [ - 'keyword' => $aArgs['keyword'], - 'label_action' => $aArgs['label_action'], - 'id_status' => $aArgs['id_status'], - 'action_page' => $aArgs['action_page'], - 'history' => $aArgs['history'], - 'is_folder_action' => $aArgs['is_folder_action'] - ], - 'where' => ['id = ?'], - 'data' => [$aArgs['id']] - ]); - - DatabaseModel::delete([ - 'table' => 'actions_categories', - 'where' => ['action_id = ?'], - 'data' => [$aArgs['id']] - ]); - - $tab['action_id'] = $aArgs['id']; - - for ($i=0; $i < count($aArgs['actionCategories']); $i++) { - $tab['category_id'] = $aArgs['actionCategories'][$i]; - DatabaseModel::insert([ - 'table' => 'actions_categories', - 'columnsValues' => $tab - ]); - } - - return true; - } - - public static function delete(array $aArgs) - { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); - - DatabaseModel::delete([ - 'table' => 'actions', - 'where' => ['id = ?'], - 'data' => [$aArgs['id']] - ]); - DatabaseModel::delete([ - 'table' => 'actions_categories', - 'where' => ['action_id = ?'], - 'data' => [$aArgs['id']] - ]); - DatabaseModel::delete([ - 'table' => 'actions_groupbaskets', - 'where' => ['id_action = ?'], - 'data' => [$aArgs['id']] + 'table' => 'doctypes_second_level', + 'set' => $aArgs, + 'where' => ['doctypes_second_level_id = ?'], + 'data' => [$aArgs['doctypes_second_level_id']] ]); return true; } - public static function getAction_pages() + public static function disabledFirstLevel(array $aArgs) { - $customId = CoreConfigModel::getCustomId(); - - if (file_exists('custom/' .$customId. '/core/xml/actions_pages.xml')) { - $path = 'custom/' .$customId. '/core/xml/actions_pages.xml'; - } else { - $path = 'core/xml/actions_pages.xml'; - } - - $tabActions_pages = []; - $tabActions_pages['modules'][] = 'Apps'; - - $xmlfile = simplexml_load_file($path); - - if (count($xmlfile) > 0) { - foreach ($xmlfile->ACTIONPAGE as $actionPage) { - if (!defined((string) $actionPage->LABEL)) { - $label = $actionPage->LABEL; - } else { - $label = constant((string) $actionPage->LABEL); - } - if (!empty((string) $actionPage->MODULE)) { - $origin = (string) $actionPage->MODULE; - } else { - $origin = 'apps'; - } - if (!empty((string) $actionPage->DESC)) { - $desc = constant((string) $actionPage->DESC); - } else { - $desc = 'no description'; - } - $tabActions_pages['actionsPageList'][] = array( - 'id' => (string) $actionPage->ID, - 'label' => $label, - 'name' => (string) $actionPage->NAME, - 'desc' => $desc, - 'origin' => ucfirst($origin), - ); - } - } - - array_multisort( - array_map( - function ($element) { - return $element['label']; - }, $tabActions_pages['actionsPageList'] - ), - SORT_ASC, $tabActions_pages['actionsPageList'] - ); + ValidatorModel::notEmpty($aArgs, ['doctypes_first_level_id']); + ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']); - $tabActions_pages['modules'] = array_unique($tabActions_pages['modules']); - sort($tabActions_pages['modules']); - return $tabActions_pages; - } - - public static function getKeywords() - { - $tabKeyword = []; - $tabKeyword[] = ['value' => '', label => _NO_KEYWORD]; - $tabKeyword[] = ['value' => 'redirect', label => _REDIRECT, desc => _KEYWORD_REDIRECT_DESC]; - //$tabKeyword[] = ['value' => 'to_validate', label => _TO_VALIDATE]; - $tabKeyword[] = ['value' => 'indexing', label => _INDEXING, desc => _KEYWORD_INDEXING_DESC]; - //$tabKeyword[] = ['value' => 'workflow', label => _WF]; - - return $tabKeyword; - } - - public static function getActionPageById(array $aArgs) - { - ValidatorModel::notEmpty($aArgs, ['id']); - ValidatorModel::intVal($aArgs, ['id']); - - $action = DatabaseModel::select([ - 'select' => ['action_page'], - 'table' => ['actions'], - 'where' => ['id = ? AND enabled = ?'], - 'data' => [$aArgs['id'], 'Y'] + DatabaseModel::update([ + 'table' => 'doctypes_second_level', + 'set' => $aArgs, + 'where' => ['doctypes_first_level_id = ?'], + 'data' => [$aArgs['doctypes_first_level_id']] ]); - if (empty($action[0])) { - return ''; - } - - return $action[0]['action_page']; + return true; } - public static function getDefaultActionByGroupBasketId(array $aArgs) - { - ValidatorModel::notEmpty($aArgs, ['groupId', 'basketId']); - ValidatorModel::stringType($aArgs, ['groupId', 'basketId']); - - $action = DatabaseModel::select([ - 'select' => ['id_action'], - 'table' => ['actions_groupbaskets'], - 'where' => ['group_id = ?', 'basket_id = ?', 'default_action_list = ?'], - 'data' => [$aArgs['groupId'], $aArgs['basketId'], 'Y'] - ]); - if (empty($action[0])) { - return ''; - } - - return $action[0]['id_action']; - } } diff --git a/src/app/folder/models/FolderTypeModel.php b/src/app/folder/models/FolderTypeModel.php new file mode 100644 index 00000000000..4d86e5fa64e --- /dev/null +++ b/src/app/folder/models/FolderTypeModel.php @@ -0,0 +1,21 @@ +<?php + +/** +* Copyright Maarch since 2008 under licence GPLv3. +* See LICENCE.txt file at the root folder for more details. +* This file is part of Maarch software. +* +*/ + +/** +* @brief FolderType Model +* @author dev@maarch.org +* @ingroup core +*/ + +namespace Folder\models; + +class FolderTypeModel extends FolderTypeModelAbstract +{ + // Do your stuff in this class +} diff --git a/src/app/folder/models/FolderTypeModelAbstract.php b/src/app/folder/models/FolderTypeModelAbstract.php new file mode 100644 index 00000000000..51b86d8091a --- /dev/null +++ b/src/app/folder/models/FolderTypeModelAbstract.php @@ -0,0 +1,69 @@ +<?php +/** +* Copyright Maarch since 2008 under licence GPLv3. +* See LICENCE.txt file at the root folder for more details. +* This file is part of Maarch software. + +* @brief FolderTypeModelAbstract +* @author dev <dev@maarch.org> +* @ingroup core +*/ + +namespace Folder\models; + +use Core\Models\ValidatorModel; +use SrcCore\models\CoreConfigModel; +use SrcCore\models\DatabaseModel; + +class FolderTypeModelAbstract +{ + public static function get(array $aArgs = []) + { + ValidatorModel::arrayType($aArgs, ['select']); + + $folderType = DatabaseModel::select([ + 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], + 'table' => ['foldertypes'] + ]); + + return $folderType; + } + + public static function getFolderTypeDocTypeFirstLevel(array $aArgs = []) + { + ValidatorModel::arrayType($aArgs, ['select']); + + $folderType = DatabaseModel::select([ + 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], + 'table' => ['foldertypes_doctypes_level1'] + ]); + + return $folderType; + } + + public static function createFolderTypeDocTypeFirstLevel(array $aArgs = []) + { + + DatabaseModel::insert([ + 'table' => 'foldertypes_doctypes_level1', + 'columnsValues' => $aArgs + ]); + + return true; + } + + public static function deleteFolderTypeDocTypeFirstLevel(array $aArgs) + { + ValidatorModel::notEmpty($aArgs, ['doctypes_first_level_id']); + ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']); + + DatabaseModel::delete([ + 'table' => 'foldertypes_doctypes_level1', + 'where' => ['doctypes_first_level_id = ?'], + 'data' => [$aArgs['doctypes_first_level_id']] + ]); + + return true; + } + +} -- GitLab