-
Notifications
You must be signed in to change notification settings - Fork 3
/
Projects.php
105 lines (89 loc) · 3.29 KB
/
Projects.php
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php namespace ShahiemSeymor\Todo\Controllers;
use BackendMenu;
use Backend\Classes\Controller;
use BackendAuth;
use DB;
use Flash;
use ShahiemSeymor\Todo\Models\Assign;
use ShahiemSeymor\Todo\Models\Project;
use Redirect;
class Projects extends Controller
{
public $implement = [
'Backend.Behaviors.FormController',
'Backend.Behaviors.ListController',
'Backend.Behaviors.RelationController',
];
public $formConfig = 'config_form.yaml';
public $listConfig = 'config_list.yaml';
public $relationConfig = 'config_relation.yaml';
public function __construct()
{
parent::__construct();
BackendMenu::setContext('ShahiemSeymor.Todo', 'todo', 'list');
}
public function index()
{
$this->getClassExtension('Backend.Behaviors.ListController')->index();
}
public function listExtendQuery($query, $definition = null)
{
$query->whereExists(function($query)
{
$query->select('*')
->from('shahiemseymor_todo_projects_assigned')
->whereRaw('shahiemseymor_todo_projects_assigned.project_id = shahiemseymor_todo_projects.id')
->where('shahiemseymor_todo_projects_assigned.user_id', '=', BackendAuth::getUser()->id);
})->orWhere('shahiemseymor_todo_projects.user_id', '=', BackendAuth::getUser()->id);
}
public function create_onSave()
{
$lastId = DB::select("SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'shahiemseymor_todo_projects' LIMIT 0 , 30");
$result = $this->getClassExtension('Backend.Behaviors.FormController')->create_onSave();
$assign = explode(",", post('Project[assign]'));
if(post('Project[assign]') != '')
{
$assign = explode(",", post('Project[assign]'));
foreach($assign as $assigned)
{
$as = new Assign;
$as->user_id = $assigned;
$as->project_id = $lastId[0]->AUTO_INCREMENT;
$as->save();
}
}
return $result;
}
public function update_onSave($recordId)
{
$result = $this->getClassExtension('Backend.Behaviors.FormController')->update_onSave($recordId);
$as = new Assign;
if($as->where('project_id', '=', $recordId)->count() >= 1)
{
$as->where('project_id', '=', $recordId)->delete();
}
if(post('Project[assign]') != '')
{
$assign = explode(",", post('Project[assign]'));
foreach($assign as $assigned)
{
$as = new Assign;
$as->user_id = $assigned;
$as->project_id = $recordId;
$as->save();
}
}
return $result;
}
public function update($id)
{
$query = Project::where('id', '=', $id)->get();
foreach($query as $fetch)
{
$this->vars['user_id'] = $fetch->user_id;
$this->vars['myId'] = BackendAuth::getUser()->id;
$this->vars['isAssigned'] = Assign::checkAssigned(BackendAuth::getUser()->id, $fetch->id);
}
$this->getClassExtension('Backend.Behaviors.FormController')->update($id);
}
}