예제 #1
0
 public function feedback()
 {
     \App::setLocale(Auth::user()->language());
     $user = Auth::user();
     $propositionFactory = new PropositionFactory();
     $viewUser = ['fullName' => $user->firstName() . " " . $user->lastName(), 'firstName' => $user->firstName(), 'lastName' => $user->lastName(), 'contactEmail' => $user->contactEmail(), 'email' => $user->email(), 'avatar' => $user->avatar(), 'belongsToSchool' => $user->belongsToSchool(), 'schoolEmail' => $user->googleEmail(), 'role' => $user->role(), 'propositionsCount' => $propositionFactory->getPropositionsCountByUser($user->userId())];
     return view('feedback', ['fullName' => $user->firstName() . " " . $user->lastName(), 'user' => $viewUser]);
 }
 public function handle_flags()
 {
     $user = Auth::user();
     if ($user->role() !== User::ROLE_MODERATOR) {
         abort(404);
     }
     $propositionsFactory = new PropositionFactory();
     $viewUser = ['fullName' => $user->firstName() . " " . $user->lastName(), 'firstName' => $user->firstName(), 'lastName' => $user->lastName(), 'contactEmail' => $user->contactEmail(), 'email' => $user->email(), 'avatar' => $user->avatar(), 'belongsToSchool' => $user->belongsToSchool(), 'schoolEmail' => $user->googleEmail(), 'role' => $user->role(), 'propositionsCount' => $propositionsFactory->getPropositionsCountByUser($user->userId())];
     $viewPropositions = array();
     foreach ($propositionsFactory->getFlaggedPropositionsExeptUsers($user->userId()) as $flag) {
         $proposition = $propositionsFactory->getProposition($flag->propositionId());
         $viewPropositions[$proposition->propositionId()] = ['id' => $proposition->propositionId(), 'propositionSort' => $proposition->propositionSort(), 'propositionLong' => $proposition->propositionLong(), 'proposer' => $proposition->proposerId(), 'propositionCreationDate' => Carbon::createFromTimestamp(strtotime($proposition->date_created()))->diffForHumans(), 'userHasVoted' => $propositionsFactory->getUserVoteStatus($proposition->propositionId(), $user->userId()), 'deadline' => $proposition->deadline(), 'statusId' => $proposition->status(), 'ending_in' => Carbon::now()->diffInDays(Carbon::createFromTimestamp(strtotime($proposition->deadline())), false), 'flagsCount' => $propositionsFactory->getFlagCount($proposition->propositionId()), 'offensiveCount' => $propositionsFactory->getFlagTypeCount($proposition->propositionId(), 1), 'inappropriateCount' => $propositionsFactory->getFlagTypeCount($proposition->propositionId(), 2), 'incomprehensibleCount' => $propositionsFactory->getFlagTypeCount($proposition->propositionId(), 3)];
     }
     return view('moderator.flags', ['fullName' => $user->firstName() . " " . $user->lastName(), 'user' => $viewUser, 'propositions' => $viewPropositions]);
 }
