Skip to content

Commit 86ab77d

Browse files
Cadastrar, Visualizar, Editar, e Excluir Tags dos Times
1 parent c799d62 commit 86ab77d

File tree

8 files changed

+300
-10
lines changed

8 files changed

+300
-10
lines changed

application/config/routes.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@
7070
$route['time/membro/adicionar'] = 'teamMember/addmember';
7171
$route['time/membro/remover/(:num)/(:num)'] = 'teamMember/removemember/$1/$2';
7272

73+
$route['time/etiqueta/inserir/(:num)'] = 'teamTag/insert/$1';
74+
$route['time/etiqueta/editar/(:num)/(:num)'] = 'teamTag/edit/$1/$2';
75+
$route['time/etiqueta/atualizar/(:num)/(:num)'] = 'teamTag/update/$1/$2';
76+
$route['time/etiqueta/excluir/(:num)/(:num)'] = 'teamTag/delete/$1/$2';
77+
7378
$route['etiqueta/inserir'] = 'tag/insert';
7479
$route['etiqueta/editar/(:num)'] = 'tag/edit/$1';
7580
$route['etiqueta/excluir/(:num)'] = 'tag/delete/$1';

application/controllers/TeamMember.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,21 @@ class TeamMember extends Team{
77
public function view($team_id){
88
$user = authorize(1);
99

10-
$this->load->model('TeamMemberModel');
10+
$this->load->model(array('TeamMemberModel', 'TeamTagModel'));
1111
$team = parent::iManageThisTeam($team_id, $user->id_user);
1212

1313
$availableMembers = $this->TeamMemberModel->searchAvailableMembersForThisTeam($team_id, $user->id_user);
1414

1515
$members = $this->TeamMemberModel->searchAllMembersOfTeam($team_id);
1616

17+
$tags = $this->TeamTagModel->searchAllByTeam($team_id);
18+
1719
$page = [
1820
'page_title' => 'Gerenciar Time',
1921
'page_content' => 'team/view',
2022
'user' => $user,
2123
'team' => $team,
24+
'tags' => $tags,
2225
'availableMembers' => $availableMembers,
2326
'members' => $members,
2427
];
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<?php
2+
defined('BASEPATH') or exit('Sem Permissão');
3+
4+
require_once(APPPATH.'controllers/Team.php');
5+
6+
class TeamTag extends CI_Controller{
7+
public function index(){
8+
9+
}
10+
11+
public function insert($team_id){
12+
$user = authorize(1);
13+
14+
$team = Team::iManageThisTeam($team_id, $user->id_user);
15+
16+
$new_tag = new stdClass();
17+
$new_tag->team_id = $team_id;
18+
$new_tag->created_by = $user->id_user;
19+
$new_tag->name = $this->input->post('name', true);
20+
$new_tag->color = $this->input->post('color', true);
21+
$new_tag->description = $this->input->post('description', true);
22+
$new_tag->created_in = datetime_current();
23+
24+
$this->load->model('TeamTagModel');
25+
$this->TeamTagModel->insert($new_tag);
26+
27+
$this->session->set_flashdata('success', 'Etiqueta Criada');
28+
redirect('time/'.$team_id.'#tags');
29+
}
30+
31+
public function delete($team_id, $tag_id){
32+
$user = authorize(1);
33+
34+
$team = Team::iManageThisTeam($team_id, $user->id_user);
35+
36+
$teamTag = $this->thisTagBelongsToTheTeam($tag_id, $team_id);
37+
38+
$this->TeamTagModel->deleteById($tag_id);
39+
40+
$this->session->set_flashdata('success', 'Etiqueta Excluída');
41+
42+
redirect('time/'.$team_id.'#tags');
43+
}
44+
45+
public function edit($team_id, $tag_id){
46+
$user = authorize(1);
47+
48+
$team = Team::iManageThisTeam($team_id, $user->id_user);
49+
50+
$teamTag = $this->thisTagBelongsToTheTeam($tag_id, $team_id);
51+
52+
$page = [
53+
'page_title' => 'Editar Etiqueta',
54+
'page_content' => 'teamtag/edit',
55+
'user' => $user,
56+
'tag' => $teamTag,
57+
'team_id' => $team_id,
58+
];
59+
60+
$this->load->view('public/base', $page);
61+
}
62+
63+
public function update($team_id, $tag_id){
64+
$user = authorize(1);
65+
66+
$team = Team::iManageThisTeam($team_id, $user->id_user);
67+
68+
$teamTag = $this->thisTagBelongsToTheTeam($tag_id, $team_id);
69+
70+
$teamTag->name = $this->input->post('name', true);
71+
$teamTag->description = $this->input->post('description', true);
72+
$teamTag->color = $this->input->post('color', true);
73+
74+
$this->TeamTagModel->updateById($teamTag, $tag_id);
75+
76+
$this->session->set_flashdata('success', 'Etiqueta Atualizada');
77+
redirect('time/'.$team_id.'#tags');
78+
}
79+
80+
public function thisTagBelongsToTheTeam($id_tag, $team_id){
81+
$this->load->model('TeamTagModel');
82+
83+
$tag = $this->TeamTagModel->searchByIdAndTeam($id_tag, $team_id);
84+
85+
if(!$tag){
86+
$this->session->set_flashdata('error', 'Essa etiqueta não pertence ao time');
87+
redirect('time/'.$team_id.'#tags');
88+
}
89+
90+
return $tag;
91+
}
92+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
defined('BASEPATH') or exit('Sem Permissão');
3+
4+
class TeamTagModel extends CI_Model{
5+
protected $table = 'tb_teamtag';
6+
7+
public function insert(stdClass $teamTag){
8+
$this->db->insert($this->table, $teamTag);
9+
10+
return $this->db->insert_id();
11+
}
12+
13+
public function searchAllByTeam($team_id){
14+
$this->db->where('team_id', $team_id);
15+
$this->db->from($this->table);
16+
17+
return $this->db->get()->result();
18+
}
19+
20+
public function searchById($id){
21+
$this->db->where('id_teamtag', $id);
22+
$this->db->limit(1);
23+
$this->db->from($this->table);
24+
25+
return $this->db->get()->row();
26+
}
27+
28+
public function searchByIdAndTeam($id, $team_id){
29+
$this->db->where('id_teamtag', $id);
30+
$this->db->where('team_id', $team_id);
31+
$this->db->limit(1);
32+
$this->db->from($this->table);
33+
34+
return $this->db->get()->row();
35+
}
36+
37+
public function deleteById($id){
38+
$this->db->where('id_teamtag', $id);
39+
$this->db->delete($this->table);
40+
41+
return true;
42+
}
43+
44+
public function deleteByUser($user_id){
45+
$this->db->where('created_by', $user_id);
46+
$this->db->delete($this->table);
47+
48+
return true;
49+
}
50+
51+
public function updateById(stdClass $teamTag, $id){
52+
$this->db->where('id_teamtag', $id);
53+
$this->db->update($this->table, $teamTag);
54+
55+
return true;
56+
}
57+
}

application/views/team/view.php

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<script>
99
$(document).ready(function(){
10-
$('select').select2();
10+
// $('select').select2();
1111

1212
$('[data-placement="top"]').tooltip();
1313

@@ -45,20 +45,39 @@ function formatState (state) {
4545

4646
<br><br>
4747
<ul class="nav nav-tabs">
48-
<li class="active"><a href="#tasks" data-toggle="tab">Tarefas</a>
49-
</li>
50-
<li><a href="#members" data-toggle="tab">Membros</a>
51-
</li>
52-
<li><a href="#settings" data-toggle="tab">Configurações</a>
53-
</li>
48+
<li><a href="#tags" data-toggle="tab"><span class="fa fa-tags"></span> Etiquetas</a>
49+
</li>
50+
<li class="active"><a href="#tasksToDo" data-toggle="tab"><span class="fa fa-exclamation-circle"></span> Tarefas Para Fazer</a>
51+
</li>
52+
<li><a href="#tasksDone" data-toggle="tab"><span class="fa fa-check-circle"></span> Tarefas Concluídas</a>
53+
</li>
54+
<li><a href="#members" data-toggle="tab"><span class="fa fa-group"></span> Membros</a>
55+
</li>
56+
<li><a href="#settings" data-toggle="tab"><span class="fa fa-cog"></span> Configurações</a>
57+
</li>
5458
</ul>
5559

5660
<!-- Tab panes -->
5761
<div class="tab-content">
58-
<div class="tab-pane" id="">
62+
<div class="tab-pane" id="tags">
5963
<br>
64+
<a href="#addTag" class="btn btn-link" data-toggle="collapse" aria-expanded="false" aria-controls="collapseExample">
65+
<span class="fa fa-plus-circle"></span> Nova Etiqueta
66+
</a>
67+
<br><br>
68+
<div class="collapse" id="addTag">
69+
<div class="well">
70+
<?php $this->load->view('teamtag/add'); ?>
71+
</div>
72+
</div>
73+
<br><br>
74+
<?php $this->load->view('teamtag/list'); ?>
75+
</div>
76+
<div class="tab-pane fade in active" id="tasksToDo">
77+
<br>
78+
<h4>Tarefas</h4>
6079
</div>
61-
<div class="tab-pane fade in active" id="tasks">
80+
<div class="tab-pane fade" id="tasksDone">
6281
<br>
6382
<h4>Tarefas</h4>
6483
</div>

application/views/teamtag/add.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<form action="<?php echo base_url('time/etiqueta/inserir/'.$team->id_team); ?>" method="post">
2+
<div class="row">
3+
<div class="col-lg-6 col-lg-offset-3">
4+
<label for="name">Titulo: </label>
5+
<input type="text" id="name" name="name" placeholder="Nome da Etiqueta" class="form-control" required><br>
6+
7+
<label for="color">Cor: </label>
8+
<select class="form-control" id="color" name="color" required>
9+
<option value="default">Cinza</option>
10+
<option value="success">Verde</option>
11+
<option value="info" >Azul Claro</option>
12+
<option value="primary">Azul Escuro</option>
13+
<option value="danger" >Vermelho</option>
14+
<option value="warning">Amarelo</option>
15+
</select>
16+
<Br>
17+
18+
<label for="description">Descrição: </label>
19+
<textarea name="description" id="description" placeholder="Descrição da Etiqueta" class="form-control" required></textarea>
20+
21+
<br>
22+
<button class="btn btn-block btn-lg btn-primary">ENVIAR</button>
23+
</div>
24+
</div>
25+
</form>

application/views/teamtag/edit.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<form action="<?php echo base_url('time/etiqueta/atualizar/'.$team_id.'/'.$tag->id_teamtag); ?>" method="post">
2+
<div class="row">
3+
<div class="col-lg-6 col-lg-offset-3">
4+
<label for="name">Titulo: </label>
5+
<input type="text" value="<?php echo $tag->name; ?>" id="name" name="name" placeholder="Nome da Etiqueta" class="form-control" required><br>
6+
7+
<label for="color">Cor: </label>
8+
<select class="form-control" id="color" name="color" required>
9+
<option value="<?php echo $tag->color; ?>"><?php echo tag_label_color($tag->color); ?></option>
10+
<option value="default">Cinza</option>
11+
<option value="success">Verde</option>
12+
<option value="info" >Azul Claro</option>
13+
<option value="primary">Azul Escuro</option>
14+
<option value="danger" >Vermelho</option>
15+
<option value="warning">Amarelo</option>
16+
</select>
17+
<Br>
18+
19+
<label for="description">Descrição: </label>
20+
<textarea name="description" id="description" placeholder="Descrição da Etiqueta" class="form-control" required><?php echo $tag->description; ?></textarea>
21+
22+
<br>
23+
<button class="btn btn-block btn-lg btn-primary">ENVIAR</button>
24+
</div>
25+
</div>
26+
</form>

application/views/teamtag/list.php

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<script>
2+
$( document ).ready(function (){
3+
$('#table_tags').DataTable();
4+
5+
$('[data-target="#removeTag"]').on("click", function(){
6+
$('#confirmRemoveTag').attr('href','<?php echo base_url("time/etiqueta/excluir/$team->id_team/"); ?>'+$(this).val());
7+
});
8+
});
9+
</script>
10+
11+
<?php
12+
echo '<table class="table table-hover table-striped " id="table_tags">';
13+
echo '<thead>';
14+
echo '<tr>';
15+
echo '<th>Nome</th>';
16+
echo '<th>Descrição</th>';
17+
echo '<th>Criado em</th>';
18+
echo '<th>Opções</th>';
19+
echo '</tr>';
20+
echo '</thead>';
21+
echo '<tbody>';
22+
foreach($tags as $id=>$tag){
23+
echo '<tr>';
24+
echo '<td><span class="label label-',$tag->color,'">',$tag->name,'</span></td>';
25+
echo '<td>',$tag->description,'</td>';
26+
echo '<td>',$tag->created_in,'</td>';
27+
28+
echo '<td>';
29+
echo '<button data-placement="top" title="Excluir" data-target="#removeTag" value="',$tag->id_teamtag,'" data-toggle="modal" class="btn btn-sm btn-danger"><span class="glyphicon glyphicon-trash"></span></button> ';
30+
echo '<a data-placement="top" title="Editar" href="',base_url('time/etiqueta/editar/'.$team->id_team.'/'.$tag->id_teamtag),'" class="btn btn-sm btn-warning"><span class="glyphicon glyphicon-edit"></span></a> ';
31+
echo '</td>';
32+
echo '</tr>';
33+
}
34+
echo '</tbody>';
35+
echo '</table>';
36+
?>
37+
38+
<!-- Modal Concluir -->
39+
<div class="modal fade" id="removeTag" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
40+
<div class="modal-dialog modal-sm" role="document">
41+
<div class="modal-content">
42+
<div class="modal-header">
43+
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
44+
<h4 class="modal-title" id="myModalLabel">Excluir Etiqueta</h4>
45+
</div>
46+
<div class="modal-body">
47+
<div class="alert alert-info">
48+
<strong>Você deseja excluir esta etiqueta?</strong>
49+
</div>
50+
</div>
51+
<div class="modal-footer">
52+
<div class="row">
53+
<div class="col-lg-6">
54+
<a href="" id="confirmRemoveTag" class="btn btn-block btn-lg btn-primary">Sim</a>
55+
</div>
56+
<div class="col-lg-6">
57+
<button type="button" class="btn btn-block btn-lg btn-default" data-dismiss="modal">Não</button>
58+
</div>
59+
</div>
60+
</div>
61+
</div>
62+
</div>
63+
</div>

0 commit comments

Comments
 (0)