/**
  * Returns an array of all the revision data for a draft or version.
  *
  * @param EntryDraftModel|EntryVersionModel $revision
  *
  * @return array
  */
 private function _getRevisionData($revision)
 {
     $revisionData = array('typeId' => $revision->typeId, 'authorId' => $revision->authorId, 'title' => $revision->title, 'slug' => $revision->slug, 'postDate' => $revision->postDate ? $revision->postDate->getTimestamp() : null, 'expiryDate' => $revision->expiryDate ? $revision->expiryDate->getTimestamp() : null, 'enabled' => $revision->enabled, 'parentId' => $revision->parentId, 'fields' => array());
     $content = $revision->getContentFromPost();
     foreach (craft()->fields->getAllFields() as $field) {
         if (isset($content[$field->handle]) && $content[$field->handle] !== null) {
             $revisionData['fields'][$field->id] = $content[$field->handle];
         }
     }
     return $revisionData;
 }
 /**
  * Sets a draft's attributes from the post data.
  *
  * @param EntryDraftModel $draft
  *
  * @return null
  */
 private function _setDraftAttributesFromPost(EntryDraftModel $draft)
 {
     $draft->typeId = craft()->request->getPost('typeId');
     $draft->slug = craft()->request->getPost('slug');
     $draft->postDate = ($postDate = craft()->request->getPost('postDate')) ? DateTime::createFromString($postDate, craft()->timezone) : $draft->postDate;
     $draft->expiryDate = ($expiryDate = craft()->request->getPost('expiryDate')) ? DateTime::createFromString($expiryDate, craft()->timezone) : null;
     $draft->enabled = (bool) craft()->request->getPost('enabled');
     $draft->getContent()->title = craft()->request->getPost('title');
     // Author
     $authorId = craft()->request->getPost('author', $draft->authorId ? $draft->authorId : craft()->userSession->getUser()->id);
     if (is_array($authorId)) {
         $authorId = isset($authorId[0]) ? $authorId[0] : null;
     }
     $draft->authorId = $authorId;
     // Parent
     $parentId = craft()->request->getPost('parentId');
     if (is_array($parentId)) {
         $parentId = isset($parentId[0]) ? $parentId[0] : null;
     }
     $draft->parentId = $parentId;
 }
 /**
  * Sets the draft model's values from the post data.
  *
  * @access private
  * @param EntryDraftModel $draft
  */
 private function _setDraftValuesFromPost(EntryDraftModel $draft)
 {
     $draft->slug = craft()->request->getPost('slug');
     $draft->postDate = craft()->request->getPost('postDate');
     $draft->expiryDate = craft()->request->getPost('expiryDate');
     $draft->enabled = (bool) craft()->request->getPost('enabled');
     $draft->getContent()->title = craft()->request->getPost('title');
     $fields = craft()->request->getPost('fields');
     $draft->getContent()->setAttributes($fields);
     if (Craft::hasPackage(CraftPackage::Users)) {
         $draft->authorId = craft()->request->getPost('author');
     } else {
         $draft->authorId = craft()->userSession->getUser()->id;
     }
 }
 /**
  * Sets a draft's attributes from the post data.
  *
  * @param EntryDraftModel $draft
  *
  * @return null
  */
 private function _setDraftAttributesFromPost(EntryDraftModel $draft)
 {
     $draft->typeId = craft()->request->getPost('typeId');
     $draft->slug = craft()->request->getPost('slug');
     $draft->postDate = craft()->request->getPost('postDate');
     $draft->expiryDate = craft()->request->getPost('expiryDate');
     $draft->enabled = (bool) craft()->request->getPost('enabled');
     $draft->authorId = craft()->request->getPost('author');
     $draft->getContent()->title = craft()->request->getPost('title');
 }
 public function actionDrafts()
 {
     $records = EntryDraftRecord::model()->findAll();
     $drafts = EntryDraftModel::populateModels($records);
     $this->renderTemplate('workflow/drafts', array('entries' => $drafts));
 }