Skip to content

Commit c799d62

Browse files
Criar, Ver, Atualizar, Excluir, Concluir, e Reabrir Tarefas
1 parent 123dec0 commit c799d62

File tree

7 files changed

+180
-165
lines changed

7 files changed

+180
-165
lines changed

application/controllers/Task.php

Lines changed: 56 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
<?php
2-
defined('BASEPATH') or die("Sem Permissão");
2+
defined('BASEPATH') or die('Sem Permissão');
33

44
class Task extends CI_Controller{
55
public function index(){
66
$this->load->model(array('TaskModel', 'TagModel'));
77

88
$user = authorize(1);
99

10-
//$tasks = $this->TaskModel->searchAll($user->email);
11-
$tasks = false;
10+
$tasksToDo = $this->TaskModel->searchAllByUserAndStatus($user->id_user, 0);
11+
$tasksDone = $this->TaskModel->searchAllByUserAndStatus($user->id_user, 1);
1212

1313
$tags = $this->TagModel->searchByUser($user->id_user);
1414

1515
$page = array(
16-
'page_content' => "task/list",
17-
'user' => $user,
18-
'tasks' => $tasks,
1916
'page_title' => 'Minhas Tarefas',
20-
'tasks' => array(),
17+
'page_content' => 'task/list',
18+
'user' => $user,
19+
'tasks' => $tasksToDo,
20+
'tasksDone' => $tasksDone,
2121
'tags' => $tags,
2222
);
2323

24-
$this->load->view("public/base", $page);
24+
$this->load->view('public/base', $page);
2525
}
2626

2727
public function insert(){
@@ -30,14 +30,14 @@ public function insert(){
3030
$this->load->model('TaskModel');
3131

3232
$task = new stdClass();
33-
$task->title = html_escape($this->input->post('title'));
34-
$task->desc = html_escape($this->input->post('desc'));
33+
$task->user_id = $user->id_user;
34+
$task->tag_id = $this->input->post('tag', true);
35+
$task->title = $this->input->post('title', true);
36+
$task->description = $this->input->post('description', true);
37+
$task->priority = $this->input->post('priority', true);
3538
$task->created_in = date('d/m/Y H:i:s');
36-
$task->completed_in = "";
37-
$task->status = "";
38-
$task->priority = html_escape($this->input->post('priority'));
3939

40-
$this->TaskModel->insert($task, $user->email);
40+
$this->TaskModel->insert($task);
4141

4242
$this->session->set_flashdata('success', 'Nova Tarefa Inserida');
4343

@@ -47,122 +47,94 @@ public function insert(){
4747
public function edit($id){
4848
$user = authorize(1);
4949

50-
$this->load->model('TaskModel');
50+
$task = $this->thisIsMyTask($id, $user->id_user);
5151

52-
$task = $this->TaskModel->searchById($user->email, $id);
53-
54-
if(!$task){
55-
$this->session->set_flashdata('error', 'Tarefa não encontrada');
56-
redirect("/tarefas");
57-
}
52+
$this->load->model('TagModel');
53+
$tags = $this->TagModel->searchByUser($user->id_user);
5854

5955
$page = array(
60-
'page_content' => "task/edit",
56+
'page_title' => 'Editar Tarefa',
57+
'page_content' => 'task/edit',
6158
'user' => $user,
6259
'task' => $task,
63-
'id' => $id,
60+
'tags' => $tags,
6461
);
6562

66-
$this->load->view("public/base", $page);
63+
$this->load->view('public/base', $page);
6764
}
6865

6966
public function update($id){
7067
$user = authorize(1);
7168

72-
$this->load->model('TaskModel');
69+
$task = $this->thisIsMyTask($id, $user->id_user);
7370

74-
$task = $this->TaskModel->searchById($user->email, $id);
71+
$newTask = new stdClass();
72+
$newTask->title = $this->input->post('title', true);
73+
$newTask->description = $this->input->post('description', true);
74+
$newTask->priority = $this->input->post('priority', true);
75+
$newTask->tag_id = $this->input->post('tag', true);
7576

76-
if(!$task){
77-
$this->session->set_flashdata('error', 'Tarefa não encontrada');
78-
redirect("/tarefas");
79-
}
80-
81-
$newData = new stdClass();
82-
$newData->title = html_escape($this->input->post('title'));
83-
$newData->desc = html_escape($this->input->post('desc'));
84-
$newData->priority = html_escape($this->input->post('priority'));
85-
$newData->status = $task->status;
86-
$newData->created_in = $task->created_in;
87-
$newData->completed_in = $task->completed_in;
88-
89-
$this->TaskModel->updateById($user->email, $id, $newData);
77+
$this->TaskModel->updateById($newTask, $id);
9078

9179
$this->session->set_flashdata('success', 'Tarefa Atualizada');
9280

93-
redirect('/tarefas');
81+
redirect('tarefas');
9482
}
9583

9684
public function delete($id){
9785
$user = authorize(1);
9886

99-
$this->load->model('TaskModel');
100-
101-
$task = $this->TaskModel->searchById($user->email, $id);
102-
103-
if(!$task){
104-
$this->session->set_flashdata('error', 'Tarefa não encontrada');
105-
redirect("/tarefas");
106-
}
87+
$task = $this->thisIsMyTask($id, $user->id_user);
10788

108-
$tasks = $this->TaskModel->deleteById($user->email, $id);
89+
$this->TaskModel->deleteById($id);
10990

11091
$this->session->set_flashdata('success', 'Tarefa Excluída');
11192

112-
redirect('/tarefas');
93+
redirect('tarefas');
11394
}
11495

11596
public function complete($id){
11697
$user = authorize(1);
11798

118-
$this->load->model('TaskModel');
119-
120-
$task = $this->TaskModel->searchById($user->email, $id);
121-
122-
if(!$task){
123-
$this->session->set_flashdata('error', 'Tarefa não encontrada');
124-
redirect("/tarefas");
125-
}
99+
$task = $this->thisIsMyTask($id, $user->id_user);
126100

127-
$newData = new stdClass();
128-
$newData->title = $task->title;
129-
$newData->desc = $task->desc;
130-
$newData->status = "1";
131-
$newData->created_in = $task->created_in;
132-
$newData->completed_in = date('d/m/Y H:i:s');
133-
$newData->priority = $task->priority;
101+
$newTask = new stdClass();
102+
$newTask->status = 1;
103+
$newTask->completed_in = datetime_current();
134104

135-
$this->TaskModel->updateById($user->email, $id, $newData);
105+
$this->TaskModel->updateById($newTask, $id);
136106

137107
$this->session->set_flashdata('success', 'Tarefa Concluída');
138108

139-
redirect('/tarefas');
109+
redirect('tarefas');
140110
}
141111

142112
public function reopen($id){
143113
$user = authorize(1);
144114

145-
$this->load->model('TaskModel');
115+
$task = $this->thisIsMyTask($id, $user->id_user);
146116

147-
$task = $this->TaskModel->searchById($user->email, $id);
117+
$newTask = new stdClass();
118+
$newTask->status = 0;
119+
$newTask->completed_in = '';
148120

149-
if(!$task){
150-
$this->session->set_flashdata('error', 'Tarefa não encontrada');
151-
redirect("/tarefas");
152-
}
121+
$this->TaskModel->updateById($newTask, $id);
153122

154-
$newData = new stdClass();
155-
$newData->title = $task->title;
156-
$newData->desc = $task->desc;
157-
$newData->status = "";
158-
$newData->created_in = $task->created_in;
159-
$newData->completed_in = $task->completed_in;
160-
$newData->priority = $task->priority;
123+
$this->session->set_flashdata('success', 'Tarefa Reaberta');
161124

162-
$this->TaskModel->updateById($user->email, $id, $newData);
125+
redirect('tarefas');
126+
}
163127

164-
$this->session->set_flashdata('success', 'Tarefa Reaberta');
128+
public function thisIsMyTask($id_task, $user_id){
129+
$this->load->model('TaskModel');
165130

166-
redirect('/tarefas');
131+
$task = $this->TaskModel->searchByIdAndUser($id_task, $user_id);
132+
133+
if(!$task){
134+
$this->session->set_flashdata('error', 'Tarefa Inválida');
135+
redirect('tarefas');
136+
}
137+
138+
return $task;
167139
}
168140
}

application/models/TaskModel.php

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@ public function insert(stdClass $newTask){
1010
return true;
1111
}
1212

13-
public function searchAllByUser($id){
14-
$this->db->where('user_id', $id);
13+
public function searchAllByUserAndStatus($user_id, $status){
14+
$this->db->select('id_task, title, tb_task.description, priority, tb_task.created_in, completed_in, name, color');
15+
$this->db->where($this->table.'.user_id', $user_id);
16+
$this->db->where('status', $status);
17+
$this->db->join('tb_tag', 'tag_id = id_tag');
1518
$this->db->from($this->table);
1619

1720
return $this->db->get()->result();
@@ -25,41 +28,36 @@ public function searchById($id){
2528
return $this->db->get()->row();
2629
}
2730

28-
public function updateById($email, $id, $newData){
29-
$tasks = TaskModel::searchAll($email);
30-
31-
$tasks[$id] = $newData;
32-
33-
TaskModel::save($email, $tasks);
31+
public function searchByIdAndUser($id, $user_id){
32+
$this->db->select('tb_task.*, name');
33+
$this->db->where('id_task', $id);
34+
$this->db->where('tb_task.user_id', $user_id);
35+
$this->db->join('tb_tag', 'tag_id = id_tag');
36+
$this->db->limit(1);
37+
$this->db->from($this->table);
3438

35-
return true;
39+
return $this->db->get()->row();
3640
}
3741

38-
public function deleteById($email, $id){
39-
$tasks = TaskModel::searchAll($email);
40-
41-
unset($tasks[$id]);
42-
43-
array_multisort($tasks);
44-
45-
TaskModel::save($email, $tasks);
42+
public function updateById(stdClass $task, $id){
43+
$this->db->where('id_task', $id);
44+
$this->db->update($this->table, $task);
4645

4746
return true;
4847
}
4948

50-
public function save($email, $tasks){
51-
$fileJson = json_encode($tasks, JSON_PRETTY_PRINT);
52-
53-
file_put_contents(FCPATH."database/tasks/$email.json", $fileJson);
49+
public function deleteById($id){
50+
$this->db->where('id_task', $id);
51+
$this->db->delete($this->table);
5452

5553
return true;
5654
}
5755

58-
public function updateFileName($email, $newEmail){
59-
$tasks = TaskModel::searchAll($email);
60-
unlink(FCPATH."database/tasks/$email.json");
56+
public function deleteByUser($id){
57+
$this->db->where('user_id', $id);
58+
$this->db->delete($this->table);
6159

62-
TaskModel::save($newEmail, $tasks);
6360
return true;
6461
}
62+
6563
}

application/views/task/add.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
</div>
77
<div class="col-lg-4">
88
<label for="tag">Etiqueta</label>
9-
<select name="tag" required class="form-control">
9+
<select name="tag" id="tag" required class="form-control">
1010
<option> -- Selecione -- </option>
1111
<?php
12-
12+
foreach($tags as $tag){
13+
echo '<option value="',$tag->id_tag,'">',$tag->name,'</option>';
14+
}
1315
?>
1416
</select>
1517
</div>
@@ -24,8 +26,8 @@
2426
</div>
2527
</div>
2628

27-
<label for="desc">Descrição</label>
28-
<textarea name="desc" placeholder="Informe os detalhes" class="form-control" required></textarea>
29+
<label for="description">Descrição</label>
30+
<textarea name="description" id="description" placeholder="Informe os detalhes" class="form-control" required></textarea>
2931

3032
<br><br>
3133

application/views/task/edit.php

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,42 @@
1-
<?php $this->load->view('user/navbar', array('user'=>$user)); ?>
2-
31
<br>
42
<div class="row">
5-
<div class="col-lg-6 col-lg-offset-3">
6-
<div class="container">
7-
<br>
8-
<div class="card">
9-
<h1 class="title">Atualizar Tarefa</h1>
10-
<form action="<?php echo base_url('atualizar/'.$id); ?>" method="POST">
11-
<div class="input-container">
12-
<input type="text" name="title" value="<?php echo $task->title; ?>" id="title" required>
13-
<label for="title">Titulo</label>
14-
<div class="bar"></div>
15-
</div>
16-
<div class="input-container">
17-
<input type="text" name="desc" value="<?php echo $task->desc; ?>" id="desc" required>
18-
<label for="desc">Descrição</label>
19-
<div class="bar"></div>
20-
</div>
21-
22-
<div class="input-container">
23-
<label style="color: #9d9d9d; font-size: 18px; margin-top:-30px;">Prioridade</label><br>
24-
<select id="priority" name="priority" required class="form-control input-lg">
25-
<option>Baixa</option>
26-
<option selected>Normal</option>
27-
<option>Alta</option>
28-
</select>
29-
</div>
3+
<div class="col-lg-8 col-lg-offset-2">
4+
<form action="<?php echo base_url('atualizar/'.$task->id_task); ?>" method="post">
5+
<div class="row">
6+
<div class="col-lg-4">
7+
<label for="title">Titulo</label>
8+
<input type="text" value="<?php echo $task->title; ?>" name="title" placeholder="O que você vai fazer?" class="form-control" required><br>
9+
</div>
10+
<div class="col-lg-4">
11+
<label for="tag">Etiqueta</label>
12+
<select name="tag" id="tag" required class="form-control">
13+
<option> -- Selecione -- </option>
14+
<?php
15+
echo '<option selected value="',$task->tag_id,'">',$task->name,'</option>';
16+
foreach($tags as $tag){
17+
echo '<option value="',$tag->id_tag,'">',$tag->name,'</option>';
18+
}
19+
?>
20+
</select>
21+
</div>
3022

31-
<div class="button-container">
32-
<button><span>Atualizar</span></button>
33-
</div>
34-
</form>
23+
<div class="col-lg-4">
24+
<label for="priority">Prioridade</label>
25+
<select name="priority" required class="form-control">
26+
<?php echo '<option selected>',$task->priority,'</option>'; ?>
27+
<option>Baixa</option>
28+
<option>Normal</option>
29+
<option>Alta</option>
30+
</select>
31+
</div>
3532
</div>
36-
</div>
33+
34+
<label for="description">Descrição</label>
35+
<textarea name="description" id="description" placeholder="Informe os detalhes" class="form-control" required><?php echo $task->description; ?></textarea>
36+
37+
<br><br>
38+
39+
<button class="btn btn-block btn-lg btn-primary">ATUALIZAR</button>
40+
</form>
3741
</div>
3842
</div>

0 commit comments

Comments
 (0)