/**
  * Renumbers the order of the attachments
  *
  * @param string $page_name
  * @param Project $project
  * @return void
  */
 function reorder($page_name, Project $project)
 {
     $page_attachments = PageAttachments::getAttachmentsByPageNameAndProject($page_name, $project);
     $order = 0;
     if (is_array($page_attachments) && count($page_attachments)) {
         foreach ($page_attachments as $page_attachment) {
             $order++;
             $page_attachment->setOrder($order);
             $page_attachment->save();
         }
         // foreach
     }
     // if
 }
 /**
  * Edit project
  *
  * @param void
  * @return null
  */
 function edit()
 {
     $project = Projects::findById(get_id());
     if (!$project instanceof Project) {
         flash_error(lang('project dnx'));
         $this->redirectTo('dashboard', 'index');
     }
     // if
     if (!$project->canEdit(logged_user())) {
         flash_error(lang('no access permissions'));
         $this->redirectToReferer(get_url('dashboard', 'index'));
     }
     // if
     if (plugin_active('files')) {
         $this->addHelper('files', 'files');
     }
     if (plugin_active('tickets')) {
         $this->addHelper('tickets', 'tickets');
     }
     // TODO find a more elegant solution for this parameter
     $page_name = 'project_overview';
     $this->setTemplate('add_project');
     $this->setLayout('project_website');
     $this->setSidebar(get_template_path('textile_help_sidebar'));
     $project_data = array_var($_POST, 'project');
     if (!is_array($project_data)) {
         $project_data = array('name' => $project->getName(), 'parent_id' => $project->getParentId(), 'priority' => $project->getPriority(), 'description' => $project->getDescription(), 'show_description_in_overview' => $project->getShowDescriptionInOverview());
         // array
     }
     // if
     $page_attachments = PageAttachments::getAttachmentsByPageNameAndProject($page_name, $project);
     $redirect_to = urldecode(array_var($_GET, 'redirect_to'));
     tpl_assign('project', $project);
     tpl_assign('project_data', $project_data);
     tpl_assign('page_attachments', $page_attachments);
     tpl_assign('redirect_to', $redirect_to);
     if (is_array(array_var($_POST, 'project'))) {
         $project->setFromAttributes($project_data);
         try {
             DB::beginWork();
             $project->save();
             ApplicationLogs::createLog($project, null, ApplicationLogs::ACTION_EDIT, false, true);
             $page_attachments = array_var($project_data, 'page_attachments');
             if (is_array($page_attachments)) {
                 foreach ($page_attachments as $id => $page_attachment_data) {
                     $page_attachment = PageAttachments::findById($id);
                     if (array_var($page_attachment_data, 'delete') == "checked") {
                         $page_attachment->delete();
                     } else {
                         $page_attachment->setFromAttributes($page_attachment_data);
                         $page_attachment->save();
                     }
                     // if
                 }
                 // foreach
                 PageAttachments::reorder($page_name, $project);
             }
             // if
             DB::commit();
             flash_success(lang('success edit project', $project->getName()));
             if (trim($redirect_to) == '' || !is_valid_url($redirect_to)) {
                 $redirect_to = $project->getSettingsUrl();
             }
             // if
             $this->redirectToUrl($redirect_to);
         } catch (Exception $e) {
             DB::rollback();
             tpl_assign('error', $e);
         }
         // try
     }
     // if
 }