Skip to content

Commit

Permalink
Merge pull request #2 from DrudgeRajen/fixes
Browse files Browse the repository at this point in the history
fixes
  • Loading branch information
DrudgeRajen authored Dec 19, 2018
2 parents 6d81e87 + ed4af87 commit 8cd6f47
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 125 deletions.
165 changes: 50 additions & 115 deletions src/ContentManager/ContentGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public function formatContent($array, $indexed = true)
: preg_replace("/[0-9]+ \=\>/i", '', var_export($array, true));
$lines = explode("\n", $content);
$inString = false;
$tabCount = 3;
$tabCount = 4;
for ($i = 1; $i < count($lines); $i++) {
$lines[$i] = ltrim($lines[$i]);
//Check for closing bracket
Expand Down Expand Up @@ -66,67 +66,58 @@ public function formatContent($array, $indexed = true)
*/
public function getDeleteStatement($dataType): string
{
$delete = '';
$delete .= "\$dataType = DataType::find('" . $dataType->id . "');";
$delete .= $this->addNewLines($delete, 2);
$delete .= $this->addIndent($delete, 2);
$delete .= 'if (is_bread_translatable($dataType)) {';
$delete .= $this->addNewLines($delete);
$delete .= $this->addIndent($delete, 3);
$delete .= '$dataType->deleteAttributeTranslations($dataType->getTranslatableAttributes());';
$delete .= $this->addNewLines($delete);
$delete .= $this->addIndent($delete, 3);
$delete .= '}';
$delete .= $this->addNewLines($delete, 2);
$delete .= $this->addIndent($delete, 2);
$delete .= 'if ($dataType) {';
$delete .= $this->addNewLines($delete);
$delete .= $this->addIndent($delete, 3);
$delete .= '$dataType->destroy(' . $dataType->id . ');';
$delete .= $this->addNewLines($delete);
$delete .= $this->addIndent($delete, 2);
$delete .= '}';
$delete = <<<'TXT'
\$dataType = DataType::find('10');
if (is_bread_translatable(\$dataType)) {
\$dataType->deleteAttributeTranslations(\$dataType->getTranslatableAttributes());
}
if (\$dataType) {
\$dataType->destroy(10);
}
TXT;

return $delete;
}

/**
* Generate Menu Delete Statements.
*
* @param $dataArray
* @param $dataType
* @return string
*/
public function generateMenuDeleteStatements($dataType) : string
{
$menuDelete = '';
$menuDelete .= "\$menuItem = MenuItem::where('route', 'voyager." . $dataType->slug . ".index');";
$menuDelete .= $this->addNewLines($menuDelete, 2);
$menuDelete .= $this->addIndent($menuDelete, 2);
$menuDelete .= 'if ($menuItem->exists()) {';
$menuDelete .= $this->addNewLines($menuDelete);
$menuDelete .= $this->addIndent($menuDelete, 2);
$menuDelete .= '$menuItem->delete();';
$menuDelete .= $this->addNewLines($menuDelete);
$menuDelete .= $this->addIndent($menuDelete, 2);
$menuDelete .= '}';
$menuDelete = <<<'TXT'
\$menuItem = MenuItem::where('route', 'voyager.\$dataType->slug.index');
if (\$menuItem->exists()) {
\$menuItem->delete();
}
TXT;

return $menuDelete;
}

/**
* Get Permission Statements.
*
* @param $dataArray
* @param $dataType
* @param null $type
*
* @return string
*/
public function getPermissionStatement($dataType, $type = null) : string
{
$permission = "Voyager::model('Permission')->generateFor('" . $dataType->name . "');";
$permission = <<<'TXT'
Voyager::model('Permission')->generateFor(\$dataType->name);
TXT;

if (! is_null($type)) {
$permission = "Voyager::model('Permission')->removeFrom('" . $dataType->name . "');";
$permission = <<<'TXT'
Voyager::model('Permission')->removeFrom(\$dataType->name);
TXT;
}

return $permission;
Expand All @@ -135,93 +126,37 @@ public function getPermissionStatement($dataType, $type = null) : string
/**
* Get Menu Insert Statements.
*
* @param $dataArray
* @param $dataType
* @return string
*/
public function getMenuInsertStatements($dataType) : string
{
$menu = '';
$menu .= "\$menu = Menu::where('name', config('voyager.bread.default_menu'))->firstOrFail();";
$this->addNewLines($menu, 2);
$this->addIndent($menu, 2);
$menu .= '$menuItem = MenuItem::firstOrNew([';
$this->addNewLines($menu);
$this->addIndent($menu, 3);
$menu .= "'menu_id' => \$menu->id,";
$this->addNewLines($menu);
$this->addIndent($menu, 3);
$menu .= "'title' => '" . $dataType->display_name_plural . "',";
$this->addNewLines($menu);
$this->addIndent($menu, 3);
$menu .= "'url' => '',";
$this->addNewLines($menu);
$this->addIndent($menu, 3);
$menu .= "'route' => 'voyager." . $dataType->slug . ".index',";
$this->addNewLines($menu);
$this->addIndent($menu, 2);
$menu .= ']);';
$this->addNewLines($menu, 2);
$this->addIndent($menu, 2);
$menu .= "\$order = Voyager::model('MenuItem')->highestOrderMenuItem();";
$this->addNewLines($menu, 2);
$this->addIndent($menu, 2);
$menu .= 'if (!$menuItem->exists) {';
$this->addNewLines($menu);
$this->addIndent($menu, 3);
$menu .= '$menuItem->fill([';
$this->addNewLines($menu);
$this->addIndent($menu, 4);
$menu .= "'target' => '_self',";
$this->addNewLines($menu);
$this->addIndent($menu, 4);
$menu .= "'icon_class' => '" . $dataType->icon . "',";
$this->addNewLines($menu);
$this->addIndent($menu, 4);
$menu .= "'color' => null,";
$this->addNewLines($menu);
$this->addIndent($menu, 4);
$menu .= "'parent_id' => null,";
$this->addNewLines($menu);
$this->addIndent($menu, 4);
$menu .= "'order' => \$order,";
$this->addNewLines($menu);
$this->addIndent($menu, 3);
$menu .= '])->save();';
$this->addNewLines($menu);
$this->addIndent($menu, 2);
$menu .= '}';
$menu = <<<'TXT'
\$menu = Menu::where('name', config('voyager.bread.default_menu'))->firstOrFail();
\$menuItem = MenuItem::firstOrNew([
'menu_id' => \$menu->id,
'title' => 'Credit Cards',
'url' => '',
'route' => 'voyager.credit-cards.index',
]);
\$order = Voyager::model('MenuItem')->highestOrderMenuItem();
if (!\$menuItem->exists) {
\$menuItem->fill([
'target' => '_self',
'icon_class' => '',
'color' => null,
'parent_id' => null,
'order' => \$order,
])->save();
}
TXT;

return $menu;
}

/**
* Adds indentation to the passed content reference.
*
* @param string $content
* @param int $numberOfIndents
*/
private function addIndent(&$content, $numberOfIndents = 1)
{
while ($numberOfIndents > 0) {
$content .= $this->indentCharacter;
$numberOfIndents--;
}
}

/**
* Adds new lines to the passed content variable reference.
*
* @param string $content
* @param int $numberOfLines
*/
private function addNewLines(&$content, $numberOfLines = 1)
{
while ($numberOfLines > 0) {
$content .= $this->newLineCharacter;
$numberOfLines--;
}
}

/**
* Generate Orchestra Seeder Content.
*
Expand Down
21 changes: 16 additions & 5 deletions src/stubs/data_seed.stub
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,31 @@ use TCG\Voyager\Models\MenuItem;

class {{class}} extends Seeder
{

/**
* Auto generated seed file
*
* @return void
*
* @throws Exception
*/
public function run()
{
{{delete_statements}}
try {
\DB::beginTransaction();

{{delete_statements}}

{{insert_statements}}

{{permission_insert_statements}}

{{insert_statements}}
{{menu_insert_statements}}
} catch(Exception $e) {
throw new Exception('Exception occur ' . $e);

{{permission_insert_statements}}
\DB::rollBack();
}

{{menu_insert_statements}}
DB::commit();
}
}
16 changes: 13 additions & 3 deletions src/stubs/delete_seed.stub
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,20 @@ class {{class}} extends Seeder
*/
public function run()
{
{{delete_statements}}
try {
\DB::beginTransaction();

{{permission_delete_statements}}
{{delete_statements}}

{{menu_delete_statements}}
{{permission_delete_statements}}

{{menu_delete_statements}}
} catch(Exception $e) {
throw new Exception('Exception occur ' . $e);

\DB::rollBack();
}

\DB::commit();
}
}
15 changes: 13 additions & 2 deletions src/stubs/row_seed.stub
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,25 @@ use Illuminate\Database\Seeder;

class {{class}} extends Seeder
{

/**
* Auto generated seed file
*
* @return void
*
* @throws Exception
*/
public function run()
{
{{insert_statements}}
try {
\DB::beginTransaction();

{{insert_statements}}
} catch(Exception $e) {
throw new Exception('exception occur ' . $e);

\DB::rollBack();
}

\DB::commit();
}
}

0 comments on commit 8cd6f47

Please sign in to comment.