middleware( function ($request, $next) { View::share('title', trans('firefly.transactions')); View::share('mainTitleIcon', 'fa-repeat'); return $next($request); } ); } /** * @param TransactionJournalLink $link * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function delete(TransactionJournalLink $link) { $subTitleIcon = 'fa-link'; $subTitle = trans('breadcrumbs.delete_journal_link'); $this->rememberPreviousUri('journal_links.delete.uri'); return view('transactions.links.delete', compact('link', 'subTitle', 'subTitleIcon')); } /** * @param LinkTypeRepositoryInterface $repository * @param TransactionJournalLink $link * * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function destroy(LinkTypeRepositoryInterface $repository, TransactionJournalLink $link) { $repository->destroyLink($link); Session::flash('success', strval(trans('firefly.deleted_link'))); Preferences::mark(); return redirect(strval(session('journal_links.delete.uri'))); } /** * @param JournalLinkRequest $request * @param LinkTypeRepositoryInterface $repository * @param JournalRepositoryInterface $journalRepository * @param TransactionJournal $journal * * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function store( JournalLinkRequest $request, LinkTypeRepositoryInterface $repository, JournalRepositoryInterface $journalRepository, TransactionJournal $journal ) { $linkInfo = $request->getLinkInfo(); $linkType = $repository->find($linkInfo['link_type_id']); $other = $journalRepository->find($linkInfo['transaction_journal_id']); $alreadyLinked = $repository->findLink($journal, $other); if ($alreadyLinked) { Session::flash('error', trans('firefly.journals_error_linked')); return redirect(route('transactions.show', $journal->id)); } Log::debug(sprintf('Journal is %d, opposing is %d', $journal->id, $other->id)); $journalLink = new TransactionJournalLink; $journalLink->linkType()->associate($linkType); if ($linkInfo['direction'] === 'inward') { Log::debug(sprintf('Link type is inwards ("%s"), so %d is source and %d is destination.', $linkType->inward, $other->id, $journal->id)); $journalLink->source()->associate($other); $journalLink->destination()->associate($journal); } if ($linkInfo['direction'] === 'outward') { Log::debug(sprintf('Link type is inwards ("%s"), so %d is source and %d is destination.', $linkType->outward, $journal->id, $other->id)); $journalLink->source()->associate($journal); $journalLink->destination()->associate($other); } $journalLink->comment = $linkInfo['comments']; $journalLink->save(); Session::flash('success', trans('firefly.journals_linked')); return redirect(route('transactions.show', $journal->id)); } public function switch(LinkTypeRepositoryInterface $repository, TransactionJournalLink $link) { $repository->switchLink($link); return redirect(URL::previous()); } }