public function run() { DB::table('syllabary_column_header')->truncate(); SyllabaryColumnHeader::create(array('syllabary_id' => 1, 'ipa' => 'a', 'symbol_id' => 4, 'next_id' => 2, 'prev_id' => -1)); SyllabaryColumnHeader::create(array('syllabary_id' => 1, 'ipa' => 'e', 'symbol_id' => 3, 'next_id' => 3, 'prev_id' => 1)); SyllabaryColumnHeader::create(array('syllabary_id' => 1, 'ipa' => 'i', 'symbol_id' => 2, 'next_id' => 4, 'prev_id' => 2)); SyllabaryColumnHeader::create(array('syllabary_id' => 1, 'ipa' => 'o', 'symbol_id' => 1, 'next_id' => 5, 'prev_id' => 3)); SyllabaryColumnHeader::create(array('syllabary_id' => 1, 'ipa' => 'u', 'symbol_id' => 5, 'next_id' => -1, 'prev_id' => 4)); }
public function AddColumn($syllabaryId, $relativeId = NULL, $suppressUndo = false, $ipa = NULL, $symbol_id = NULL, $audio_sample = NULL) { if ($ipa == NULL) { $ipa = ""; } $headers = SyllabaryColumnHeader::where('syllabary_id', '=', $syllabaryId)->get(); if ($symbol_id == NULL) { $newSymbol = Symbol::create(array('symbol_data' => '')); $symbol_id = $newSymbol->id; } // If we specify that we want to add to the right of a given header. if ($relativeId != NULL) { // If we pass a negative relative column ID, that means we want to add to // to the left of that column instead of the right. if ($relativeId < 0) { $leftHeader = $headers->find($relativeId * -1); $rightHeader = $leftHeader; $leftHeader = $headers->find($leftHeader->prev_id); } else { $leftHeader = $headers->find($relativeId); $rightHeader = $headers->find($leftHeader->next_id); } $newHeader = SyllabaryColumnHeader::create(array('syllabary_id' => $syllabaryId, 'ipa' => $ipa, 'symbol_id' => $symbol_id, 'prev_id' => $leftHeader != NULL ? $leftHeader->id : -1, 'next_id' => $rightHeader != NULL ? $rightHeader->id : -1, 'audio_sample' => $audio_sample)); if ($leftHeader != NULL) { $leftHeader->next_id = $newHeader->id; $leftHeader->save(); } if ($rightHeader != NULL) { $rightHeader->prev_id = $newHeader->id; $rightHeader->save(); } } else { // If we want to just add to the end of the list. $lastHeader = SyllabaryColumnHeader::where('syllabary_id', '=', $syllabaryId)->orderBy('next_id')->first(); $newHeader = SyllabaryColumnHeader::create(array('syllabary_id' => $syllabaryId, 'ipa' => $ipa, 'symbol_id' => $symbol_id, 'prev_id' => $lastHeader != NULL ? $lastHeader->id : -1, 'next_id' => -1, 'audio_sample' => $audio_sample)); if ($lastHeader != NULL) { $lastHeader->next_id = $newHeader->id; $lastHeader->save(); } } if (!$suppressUndo) { UndoRecord::create(['syllabary_id' => $syllabaryId, 'json_data' => json_encode(['action' => 'add_column', 'col_id' => $newHeader->id])]); } return response()->json(['success' => True]); }
public function CreateSyllabary($name) { $syllabary = Syllabary::create(array('name' => $name)); $symbol1 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><circle id="svg_18" r="105.621967" cy="256" cx="256" stroke-width="5" stroke="#000000" fill="#000000"/></svg>')); $symbol2 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:rgb(0,0,0);stroke-width:5"/></svg>')); $symbol3 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><line x1="0" y1="0" x2="100%" y2="100%" style="stroke:rgb(0,0,0);stroke-width:5"/></svg>')); $symbol4 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><line x1="100%" y1="0" x2="0" y2="100%" style="stroke:rgb(0,0,0);stroke-width:5"/></svg>')); $symbol5 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg"><rect xmlns="http://www.w3.org/2000/svg" id="svg_1" height="168" width="392" y="156" x="54" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="null" fill="black"/></svg>')); $symbol6 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><circle id="svg_18" r="105.621967" cy="256" cx="256" stroke-width="5" stroke="#000000" fill="#000000"/></svg>')); $symbol7 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:rgb(0,0,0);stroke-width:5"/></svg>')); $symbol8 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><line x1="0" y1="0" x2="100%" y2="100%" style="stroke:rgb(0,0,0);stroke-width:5"/></svg>')); $symbol9 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><line x1="100%" y1="0" x2="0" y2="100%" style="stroke:rgb(0,0,0);stroke-width:5"/></svg>')); $symbol10 = Symbol::create(array('symbol_data' => '<?xml version="1.0"?><svg width="512" height="512" xmlns="http://www.w3.org/2000/svg"><rect xmlns="http://www.w3.org/2000/svg" id="svg_1" height="168" width="392" y="156" x="54" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="null" fill="black"/></svg>')); $column = SyllabaryColumnHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'a', 'symbol_id' => $symbol4->id, 'next_id' => -1, 'prev_id' => -1)); $columnId = $column->id; $column->next_id = $columnId + 1; $column->save(); SyllabaryColumnHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'e', 'symbol_id' => $symbol3->id, 'next_id' => $columnId + 2, 'prev_id' => $columnId)); SyllabaryColumnHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'i', 'symbol_id' => $symbol2->id, 'next_id' => $columnId + 3, 'prev_id' => $columnId + 1)); SyllabaryColumnHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'o', 'symbol_id' => $symbol1->id, 'next_id' => $columnId + 4, 'prev_id' => $columnId + 2)); SyllabaryColumnHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'u', 'symbol_id' => $symbol5->id, 'next_id' => -1, 'prev_id' => $columnId + 3)); $row = SyllabaryRowHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'b', 'symbol_id' => $symbol6->id, 'next_id' => -1, 'prev_id' => -1)); $rowId = $row->id; $row->next_id = $rowId + 1; $row->save(); SyllabaryRowHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'd', 'symbol_id' => $symbol7->id, 'next_id' => $rowId + 2, 'prev_id' => $rowId)); SyllabaryRowHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'f', 'symbol_id' => $symbol8->id, 'next_id' => $rowId + 3, 'prev_id' => $rowId + 1)); SyllabaryRowHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'g', 'symbol_id' => $symbol9->id, 'next_id' => $rowId + 4, 'prev_id' => $rowId + 2)); SyllabaryRowHeader::create(array('syllabary_id' => $syllabary->id, 'ipa' => 'h', 'symbol_id' => $symbol10->id, 'next_id' => -1, 'prev_id' => $rowId + 3)); return $syllabary; }