"", "result" => "", "form" => "", ); $hProhibitionType = ""; //---------------------------- // request parameter //---------------------------- $qProjectID = isset($_SESSION["project_id"]) ? $_SESSION["project_id"] : REQ_NON; $qID = isset($_REQUEST["q_id"]) ? $_REQUEST["q_id"] : REQ_NON; //workflow_id $qToken = isset($_REQUEST["q_token"]) ? $_REQUEST["q_token"] : REQ_NON; $qStart = isset($_REQUEST["q_start"]) ? $_REQUEST["q_start"] : REQ_NON; $qEnd = isset($_REQUEST["q_end"]) ? $_REQUEST["q_end"] : REQ_NON; $qTypes = isset($_REQUEST["q_types"]) ? $_REQUEST["q_types"] : REQ_NON; //---------------------------- // judge post //---------------------------- $isPost = ($qToken !== REQ_NON); //---------------------------- // set types //---------------------------- Util::setType($qProjectID, "int"); Util::setType($qID, "int"); Util::setType($qToken, "string"); Util::setType($qStart, "string"); Util::setType($qEnd, "string"); Util::setType($qTypes, "int"); //---------------------------- // Auth-Before validate //---------------------------- if ( $result === RES_OK ){ if ( ! Validate::isNumeric($qProjectID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 1)}"); } if ( ! Validate::isNumeric($qID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 2)}"); } if ( $isPost ){ if ( ! Validate::isToken($qToken, "q_token") ){ $result = RES_NG; $gResult->push("{$WORD($wk, 3)}"); } } } //---------------------------- // Auth //---------------------------- if ( $result === RES_OK ){ $auth = Auth::instance("task"); if ( ! $auth->write_isWorkflow(INIT_ID, $qProjectID) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 4)}"); } else { // タスクタイプの変更権限(PMは、ワークフローのタスクの変更ができない) $arrProhibitionTypeGroup = $auth->write_isWorkflow_getTypeGroup(INIT_ID, $qProjectID); $arrNon = array_diff(array_keys(Task::TYPE_GROUP_TABLE()), $arrProhibitionTypeGroup); $hProhibitionType = implode(",", $arrNon); } } //---------------------------- // Auth-After validate //---------------------------- if ( $result === RES_OK ){ if ( $isPost ){ if ( ! Validate::isDate($qStart) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 5)}"); } else if ( Validate::isDate($qEnd) && ! Validate::isDateFuture($qEnd, $qStart) ){ $result = RES_NG; $gResult->push("{$WORD($wk, 6)}"); } if ( ! Validate::isDate($qEnd) ){ $qEnd = DAO::NULL; } if ( ! Validate::isArray($qTypes) || count($qTypes) === 0 ){ $result = RES_NG; $gResult->push("{$WORD($wk, 7)}"); } } } //---------------------------- // function //---------------------------- //---------------------------- // process //---------------------------- //---------------------------- // data //---------------------------- //---------------------------- // html //---------------------------- { $objDAOProject = DAO::instance("project"); $objDAOWorkflow = DAO::instance("workflow"); $objViewTask = View::instance("task"); if ( $isPost ){ DAO::begin(); if ( $result === RES_OK ){ $resDAOProject = $objDAOProject->register($qProjectID, NULL, NULL, NULL, NULL, $qStart, $qEnd); if ( ($result = $resDAOProject["result"]) !== RES_OK ){ $result = RES_NG; $gResult->push("{$WORD($wk, 8)}"); } } if ( $result === RES_OK ){ $dataType = implode(",", $qTypes); $resDAOWorkflow = $objDAOWorkflow->register($qID, NULL, NULL, $dataType); if ( ($result = $resDAOWorkflow["result"]) !== RES_OK ){ $result = RES_NG; $gResult->push("{$WORD($wk, 9)}"); } } DAO::end($result); if ( $result === RES_OK ){ header("Location: /content/task/edit.html?q_project_id={$qProjectID}&q_workflow_id={$qID}"); } } else { if ( $result === RES_OK ){ $resDAOProject = $objDAOProject->get($qProjectID); if ( $resDAOProject["result"] !== RES_OK ){ $result = RES_NO_DATA; $gResult->push("{$WORD($wk, 10)}"); } else { $dataProject = $resDAOProject["data"][0]; } } if ( $result === RES_OK ){ $resDAOWorkflow = $objDAOWorkflow->get($qID, $qProjectID); if ( $resDAOWorkflow["result"] !== RES_OK ){ $result = RES_NO_DATA; $gResult->push("{$WORD($wk, 11)}"); } else { $dataWorkflow = $resDAOWorkflow["data"][0]; $qStart = Validate::isDate($dataProject["t_project_start"]) ? $dataProject["t_project_start"] : Date("Y-m-d"); $qEnd = Validate::isDate($dataProject["t_project_end"]) ? $dataProject["t_project_end"] : NULL; $qTypes = explode(",", $dataWorkflow["t_workflow_task_type"]); } } } // menu ---------------------------------------------------------------- if ( $result !== RES_NG ){ $arrMenu = array(); //----- $arrMenu[0] = $objViewTask->tab(View_task::TAB_LIST, $auth, $qProjectID, $qID); $arrMenu[1] = $objViewTask->tab(View_task::TAB_CHART, $auth, $qProjectID, $qID); $arrMenu[2] = $objViewTask->tab(View_task::TAB_NEW, $auth, $qProjectID, $qID); $arrMenu[3] = $objViewTask->tab(View_task::TAB_EDIT, $auth, $qProjectID, $qID); //----- $arrHtml["menu"] = Printer::menuTab($arrMenu, 2); } // title --------------------------------------------------------------- $title = "{$WORD($wk, 12)}"; // form ---------------------------------------------------------------- if ( $result === RES_OK ){ $arrOperationGroup = array(); foreach ( Task::TYPE_OPERATION_GROUP_TABLE() as $key => $text ){ $arrType = Task::TYPE_OPERATION_GROUP_ITEM_TABLE($key); $arrOperationGroup[] = Printer::link( $text, "type-operation-group-link", NULL, NULL, NULL, NULL, array("data-type"=>implode(",", $arrType)) ); } $arrControl = array(); $arrAction = array(); $arrControl[] = array( "id" => "q_types[]", "name" => "{$WORD($wk, 13)}", "form" => Printer::buttonGroup("{$WORD($wk, 14)}", $arrOperationGroup, "warning", array("id" => "btn-task-lump")), "required" => TRUE, "validate" => array( "required" => TRUE, ), ); $arrControl[] = array( "id" => NULL, "name" => "", "form" => $objViewTask->formType("table_workflow_task_type", $qTypes), ); // 期間 $arrControl[] = array( "id" => "q_start", "name" => "{$WORD($wk, 15)}", "form" => array( Printer::input("text", "q_start", "q_start", $qStart), Printer::icon("icon-arrow-right"), Printer::input("text", "q_end", "q_end", $qEnd), ), "validate" => array( "required" => TRUE, "date" => TRUE, ), "required" => TRUE, ); // フォーム(id) $arrControl[] = array( "id" => NULL, "name" => NULL, "form" => Printer::input("hidden", "q_project_id", "q_project_id", $qProjectID), ); // フォーム(id) $arrControl[] = array( "id" => NULL, "name" => NULL, "form" => Printer::input("hidden", "q_id", "q_id", $qID), ); // フォーム(token) $arrControl[] = array( "id" => NULL, "name" => NULL, "form" => Printer::input("hidden", "q_token", "q_token", Util::token()), ); // アクション(OK) $arrAction[] = Printer::input("submit", NULL, NULL, "OK", "btn btn-primary"); // アクション(キャンセル) $arrAction[] = Printer::link("Cancel", "btn btn-default", NULL, NULL, "./detail.html?q_id={$qID}"); $arrHtml["form"] = Printer::form("form_workflow_edit", "form_workflow_edit", "./edit.html", "post", $arrControl, $arrAction); } else { // アクション(OK) $arrHtml["form"] = Printer::link("OK", "btn btn-default", NULL, NULL, "./detail.html?q_project_id={$qProjectID}&q_id={$qID}"); } // result -------------------------------------------------------------- $arrHtml["result"] = $gResult->string(TRUE, $result); } ?>