예제 #3
0
 public function proposition(Request $request)
 {
     $results = array();
     $propositionFactory = new PropositionFactory();
     $userFactory = new UserFactory();
     $id = $request->get('id');
     $proposition = $propositionFactory->getProposition($id);
     if ($proposition == null) {
         return response()->json([404, "Not found"]);
     }
     if ($proposition->status() == Proposition::BLOCKED) {
         return response()->json([404, "Not found"]);
     }
     $proposer = $userFactory->getUser($proposition->proposerId());
     $result = ['propositionId' => $proposition->propositionId(), 'proposer' => ['id' => $proposition->proposerId(), 'fullName' => $proposer->firstName() . " " . $proposer->lastName(), 'avatar' => $proposer->avatar()], 'propositionSort' => $proposition->propositionSort(), 'propositionLong' => $proposition->propositionLong(), 'date_created' => Carbon::createFromTimestamp(strtotime($proposition->date_created()))->diffForHumans(), 'deadline' => $proposition->deadline(), 'ending_in' => Carbon::now()->diffInDays(Carbon::createFromTimestamp(strtotime($proposition->deadline())), false), 'marker' => $propositionFactory->getMarker($proposition->propositionId()), 'votes' => ['upvotes' => $propositionFactory->getUpvotes($id), 'downvotes' => $propositionFactory->getDownvotes($id)]];
     foreach ($propositionFactory->getComments($id) as $comment) {
         $commentUser = $userFactory->getUser($comment->commenterId());
         $result['comments'][$comment->commentId()] = ['commentId' => $comment->commentId(), 'commentBody' => $comment->body(), 'commenter' => ['id' => $commentUser->userId(), 'fullName' => $commentUser->firstName() . " " . $commentUser->lastName(), 'avatar' => $commentUser->avatar()], 'date_created' => Carbon::createFromTimestamp(strtotime($comment->created_at()))->diffForHumans()];
     }
     foreach (with(new TagsFactory())->getTagsByPropositionId($proposition->propositionId()) as $tag) {
         $result['tags'][$tag->id()] = $tag->content();
     }
     return response()->json($result);
 }
 public function search(Request $request)
 {
     \App::setLocale(Auth::user()->language());
     $user = Auth::user();
     $viewUser = ['fullName' => $user->firstName() . " " . $user->lastName(), 'firstName' => $user->firstName(), 'lastName' => $user->lastName(), 'contactEmail' => $user->contactEmail(), 'email' => $user->email(), 'avatar' => $user->avatar(), 'belongsToSchool' => $user->belongsToSchool(), 'belongsToSchool' => $user->belongsToSchool(), 'schoolEmail' => $user->googleEmail(), 'role' => $user->role()];
     $results = array();
     $pages = null;
     if (empty($request->input('q')) == false) {
         $term = $request->input('q');
         $propositionFactory = new PropositionFactory();
         $proposition_results = $propositionFactory->search($term, 5);
         $pages = $proposition_results->lastPage();
         foreach ($proposition_results->items() as $proposition) {
             $proposer = with(new userFactory())->getUser($proposition->proposerId());
             $results[$proposition->propositionId()] = ['id' => $proposition->propositionId(), 'propositionSort' => $proposition->propositionSort(), 'proposer' => ['id' => $proposition->proposerId(), 'fullName' => $proposer->firstName() . " " . $proposer->lastName(), 'avatar' => $proposer->avatar()], 'propositionCreationDate' => $proposition->date_created(), 'deadline' => $proposition->deadline(), 'statusId' => $proposition->status(), 'ending_in' => Carbon::now()->diffInDays(Carbon::createFromTimestamp(strtotime($proposition->deadline())), false), 'upvotes' => $propositionFactory->getUpvotes($proposition->propositionId()), 'downvotes' => $propositionFactory->getDownvotes($proposition->propositionId()), 'comments' => $propositionFactory->getCommentsCount($proposition->propositionId()), 'marker' => $propositionFactory->getMarker($proposition->propositionId())];
         }
     }
     return view('search', ['fullName' => $user->firstName() . " " . $user->lastName(), 'user' => $viewUser, 'results' => $results, 'pages' => $pages]);
 }
예제 #5
0
 public function password()
 {
     $user = Auth::user();
     $propositionFactory = new PropositionFactory();
     $propositionsCount = $propositionFactory->getPropositionsCountByUser($user->userId());
     $viewUser = ['fullName' => $user->firstName() . " " . $user->lastName(), 'firstName' => $user->firstName(), 'lastName' => $user->lastName(), 'contactEmail' => $user->contactEmail(), 'email' => $user->email(), 'avatar' => $user->avatar(), 'belongsToSchool' => $user->belongsToSchool(), 'schoolEmail' => $user->googleEmail(), 'role' => $user->role(), 'propositionsCount' => $propositionsCount];
     return view('account_new.password', ['fullName' => $user->firstName() . " " . $user->lastName(), 'user' => $viewUser]);
 }