/**
  * 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();
         }
     }
 }
Example #5
0
 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()));
 }