Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit be766200 authored by 62160094's avatar 62160094
Browse files

home page

parent 8a72daa2
No related branches found
No related tags found
No related merge requests found
...@@ -133,13 +133,15 @@ class general extends Exhibition_Controller ...@@ -133,13 +133,15 @@ class general extends Exhibition_Controller
echo json_encode($data); echo json_encode($data);
} }
public function get_data_search_pagination_tag() public function get_data_search_pagination_search()
{ {
$tag = $_GET['tag']; $s_value = $_GET['s_value'];
$search = $_GET['search'];
$page = $_GET['page']; $page = $_GET['page'];
$limit = $_GET['limit']; $limit = $_GET['limit'];
($search == 'tag') ? $s_value = 'AND project_tag.tag_id = ' . $s_value : $s_value = 'AND (project.name_th LIKE \'%' . $s_value . '%\' OR project.name_en LIKE \'%' . $s_value . '%\' )';
$this->load->model('general/M_general', 'pagination'); $this->load->model('general/M_general', 'pagination');
$data['pagination'] = $this->pagination->get_data_search_pagination_tag($tag, $page, $limit)->result(); $data['pagination'] = $this->pagination->get_data_search_pagination_search($s_value, $page, $limit)->result();
echo json_encode($data); echo json_encode($data);
} }
...@@ -151,6 +153,15 @@ class general extends Exhibition_Controller ...@@ -151,6 +153,15 @@ class general extends Exhibition_Controller
echo json_encode($data); echo json_encode($data);
} }
public function get_data_chart()
{
$year = $_GET['year'];
($year == 'all') ? $year = 'AND project.date = project.date' : $year = 'AND project.date = ' . $year;
$this->load->model('general/M_general', 'chart');
$data['chart'] = $this->chart->get_data_chart($year)->result();
echo json_encode($data);
}
public function get_num_search_page() public function get_num_search_page()
{ {
$year = $_GET['year']; $year = $_GET['year'];
...@@ -166,11 +177,13 @@ class general extends Exhibition_Controller ...@@ -166,11 +177,13 @@ class general extends Exhibition_Controller
echo json_encode($data); echo json_encode($data);
} }
public function get_num_project_by_tag() public function get_num_project_by_search()
{ {
$tag = $_GET['tag']; $s_value = $_GET['s_value'];
$search = $_GET['search'];
($search == 'tag') ? $s_value = 'AND project_tag.tag_id = ' . $s_value . 'GROUP BY project_tag.tag_id' : $s_value = 'AND (project.name_th LIKE \'%' . $s_value . '%\' OR project.name_en LIKE \'%' . $s_value . '%\' )';
$this->load->model('general/M_general', 'num'); $this->load->model('general/M_general', 'num');
$data['num'] = $this->num->get_num_project_by_tag($tag)->result(); $data['num'] = $this->num->get_num_project_by_search($s_value)->result();
echo json_encode($data); echo json_encode($data);
} }
...@@ -222,12 +235,20 @@ class general extends Exhibition_Controller ...@@ -222,12 +235,20 @@ class general extends Exhibition_Controller
public function get_search_tag($tag) public function get_search_tag($tag)
{ {
$data['tag'] = $tag; $data['s_value'] = $tag;
$data['search'] = 'tag'; $data['search'] = 'tag';
$this->output_general('general/v_search', $data); $this->output_general('general/v_search', $data);
} }
public function get_search_pname($pname)
{
$data['s_value'] = $pname;
$data['search'] = 'pname';
$this->output_general('general/v_search', $data);
}
public function show_select($id) public function show_select($id)
{ {
$this->load->model('project/M_project', 'project'); $this->load->model('project/M_project', 'project');
......
...@@ -38,7 +38,7 @@ class M_general extends Da_general ...@@ -38,7 +38,7 @@ class M_general extends Da_general
return $query; return $query;
} }
public function get_data_search_pagination_tag($tag, $page, $limit) public function get_data_search_pagination_search($s_value, $page, $limit)
{ {
$offset = ($page - 1) * $limit; $offset = ($page - 1) * $limit;
...@@ -51,21 +51,32 @@ class M_general extends Da_general ...@@ -51,21 +51,32 @@ class M_general extends Da_general
JOIN company ON project.company_id = company.company_id JOIN company ON project.company_id = company.company_id
JOIN instructor ON project.instructor_id = instructor.instructor_id JOIN instructor ON project.instructor_id = instructor.instructor_id
WHERE project.status = 1 WHERE project.status = 1
AND project_tag.tag_id = $tag $s_value
LIMIT $limit OFFSET $offset"; LIMIT $limit OFFSET $offset";
$query = $this->db->query($sql); $query = $this->db->query($sql);
return $query; return $query;
} }
public function get_num_project_by_tag($tag)
public function get_data_chart($year)
{
$sql = "SELECT company.name AS cp_name, COUNT(project.company_id) AS num FROM project
JOIN company ON project.company_id = company.company_id
WHERE project.status = 1 $year
GROUP BY project.company_id";
$query = $this->db->query($sql);
return $query;
}
public function get_num_project_by_search($s_value)
{ {
$sql = "SELECT *, count(project.project_id) AS num_project $sql = "SELECT *, count(project.project_id) AS num_project
FROM {$this->db_name}.project FROM {$this->db_name}.project
LEFT OUTER JOIN project_tag ON project_tag.project_id = project.project_id LEFT OUTER JOIN project_tag ON project_tag.project_id = project.project_id
WHERE project.status = 1 WHERE project.status = 1
AND project_tag.tag_id = $tag $s_value
GROUP BY project_tag.tag_id"; ";
$query = $this->db->query($sql); $query = $this->db->query($sql);
return $query; return $query;
} }
......
...@@ -215,6 +215,7 @@ ...@@ -215,6 +215,7 @@
.grow:hover { .grow:hover {
transform: scale(1.2); transform: scale(1.2);
} }
.select2-container--default .select2-selection--multiple .select2-selection__choice { .select2-container--default .select2-selection--multiple .select2-selection__choice {
color: black !important; color: black !important;
} }
...@@ -225,23 +226,23 @@ ...@@ -225,23 +226,23 @@
<div class="content" style="padding: 20px"> <div class="content" style="padding: 20px">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-2"> <div class="col-md-2">
<div class="form-group"> <div class="form-group">
<select name="year" class="form-control form-control" id="year" onchange="get_num_project()"> <select name="year" class="form-control form-control" id="year" onchange="get_num_project()">
</select> </select>
</div> </div>
</div> </div>
<div class="col-2"> <div class="col-md-2">
<div class="input-group"> <div class="input-group form-group">
<input type="search" class="form-control form-control" placeholder="ชื่อโปรเจกต์.."> <input type="search" class="form-control form-control" id='pname_search' placeholder="ชื่อโปรเจกต์..">
<div class="input-group-append"> <div class="input-group-append">
<button type="submit" class="btn btn btn-default"> <button type="submit" class="btn btn btn-default" onclick="search_pname()">
<i class="fa fa-search"></i> <i class="fa fa-search"></i>
</button> </button>
</div> </div>
</div> </div>
</div> </div>
<div class="col-2"> <div class="col-md-2">
<button style="background-color:white;border-color:#A79E9E" class="btn" data-toggle="modal" data-target="#advanceSearcheModal">ค้นหาขั้นสูง</button><br><br><br><br> <button style="background-color:white;border-color:#A79E9E" class="btn" data-toggle="modal" data-target="#advanceSearcheModal">ค้นหาขั้นสูง</button><br><br><br><br>
</div> </div>
</div> </div>
...@@ -323,10 +324,20 @@ ...@@ -323,10 +324,20 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header row">
<div class="col-9">
<h5>สถิติ</h5> <h5>สถิติ</h5>
</div> </div>
<div class="card-body" style="text-align:center; width: auto; height: 390px; position: relative;"> <div class="col-3 float-right">
<select name="year_chart" class="form-control form-control " id="year_chart" onchange="del_chart(), get_data_chart()">
<option value="all">ทั้งหมด</option>
</select>
</div>
</div>
<div class="card-body" style=" width: auto; height: 390px; ">
<div class="col-12 float-center" id="cardMyChart">
<canvas id="myChart" style="width:100%;max-width:600px"></canvas>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -471,7 +482,70 @@ ...@@ -471,7 +482,70 @@
$('#project_3').attr('href', '<?php echo site_url() . "/General/show_project_3" ?>?y=' + year); $('#project_3').attr('href', '<?php echo site_url() . "/General/show_project_3" ?>?y=' + year);
$('#project_4').attr('href', '<?php echo site_url() . "/General/show_project_4" ?>?y=' + year); $('#project_4').attr('href', '<?php echo site_url() . "/General/show_project_4" ?>?y=' + year);
get_tag(); get_tag();
get_data_chart();
});
function del_chart() {
let element = document.getElementById("myChart");
element.parentNode.removeChild(element);
let html = '';
html = '<canvas id="myChart" style="width:100%;max-width:600px"></canvas>';
document.getElementById('cardMyChart').innerHTML = html;
}
function create_chart(data) {
let year = document.getElementById('year_chart').value;
year == 'all' ? year = 'ทั้งหมด' : year = +year + 543;
var xValues = [];
var yValues = [];
console.log('xxx'.xValues);
data.forEach((row, index) => {
xValues.push(row.cp_name)
yValues.push(row.num)
})
new Chart("myChart", {
type: "bar",
data: {
labels: xValues,
datasets: [{
backgroundColor: "Navy",
data: yValues
}]
},
options: {
legend: {
display: false
},
title: {
display: true,
text: `ข้อมูลผลงานที่ทำกับบริษัทในปี ${year}`
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
stepSize: 1
}
}]
}
}
}); });
}
function get_data_chart() {
let year = document.getElementById('year_chart').value;
$.ajax({
type: 'get',
url: "<?php echo site_url() . '/General/get_data_chart'; ?>",
data: {
'year': year
},
dataType: 'json',
success: function(data) {
create_chart(data.chart);
}
})
}
function get_project_year() { function get_project_year() {
$.ajax({ $.ajax({
...@@ -484,6 +558,7 @@ ...@@ -484,6 +558,7 @@
success: function(data) { success: function(data) {
console.log(data) console.log(data)
create_option_year(data.year) create_option_year(data.year)
create_option_year_chart(data.year)
create_option_year_search(data.year) create_option_year_search(data.year)
get_num_project() get_num_project()
} }
...@@ -520,6 +595,17 @@ ...@@ -520,6 +595,17 @@
}) })
} }
function create_option_year_chart(data) {
let selectList = document.querySelector('#year_chart')
data.forEach((row, index) => {
option = document.createElement("option")
option.setAttribute("value", row.year)
const number = parseInt(row.year) + 543
option.text = number
selectList.appendChild(option)
})
}
function create_option_year_search(data) { function create_option_year_search(data) {
let selectList = document.querySelector('#year_search') let selectList = document.querySelector('#year_search')
data.forEach((row, index) => { data.forEach((row, index) => {
...@@ -544,6 +630,11 @@ ...@@ -544,6 +630,11 @@
}) })
} }
function search_pname() {
let pname = document.getElementById('pname_search').value;
(pname == '') ? '' : window.location.href = `http://localhost/exhi/index.php/General/get_search_pname/${pname}`;
}
function create_tag(data) { function create_tag(data) {
let tag = []; let tag = [];
let url = "<?php echo site_url() . '/General/get_search_tag/' ?>" let url = "<?php echo site_url() . '/General/get_search_tag/' ?>"
......
...@@ -149,6 +149,7 @@ $team = (!isset($team)) ? '' : $team; ...@@ -149,6 +149,7 @@ $team = (!isset($team)) ? '' : $team;
$grade = (!isset($grade)) ? '' : $grade; $grade = (!isset($grade)) ? '' : $grade;
$year = (!isset($year)) ? '' : $year; $year = (!isset($year)) ? '' : $year;
$search = (!isset($search)) ? 'all' : $search; $search = (!isset($search)) ? 'all' : $search;
$s_value = (!isset($s_value)) ? '' : $s_value;
?> ?>
<div class="wrapper"> <div class="wrapper">
<div class="container-fluid"> <div class="container-fluid">
...@@ -204,12 +205,12 @@ $search = (!isset($search)) ? 'all' : $search; ...@@ -204,12 +205,12 @@ $search = (!isset($search)) ? 'all' : $search;
</footer> </footer>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
if ('<?php echo $search; ?>' == 'tag') { if ('<?php echo $search; ?>' == 'all') {
load_data_tag()
load_num_project_tag()
} else {
load_data() load_data()
load_num_project() load_num_project()
} else {
load_data_search()
load_num_project_search()
} }
}); });
...@@ -246,14 +247,16 @@ $search = (!isset($search)) ? 'all' : $search; ...@@ -246,14 +247,16 @@ $search = (!isset($search)) ? 'all' : $search;
}); });
} }
function load_data_tag() { function load_data_search() {
let limit = document.getElementById("limit").value; let limit = document.getElementById("limit").value;
let tag = <?php echo json_encode($tag); ?>; let s_value = '<?php echo $s_value; ?>';
let search = '<?php echo $search; ?>';
$.ajax({ $.ajax({
type: "get", type: "get",
url: "<?php echo site_url() . '/General/get_data_search_pagination_tag' ?>", url: "<?php echo site_url() . '/General/get_data_search_pagination_search' ?>",
data: { data: {
'tag': tag, 's_value': s_value,
'search': search,
'page': current_page, 'page': current_page,
'limit': limit 'limit': limit
}, },
...@@ -295,14 +298,16 @@ $search = (!isset($search)) ? 'all' : $search; ...@@ -295,14 +298,16 @@ $search = (!isset($search)) ? 'all' : $search;
}); });
} }
function load_num_project_tag() { function load_num_project_search() {
let limit = document.getElementById("limit").value; let limit = document.getElementById("limit").value;
let tag = <?php echo json_encode($tag); ?>; let s_value = '<?php echo $s_value; ?>';
let search = '<?php echo $search; ?>';
$.ajax({ $.ajax({
type: "get", type: "get",
url: "<?php echo site_url() . '/General/get_num_project_by_tag' ?>", url: "<?php echo site_url() . '/General/get_num_project_by_search' ?>",
data: { data: {
'tag': tag, 's_value': s_value,
'search': search,
}, },
dataType: "json", dataType: "json",
success: function(data) { success: function(data) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment