/** * Delete version * * @param void * @return null */ function delete() { if ($this->request->isSubmitted()) { if (!$this->active_page_version->canDelete($this->logged_user)) { $this->httpError(HTTP_ERR_FORBIDDEN); } // if $delete = $this->active_page_version->delete(); if ($delete && !is_error($delete)) { if ($this->request->isAsyncCall()) { $this->httpOk(); } else { flash_success('Version #:version has been deleted', array('version' => $this->active_page_version->getVersion())); } // if } else { if ($this->request->isAsyncCall()) { $this->httpError(HTTP_ERR_OPERATION_FAILED); } else { flash_success('Failed to delete version #:version', array('version' => $this->active_page_version->getVersion())); } // if } // if $this->redirectToUrl($this->active_page->getViewUrl()); } else { $this->httpError(HTTP_ERR_BAD_REQUEST); } // if }
/** * Handle on_new_revision event * * @param Page $page * @param PageVersion $version * @param User $by * @return null */ function pages_handle_on_new_revision($page, $version, $by) { if (instance_of($page, 'Page')) { $page->sendToSubscribers('pages/new_revision', array('created_by_url' => $by->getViewUrl(), 'created_by_name' => $by->getDisplayName(), 'revision_num' => $page->getRevisionNum(), 'old_url' => $version->getViewUrl(), 'old_name' => $version->getName(), 'old_body' => $version->getFormattedBody(), 'new_url' => $page->getViewUrl(), 'new_name' => $page->getName(), 'new_body' => $page->getFormattedBody()), $by->getId()); } // if }
public function beforeInsert() { if ($current_version = PageVersion::getCurrentVersionFrom($this->parent)) { $current_version->behavior_id = 'version'; $current_version->save(); } parent::beforeInsert(); return true; }
/** * Creates a page version children * * @param the current page */ public static function callback_page_updated($page) { if ($page->behavior_id == 'version' || $page->behavior_id == 'current_version') { return; } $new_version = PageVersion::createFrom($page); $new_version->save(); Observer::notify('version_add_after_save', $new_version); /* Clone the page parts. */ $page_parts = PagePart::findByPageId($page->id); if (count($page_parts)) { foreach ($page_parts as $part) { $part->page_id = $new_version->id; $part->id = null; $part->save(); } } }
function __construct() { $this->pageVersion = PageVersion::load(1); $this->view = new PageVersionEditView($this->pageVersion); }
/** * Get revert to URL * * @param PageVersion $version * @return string */ function getRevertUrl($version) { return assemble_url('project_page_revert', array('project_id' => $this->getProjectId(), 'page_id' => $this->getId(), 'to' => $version->getVersion())); }