middleware( function ($request, $next) { View::share('title', trans('firefly.transactions')); View::share('mainTitleIcon', 'fa-repeat'); return $next($request); } ); } /** * @param Request $request * @param string $what * * @return View */ public function index(Request $request, string $what) { $pageSize = intval(Preferences::get('transactionPageSize', 50)->data); $subTitleIcon = config('firefly.transactionIconsByWhat.' . $what); $types = config('firefly.transactionTypesByWhat.' . $what); $subTitle = trans('firefly.title_' . $what); $page = intval($request->get('page')) === 0 ? 1 : intval($request->get('page')); $collector = new JournalCollector(auth()->user()); $collector->setTypes($types)->setLimit($pageSize)->setPage($page)->setAllAssetAccounts(); $journals = $collector->getPaginatedJournals(); $journals->setPath('transactions/' . $what); return view('transactions.index', compact('subTitle', 'what', 'subTitleIcon', 'journals')); } /** * @param Request $request * @param JournalRepositoryInterface $repository * * @return \Illuminate\Http\JsonResponse */ public function reorder(Request $request, JournalRepositoryInterface $repository) { $ids = $request->get('items'); $date = new Carbon($request->get('date')); if (count($ids) > 0) { $order = 0; $ids = array_unique($ids); foreach ($ids as $id) { $journal = $repository->find(intval($id)); if ($journal && $journal->date->format('Y-m-d') == $date->format('Y-m-d')) { $journal->order = $order; $order++; $journal->save(); } } } Preferences::mark(); return Response::json([true]); } /** * @param TransactionJournal $journal * @param JournalTaskerInterface $tasker * * @return View */ public function show(TransactionJournal $journal, JournalTaskerInterface $tasker) { $events = $tasker->getPiggyBankEvents($journal); $transactions = $tasker->getTransactionsOverview($journal); $what = strtolower($journal->transaction_type_type ?? $journal->transactionType->type); $subTitle = trans('firefly.' . $what) . ' "' . e($journal->description) . '"'; return view('transactions.show', compact('journal', 'events', 'subTitle', 'what', 'transactions')); } }