2014-05-26 03:38:36 +00:00
<?php
$this->headTitle($this->config->title->site);
$this->headTitle('后台管理');
$this->headTitle()->setSeparator(' - ');
$this->breadcrumb('< a href = "/" > 首页< / a > ');
$this->breadcrumb('< a href = "/admin" > 后台首页< / a > ');
$this->breadcrumb('< a href = "/admin/data" > 数据管理< / a > ');
$this->breadcrumb()->setSeparator(' > ');
?>
2015-01-22 03:14:36 +00:00
< div class = "row-fluid" >
< div class = "span2" >
2014-05-26 03:38:36 +00:00
<? = $this -> partial ( 'data/left.phtml' ); ?>
< / div >
2015-01-22 03:14:36 +00:00
< div class = "span10" >
2014-05-26 03:38:36 +00:00
< h3 > 添加可视化要素< / h3 >
< hr / >
2014-06-11 08:38:38 +00:00
<?php if ( ! empty ( $this -> error )) { ?>
< div class = "alert alert-error" >
<? = $this -> error ?>
< / div >
<?php } ?>
2014-12-22 06:25:58 +00:00
2014-06-11 08:38:38 +00:00
< form class = "form-horizontal" method = "post" action = "" >
2015-01-22 03:14:36 +00:00
2014-05-26 03:38:36 +00:00
< div class = "control-group" >
2015-01-22 03:14:36 +00:00
< label class = "control-label" for = "inputUUID" > UUID< / label >
2014-05-26 03:38:36 +00:00
< div class = "controls" >
2015-01-22 03:14:36 +00:00
< input type = "text" id = "inputUUID" placeholder = "UUID" value = " <? = $this -> data [ 'uuid' ] ?> " class = "input-block-level" name = "uuid" >
2014-06-11 08:38:38 +00:00
< / div >
< / div >
2015-01-22 03:14:36 +00:00
2014-06-11 08:38:38 +00:00
< div class = "control-group" >
2015-01-22 03:14:36 +00:00
< label class = "control-label" > 状态< / label >
2014-06-11 08:38:38 +00:00
< div class = "controls" >
2015-01-22 03:14:36 +00:00
< label class = "radio inline" >
<?php $checked = function (){
if(isset($this->info['status']))
{
if($this->info['status'] == 1)
{
return 'checked="checked"';
}
}else{
return 'checked="checked"';
}
}; ?>
2014-06-11 08:38:38 +00:00
< input type = "radio" name = "status" id = "optionsRadios1" value = "1" <? = $checked () ?> >
启用
< / label >
< label class = "radio inline" >
2015-01-22 03:14:36 +00:00
< input type = "radio" name = "status" id = "optionsRadios2" value = "0"
<? = isset ( $this -> info [ 'status' ]) && $this -> info [ 'status' ] == 0 ? 'checked="checked"' : "" ?> >
2014-06-11 08:38:38 +00:00
禁用
< / label >
< / div >
< / div >
2014-12-22 06:25:58 +00:00
2015-01-22 03:14:36 +00:00
< div class = "control-group" >
< label class = "control-label" > 绘图插件< / label >
< div class = "controls" >
< label class = "radio inline" >
2015-01-31 16:19:59 +00:00
< input type = "radio" name = "chartjs" id = "optionsRadios1" value = "highcharts" <? = ( isset ( $this -> info [ 'chartjs' ]) && $this -> info [ 'chartjs' ] == 'highcharts' ) ? "checked" : "" ?> >
2015-01-22 03:14:36 +00:00
Highcharts( 适合分类数据展示和三维展示)
< / label >
< label class = "radio inline" >
< input type = "radio" name = "chartjs" id = "optionsRadios2" value = "highstock"
2015-01-31 16:19:59 +00:00
<? = ( isset ( $this -> info [ 'chartjs' ]) && $this -> info [ 'chartjs' ] == 'highstock' ) || empty ( $this -> info [ 'chartjs' ]) ? 'checked="checked"' : "" ?> >
2015-01-22 03:14:36 +00:00
Highstock( 适合时间序列数据可视化)
< / label >
< / div >
< / div >
2014-06-11 08:38:38 +00:00
< div class = "control-group" >
2014-12-22 06:25:58 +00:00
< label class = "control-label" > 默认绘制类型< / label >
2014-06-11 08:38:38 +00:00
< div class = "controls" >
2014-12-22 06:25:58 +00:00
< label class = "radio inline" >
2015-01-22 03:14:36 +00:00
< input type = "radio" name = "charttype" id = "optionsRadios1" value = "line" <? = ( isset ( $this -> info [ 'charttype' ]) && $this -> info [ 'charttype' ] == 'line' ) || empty ( $this -> info [ 'charttype' ]) ? "checked" : "" ?> >
2014-12-22 06:25:58 +00:00
折线图
< / label >
< label class = "radio inline" >
2015-01-22 03:14:36 +00:00
< input type = "radio" name = "charttype" id = "optionsRadios2" value = "column"
<? = isset ( $this -> info [ 'charttype' ]) && $this -> info [ 'charttype' ] == 'column' ? 'checked="checked"' : "" ?> >
2014-12-22 06:25:58 +00:00
柱状图
< / label >
2015-01-22 03:14:36 +00:00
< label class = "radio inline" >
< input type = "radio" name = "charttype" id = "optionsRadios3" value = "spline"
<? = isset ( $this -> info [ 'charttype' ]) && $this -> info [ 'charttype' ] == 'spline' ? 'checked="checked"' : "" ?> >
样条线图
< / label >
< label class = "radio inline" >
< input type = "radio" name = "charttype" id = "optionsRadios4" value = "area"
<? = isset ( $this -> info [ 'charttype' ]) && $this -> info [ 'charttype' ] == 'area' ? 'checked="checked"' : "" ?> >
面积图
< / label >
2014-12-22 06:25:58 +00:00
< / div >
< / div >
2015-01-22 03:14:36 +00:00
< div class = "control-group" style = "display: none;" >
2014-12-22 06:25:58 +00:00
< label class = "control-label" > 数据表< / label >
< div class = "controls" >
< select name = "visual_datatable" id = "data-table" >
< option value = "0" > 请选择< / option >
<?php foreach ( $this -> visualTable as $k => $v ){ ?>
<?php if ( isset ( $this -> info [ 'visual_datatable' ]) && $this -> info [ 'visual_datatable' ] == $v ){ ?>
< option value = " <? = $v ?> " selected = "selected" > <? = $v ?> </ option >
<?php } else { ?>
< option value = " <? = $v ?> " > <? = $v ?> </ option >
<?php } ?>
<?php } ?>
< / select >
< / div >
< / div >
< div class = "control-group" >
< label class = "control-label" for = "inputData" > 数据读取SQL或表名< / label >
< div class = "controls" >
< textarea name = "data" rows = "4" class = "input-block-level" id = "inputData" > <? = ! isset ( $this -> info [ 'data' ]) ? "" : $this -> info [ 'data' ] ?> </ textarea >
2015-01-22 03:14:36 +00:00
< p class = "help-block" > 如果设置了某个字段的读取sql会自动忽略此项设置< / p >
2014-05-26 03:38:36 +00:00
< / div >
< / div >
2014-12-22 06:25:58 +00:00
2015-01-22 03:14:36 +00:00
< div class = "control-group time-field-select" >
< label class = "control-label" > X轴取值< / label >
2014-05-26 03:38:36 +00:00
< div class = "controls" >
2015-01-22 03:14:36 +00:00
< input type = "text" name = "xaxis" placeholder = "时间字段读取SQL" class = "input-block-level" value = " <? = isset ( $this -> info [ 'xaxis' ]) ? $this -> info [ 'xaxis' ] : '' ?> " />
2015-01-31 16:19:59 +00:00
< p class = "help-block" > 例如: utctime, times , (year||'-'||month||'-1')::timestamp without time zone ,不需要在最外层加括号或者双引号。如果是制作分类图, 则X轴必须是category, 请在数据读取SQL中用将所需字段命名为category。< / p >
2014-06-11 08:38:38 +00:00
< / div >
< / div >
2014-12-22 06:25:58 +00:00
2015-01-22 03:14:36 +00:00
<?php if ( ! empty ( $this -> info [ 'variable' ])) { ?>
<?php $vars = array () ?>
<?php $encoder = new \Westdc\Visual\VariableEncoder ; ?>
<?php $vars = $encoder -> decode ( $this -> info [ 'variable' ]); ?>
<?php foreach ( $vars as $index => $value ) { ?>
< div class = "control-group var-group" >
< label class = "control-label" for = "inputVariable" > 可视化要素 < small > < a href = "javascript:void(0);" onclick = "delVar(this)" > 删除< / a > < / small > < / label >
< div class = "controls" >
< input type = "text" placeholder = "字段名" class = "" name = "var[ <? = $index ?> ][name]" value = " <? = $value [ 'name' ] ?> " >
< input type = "text" placeholder = "显示名" class = "" name = "var[ <? = $index ?> ][title]" value = " <? = $value [ 'title' ] ?> " >
< input type = "text" placeholder = "字段sql" class = "" name = "var[ <? = $index ?> ][sql]" value = " <? = ( isset ( $value [ 'sql' ])) ? $value [ 'sql' ] : '' ?> " >
< input type = "text" placeholder = "查询条件" name = "var[ <? = $index ?> ][condition]" value = " <? = isset ( $value [ 'condition' ]) && is_string ( $value [ 'condition' ]) ? $value [ 'condition' ] : "" ?><? = isset ( $value [ 'condition' ]) && is_array ( $value [ 'condition' ]) ? join ( ";" , $value [ 'condition' ]) : "" ?> " >
< / div >
< / div >
<?php } ?>
<?php } ?>
< div class = "control-group" id = "last-control-group" >
2014-06-11 08:38:38 +00:00
< div class = "controls" >
2015-01-22 03:14:36 +00:00
< button type = "button" class = "btn btn-defualt" id = "addVariable" > 添加要素< / button >
2014-05-26 03:38:36 +00:00
< / div >
< / div >
2015-01-22 03:14:36 +00:00
2014-12-22 06:25:58 +00:00
2014-05-26 03:38:36 +00:00
< div class = "control-group" id = "last-control-group" >
< div class = "controls" >
2015-01-22 03:14:36 +00:00
< input type = "hidden" name = "submit" value = "1" / >
2014-05-26 03:38:36 +00:00
< button type = "submit" class = "btn btn-primary" > 提交< / button >
< / div >
< / div >
2015-01-22 03:14:36 +00:00
2014-05-26 03:38:36 +00:00
< / form >
2015-01-22 03:14:36 +00:00
2014-05-26 03:38:36 +00:00
< / div >
< / div >
< script type = "text/javascript" >
2014-12-22 06:25:58 +00:00
var fieldData,fieldHtml,varHtml,current_count;
function makeVarSelectHtml(field_data){
current_count = $('.var-group').length;
fieldHtml = []
2015-01-22 03:14:36 +00:00
varHtml = '< input type = "text" placeholder = "字段名" class = "" name = "var['+current_count+'][name]" > '
+ '< input type = "text" placeholder = "显示名" class = "" name = "var['+current_count+'][title]" > '
+ '< input type = "text" placeholder = "字段sql" class = "" name = "var['+current_count+'][sql]" > '
+ '< input type = "text" placeholder = "查询条件" class = "" name = "var['+current_count+'][condition]" > ';
2014-12-22 06:25:58 +00:00
html = '< div class = "control-group var-group" > '
+ '< label class = "control-label" for = "inputVariable" > 可视化要素 < small > < a href = "javascript:void(0);" onclick = "delVar(this)" > 删除< / a > < / small > < / label > '
+ '< div class = "controls" > '
2015-01-22 03:14:36 +00:00
+ varHtml
2014-12-22 06:25:58 +00:00
+ '< / div > '
+'< / div > ';
return html;
}
2014-06-11 08:38:38 +00:00
function delVar(dom){
$(dom).parent().parent().parent('.control-group').remove();
2014-12-22 06:25:58 +00:00
};
$(document).ready(function(){
$('#data-table').change(function(){
$('.var-group').remove();
$.ajax({
type:"POST",
url:'',
data:'tablename='+ $(this).val(),
success:function(data){
fieldData = data;
html = [];
for(i in data)
{
html.push('< option value = "' + data[i] + '" > ' + data[i] + '< / option > ');
}
html = '< select name = "visual_timefield" > ' + html.join('')+'< / select > ';
$('#field-time').html(html);
},
beforeSend:function(){
$('#field-time').html('加载中');
}
});
});
2015-01-22 03:14:36 +00:00
<?php if ( ! empty ( $this -> info [ 'ts_created' ]) && ! empty ( $this -> info [ 'visual_datatable' ])) { ?>
2014-12-22 06:25:58 +00:00
$.ajax({
type:"POST",
url:'',
data:'tablename=<? = $this -> info [ 'visual_datatable' ] ?> ',
success:function(data){
fieldData = data;
html = [];
for(i in data)
{
if('<? = $this -> info [ 'visual_timefield' ] ?> ' == data[i])
html.push('< option value = "' + data[i] + '" selected = "selected" > ' + data[i] + '< / option > ');
else
html.push('< option value = "' + data[i] + '" > ' + data[i] + '< / option > ');
}
html = '< select name = "visual_timefield" > ' + html.join('')+'< / select > ';
$('#field-time').html(html);
},
beforeSend:function(){
$('#field-time').html('加载中');
}
});
<?php } ?>
$('#addVariable').click(function(e) {
if($('#var-group').length > 0)
$('#var-group').append(makeVarSelectHtml(fieldData));
else
$('#last-control-group').prepend(makeVarSelectHtml(fieldData));
});
$('#open-field-helper').click(function(){
if(null == fieldData || $('#data-table').val() == '0')
{
alert('请先选择数据表和时间字段');
return false;
}
$('.modal-body p').html(fieldData.join(','));
$('#modal-show-field').modal('show');
});
});
2014-05-26 03:38:36 +00:00
< / script >
2014-12-22 06:25:58 +00:00
< div id = "modal-show-field" class = "modal hide fade" tabindex = "-1" role = "dialog" aria-labelledby = "myModalLabel" aria-hidden = "true" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true" > × < / button >
< h3 id = "myModalLabel" > 字段列表< / h3 >
< / div >
< div class = "modal-body" >
< p > < / p >
< / div >
< div class = "modal-footer" >
< button class = "btn" data-dismiss = "modal" aria-hidden = "true" > 关闭< / button >
< / div >
< / div >