Ejemplo n.º 1
0
 /**
  *	Method to handle posting support/oppose clicks on a document.
  *
  * @param int $doc
  *
  * @return json array
  */
 public function postSupport($doc)
 {
     $input = Input::get();
     $supported = (bool) $input['support'];
     $docMeta = DocMeta::withTrashed()->where('user_id', Auth::user()->id)->where('meta_key', '=', 'support')->where('doc_id', '=', $doc)->first();
     if (!isset($docMeta)) {
         $docMeta = new DocMeta();
         $docMeta->doc_id = $doc;
         $docMeta->user_id = Auth::user()->id;
         $docMeta->meta_key = 'support';
         $docMeta->meta_value = (string) $supported;
         $docMeta->save();
     } elseif ($docMeta->meta_value == (string) $supported && !$docMeta->trashed()) {
         $docMeta->delete();
         $supported = null;
     } else {
         if ($docMeta->trashed()) {
             $docMeta->restore();
         }
         $docMeta->doc_id = $doc;
         $docMeta->user_id = Auth::user()->id;
         $docMeta->meta_key = 'support';
         $docMeta->meta_value = (string) (bool) $input['support'];
         $docMeta->save();
     }
     $supports = DocMeta::where('meta_key', '=', 'support')->where('meta_value', '=', '1')->where('doc_id', '=', $doc)->count();
     $opposes = DocMeta::where('meta_key', '=', 'support')->where('meta_value', '=', '')->where('doc_id', '=', $doc)->count();
     return Response::json(array('support' => $supported, 'supports' => $supports, 'opposes' => $opposes));
 }
Ejemplo n.º 2
0
 public function getRestoreDoc($docId)
 {
     $doc = Doc::withTrashed()->find($docId);
     if ($doc->publish_state == Doc::PUBLISH_STATE_DELETED_ADMIN) {
         if (!Auth::user()->hasRole('admin')) {
             return Response('Unauthorized.', 403);
         }
     }
     if (!$doc->canUserEdit(Auth::user())) {
         return Response('Unauthorized.', 403);
     }
     DocMeta::withTrashed()->where('doc_id', $docId)->restore();
     DocContent::withTrashed()->where('doc_id', $docId)->restore();
     Annotation::withTrashed()->where('doc_id', $docId)->restore();
     Comment::withTrashed()->where('doc_id', $docId)->restore();
     $doc->restore();
     $doc->publish_state = Doc::PUBLISH_STATE_UNPUBLISHED;
     $doc->save();
     return Response::json($doc);
 }