forked from ProcessMaker/processmaker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScreenSystemSeeder.php
More file actions
47 lines (42 loc) · 1.38 KB
/
ScreenSystemSeeder.php
File metadata and controls
47 lines (42 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use ProcessMaker\Models\Screen;
use ProcessMaker\Models\ScreenCategory;
class ScreenSystemSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$path = database_path('processes/screens/interstitial.json');
if (file_exists($path)) {
$json = json_decode(file_get_contents($path));
$screen = Screen::where('title', $json[0]->name)->first();
$systemCategory = ScreenCategory::where('is_system', true)->first();
if ($screen && $systemCategory) {
if ($screen->screen_category_id === $systemCategory->id) {
$screen->screen_category_id = null;
$screen->categories()->sync([]);
$screen->save();
}
}
if (!$screen) {
$screen = new Screen();
$screen->fill([
'title' => $json[0]->name,
'description' => 'Screen for the interstitial',
'type' => 'DISPLAY',
'config' => $json,
'key' => 'interstitial',
'screen_category_id' => null,
]);
$screen->save();
}
return $screen;
}
}
}