"use strict";
var fSeventsIndex = function () {
// элементы html страницы
var $main_content; // правая сторона, там живёт таблица
var $select_area; // фильтр area
var $select_atype; // фильтр atype
var $select_property; // фильтр property
var $select_auser; // фильтр auser
var $input_start_date; // фильтр "дата начала периода"
var $input_end_date; // фильтр "дата конца периода"
var $h2_page_title; // заголовок страницы
// компонент "над таблицей"
var $div_index_adds;
var $div_ecoef;
var $p_ecoef_val; // здесь выводим число - коэф-т эффективности
var $p_ecoef_mess; // здесь вешаем hint на подпись "эффективность"
var $p_ecoef_comment; // здесь выводим комментарий
var $div_area_text_stats;
var $ul_props;
var $div_graph;
var $div_graph_canvas;
var fBuild = function () {
// зафиксируем html элементы
$main_content = $('#main_content');
$select_area = $("#q_area_id");
$select_atype = $("#q_atype_id");
$select_property = $("#q_property_id");
$select_auser = $("#q_auser_id");
$input_start_date = $("#q_created_at_gteq");
$input_end_date = $("#q_created_at_lteq");
$h2_page_title = $("h2#page_title");
// построим компонент "над таблицей"
$div_index_adds = $("
");
$div_ecoef = $("");
$p_ecoef_val = $("");
$p_ecoef_mess = $("Эффективность
");
$p_ecoef_comment = $("");
$div_ecoef.append($p_ecoef_val);
$div_ecoef.append($p_ecoef_mess);
$div_ecoef.append($p_ecoef_comment);
$div_area_text_stats = $("");
$ul_props = $("");
$div_area_text_stats.append($ul_props);
$div_graph = $("");
$div_graph_canvas = $("").appendTo($div_graph);
$div_index_adds.append($div_ecoef);
$div_index_adds.append($div_area_text_stats);
$div_index_adds.append($div_graph);
$main_content.prepend($div_index_adds);
// теперь покажем
$main_content.css('opacity', '1.0');
};
var fRequest = function () {
var area_id = $select_area.val();
var atype_id = $select_atype.val();
var property_id = $select_property.val();
var auser_id = $select_auser.val();
var start_date = $input_start_date.val();
var end_date = $input_end_date.val();
$.ajax({
url: '/estate/areas_ecoef',
type: 'POST',
dataType: 'json',
data: {
area_id: area_id,
atype_id: atype_id,
property_id: property_id,
auser_id: auser_id,
start_date: start_date,
end_date: end_date
}
}).done(function (data, result) {
if (result == 'success') {
console.log(data);
$p_ecoef_val.text(data["average_value"]);
$p_ecoef_comment.html(data["comment"]);
$p_ecoef_mess.find('.abbr_ecoef').attr('title', data["abbr"]);
if (data["props"] != undefined) {
var i, iob, itag, ival, $ili;
for (i = 0; i < data["props"].length; i++) {
iob = data["props"][i];
itag = iob["tag"];
ival = iob["val"];
$ili = $ul_props.find("#" + itag);
$ili.html(ival);
}
}
if (data["graph"] != undefined) {
fDrawChart(data["graph"]);
}
$h2_page_title.text(data["title"]);
$h2_page_title.css('opacity', '1.0');
$(document).attr('title', data["title"]);
} else {
alert('fail: /estate/areas_ecoef');
}
//fPreloaderHide();
});
//fPreloaderShow();
};
var fInit = function () {
fBuild();
fRequest();
};
var fDrawChart_google = function (data_array_rows) {
//data_array = [
// ['Director (Year)', 'Rotten Tomatoes', 'IMDB'],
// ['Alfred Hitchcock (1935)', 8.4, 7.9],
// ['Ralph Thomas (1959)', 6.9, 6.5],
// ['Don Sharp (1978)', 6.5, 6.4],
// ['James Hawes (2008)', 4.4, 6.2]
//]
google.charts.load('current', {'packages': ['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
//var data = google.visualization.arrayToDataTable(data_array_rows);
var data = new google.visualization.DataTable();
data.addColumn('date', ''); // Implicit domain column.
data.addColumn('number', ''); // Implicit data column.
//data.addColumn({type:'number', role:'interval'});
//data.addColumn({type:'number', role:'interval'});
//data.addColumn('number', 'Expenses');
var i, iob, yearValue, monthValue, dayValue;
for (i=0; i " + yearValue + "/" + monthValue + "/" + dayValue ); // + ": " + data_array_rows[i][0]
data_array_rows[i][0] = new Date(parseInt(yearValue),parseInt(monthValue),parseInt(dayValue));
}
data.addRows(data_array_rows);
var options = {
title: 'График занята/свободна',
vAxis: { title: '', ticks: [0,1] },
ignoreBounds: true,
isStacked: false
};
var chart = new google.visualization.SteppedAreaChart(document.getElementById('graph'));
chart.draw(data, options);
}
$('#graph').css('opacity','1.0').css('display','block');
};
var fDrawChart_chart_js = function (data) {
if (data != undefined) {
var ctx = $("#graph_canvas");
var chartInstance = new Chart(ctx, {
type: 'bar',
data: {
labels: data["labels"],
datasets: [
{
label: "График занята/свободна",
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255,99,132,1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1,
barPercentage: 1.0,
categoryPercentage: 0,
data: data["points"]
}
]
},
options: {
scales: {
xAxes: [{
type: 'time',
time: {
displayFormats: {
quarter: 'YYYY/MM/DD'
}
}
}]
}
}
});
$('#graph').css('opacity','1.0');
}
};
var fDrawChart = function (data) {
if (data != undefined) {
var dataPoints = [];
//[
// {x: new Date(2012,0), y: 8.3} ,
// {x: new Date(2012,1), y: 8.3} ,
// {x: new Date(2012,2), y: 8.2} ,
// {x: new Date(2012,3), y: 8.1} ,
// {x: new Date(2012,4), y: 8.2} ,
// {x: new Date(2012,5), y: 8.2} ,
// {x: new Date(2012,6), y: 8.2} ,
// {x: new Date(2012,7), y: 8.1} ,
// {x: new Date(2012,8), y: 7.8} ,
// {x: new Date(2012,9), y: 7.9} ,
// {x: new Date(2012,10), y:7.8} ,
// {x: new Date(2012,11), y:7.8} ,
// {x: new Date(2013,0), y:7.9} ,
// {x: new Date(2013,1), y:7.7} ,
// {x: new Date(2013,2), y:7.6} ,
// {x: new Date(2013,3), y:7.5}
//]
var i, iob;
for (i = 0; i < data.length; i ++) {
iob = data[i];
dataPoints.push({
x: new Date(iob["year"], iob["month"], iob["day"]),
y: iob["val"]
})
}
var chart = new CanvasJS.Chart("graph",
{
title:{
text: "График занята/свободна"
},
animationEnabled: true,
axisY:{
includeZero: false,
interval: 1,
valueFormatString: ""
},
toolTip:{
contentFormatter: function ( e ) {
var res = "Свободна";
if (e.entries[0].dataPoint.y == 1) {
res = "Занята"
}
return res;
}
},
data: [
{
type: "stepLine",
//toolTipContent: "{x}: {y}%",
markerSize: 5,
dataPoints: dataPoints
}
]
});
$('#graph').css('opacity','1.0').css('display','block');
chart.render();
}
};
fInit();
};
var fSeventsEdit = function () {
alert("edit");
};
var fSeventsNew = function () {
alert("new");
};
YOUR_APP.sevents = {
edit: fSeventsEdit,
"new": fSeventsNew,
index: fSeventsIndex
};