Ejemplo n.º 1
0
 /**
  *  Inserts a new outline into the database
  *
  *  @param   Request  $request
  *
  *  @return  Response
  */
 public function postCreate(Request $request)
 {
     $validator = Validator::make($request->all(), ['name' => 'required|min:3|max:255', 'description' => 'min:3']);
     if ($validator->fails()) {
         return redirect('/outlines/create')->withErrors($validator)->withInput();
     }
     // Validator passed? Then create.
     $outline = new Outline();
     $outline->name = $request->name;
     $outline->description = $request->description;
     $outline->save();
     if (count($request->tags) > 0) {
         foreach ($request->tags as $tagname) {
             $tag = Tag::firstOrCreate(["name" => $tagname]);
             $outline->tags()->attach($tag->id);
         }
     }
     if (count($request->references) > 0) {
         foreach ($request->references as $referenceId) {
             try {
                 $ref = Reference::findOrFail($referenceId);
                 // If this line is executed the model exists
                 $outline->references()->attach($ref->id);
             } catch (ModelNotFoundException $e) {
                 // Do nothing
             }
         }
     }
     // For now let's add the user some notes
     return redirect('notes/create/' . $outline->id);
 }
Ejemplo n.º 2
0
 /**
  *  Inserts imported and parsed notes into the database
  *
  *  @param   Request  $request
  *
  *  @return  Response
  */
 public function insertImport(Request $request)
 {
     if ($request->createOutline) {
         $outline = new Outline();
         $outline->name = $request->outlineName;
         $outline->description = $request->outlineDescription;
         $outline->save();
         // $index = 0;
     }
     // Just copy the code from NoteController@postCreate
     foreach ($request->title as $index => $title) {
         $note = new Note();
         $note->title = $title;
         $note->content = $request->content[$index];
         $note->save();
         if ($request->createOutline) {
             $outline->notes()->attach($note, ["index" => $index + 1]);
         }
         // Now fill the join table
         // Fix: Sometimes there are just no tags attached to a note
         // and in these situations, Zettlr broke. Now the existence of
         // the variable is previously tested before the length is checked
         if (isset($request->tags[$index]) && count($request->tags[$index]) > 0) {
             if (array_key_exists($index, $request->tags) && count($request->tags[$index]) > 0) {
                 foreach ($request->tags[$index] as $tagname) {
                     $tag = Tag::firstOrCreate(["name" => $tagname]);
                     $note->tags()->attach($tag->id);
                 }
             }
         }
         // $index++;
     }
     if ($request->createOutline) {
         return redirect('/outlines/show/' . $outline->id);
     }
     // Redirect to the main page for now
     return redirect('/');
 }