v3.0。beta版本,完成了数据导出前端,数据尚未绑定,导出功能不可用

This commit is contained in:
lili 2018-04-02 09:07:39 +08:00
parent 4218595a3a
commit 3ac9da8ad2
12 changed files with 1563 additions and 1303 deletions

View File

@ -9,6 +9,7 @@ declare module Configs {
static UPDATE: string; static UPDATE: string;
static PUT: string; static PUT: string;
static MOVE: string; static MOVE: string;
static CREATE_DATABASE: string;
static EXTRACT: string; static EXTRACT: string;
} }
function createOracleInfo(array: Array<any>, id: number): { function createOracleInfo(array: Array<any>, id: number): {

2
defs.d.ts vendored
View File

@ -77,7 +77,6 @@
/// <reference path="d.ts/kubernetes/ts/sharedControllers.d.ts"/> /// <reference path="d.ts/kubernetes/ts/sharedControllers.d.ts"/>
/// <reference path="d.ts/kubernetes/ts/tabs.d.ts"/> /// <reference path="d.ts/kubernetes/ts/tabs.d.ts"/>
/// <reference path="d.ts/kubernetes/ts/templates.d.ts"/> /// <reference path="d.ts/kubernetes/ts/templates.d.ts"/>
/// <reference path="d.ts/navigation/ts/navigationPlugin.d.ts"/>
/// <reference path="d.ts/system/ts/systemHelpers.d.ts"/> /// <reference path="d.ts/system/ts/systemHelpers.d.ts"/>
/// <reference path="d.ts/system/ts/systemPlugin.d.ts"/> /// <reference path="d.ts/system/ts/systemPlugin.d.ts"/>
/// <reference path="d.ts/system/ts/regionalismCodeSearch.d.ts"/> /// <reference path="d.ts/system/ts/regionalismCodeSearch.d.ts"/>
@ -86,3 +85,4 @@
/// <reference path="d.ts/system/ts/systemCodeSearch.d.ts"/> /// <reference path="d.ts/system/ts/systemCodeSearch.d.ts"/>
/// <reference path="d.ts/system/ts/systemList.d.ts"/> /// <reference path="d.ts/system/ts/systemList.d.ts"/>
/// <reference path="d.ts/system/ts/systemVerification.d.ts"/> /// <reference path="d.ts/system/ts/systemVerification.d.ts"/>
/// <reference path="d.ts/navigation/ts/navigationPlugin.d.ts"/>

File diff suppressed because one or more lines are too long

View File

@ -5,52 +5,53 @@
<div class="row"> <div class="row">
<div hawtio-tabs></div> <div hawtio-tabs></div>
</div> </div>
<div class="container-content "> <div class="container-content ">
<div class="container-fluid sj_fluid"> <div class="container-fluid sj_fluid">
<div class="row align-center mb10" ng-hide="model.oracleParam.length"> <div class="row align-center mb10" ng-hide="model.oracleParam.length">
<p class="alert alert-info">当前没有配置汇总库信息,请配置,否则汇总操作将不可用!</p> <p class="alert alert-info">当前没有配置汇总库信息,请配置,否则汇总操作将不可用!</p>
</div>
<div class="row mb10" ng-show="model.oracleParam.length">
<table class="table table-bordered table-striped sj_content_table" hawtio-simple-table="tableConfig" />
</div>
<div class="row">
<div>
<button class="btn sj_btn_green mb10" style="color:#fff;" ng-click="create()">
<span class="glyphicon glyphicon-plus"></span> 添加
</button>
</div> </div>
</div> <div class="row mb10" ng-show="model.oracleParam.length">
<hr> <table class="table table-bordered table-striped sj_content_table" hawtio-simple-table="tableConfig" />
<div class="row " style="padding-top:10px;" ng-show="tableForm && (edit || add)"> </div>
<h3 class="mb10" ng-show="edit">编辑汇总库连接信息:</h3> <div class="row">
<h3 class="mb10" ng-show="add">添加汇总库信息:</h3> <div>
<div class="col-md-6 col-md-offset-1 "> <button class="btn sj_btn_green mb10" style="color:#fff;" ng-click="create()">
<form class="form-horizontal" novalidate="novalidate" name="validForm" ng-submit="onSubmit(tableForm)"> <span class="glyphicon glyphicon-plus"></span> 添加
<div class="form-group"> </button>
<label class="col-sm-2 control-label">名称</label> <button class="btn sj_btn_green mb10" style="color:#fff;" ng-click="createGatherDababase()">
<div class="col-sm-10 sj_form_input"> <span class="glyphicon glyphicon-plus"></span> 创建汇总库
<input class="system-info-danger-input form-control " type="text" ng-model="tableForm.name" name="orcName" ng-minlength="2" ng-maxlength="20" required="required" ng-focus="tableForm.name" placeholder="请输入2-20个字符的数据名称"/> </button>
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcName.$invalid && submitted"> </div>
<span role="alert" ng-show="validForm.orcName.$error.required">名称不能为空</span> </div>
<span role="alert" ng-show="!validForm.orcName.$error.required && validForm.orcName.$invalid">请输入2-20个字符的数据名称</span> <hr>
<div class="row " style="padding-top:10px;" ng-show="tableForm && (edit || add)">
<h3 class="mb10" ng-show="edit">编辑汇总库连接信息:</h3>
<h3 class="mb10" ng-show="add">添加汇总库信息:</h3>
<div class="col-md-6 col-md-offset-1 ">
<form class="form-horizontal" novalidate="novalidate" name="validForm" ng-submit="onSubmit(tableForm)">
<div class="form-group">
<label class="col-sm-3 control-label">名称</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control " type="text" ng-model="tableForm.name" name="orcName" ng-minlength="2" ng-maxlength="20" required="required" ng-focus="tableForm.name" placeholder="请输入2-20个字符的数据名称" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcName.$invalid && submitted">
<span role="alert" ng-show="validForm.orcName.$error.required">名称不能为空</span>
<span role="alert" ng-show="!validForm.orcName.$error.required && validForm.orcName.$invalid">请输入2-20个字符的数据名称</span>
</div>
</div> </div>
</div> </div>
</div> <!-- <div class="form-group" ng-show="add">
<div class="form-group"> <label class="col-sm-3 control-label">是否创建汇总库</label>
<label class="col-sm-2 control-label">是否创建汇总库</label> <div class="col-sm-9 sj_form_input ">
<div class="col-sm-10 sj_form_input "> <select class="form-control " ng-model="tableForm.isCreateGatherOracle">
<select class="form-control " ng-model="tableForm.isCreateGatherOracle"> <option value=1 ng-selected="tableForm.isCreateGatherOracle==1"></option>
<option value=1 ng-selected="tableForm.isCreateGatherOracle==1" selected></option> <option value=0 ng-selected="tableForm.isCreateGatherOracle==0" selected></option>
<option value=0 ng-selected="tableForm.isCreateGatherOracle==0" ></option> </select>
</select> </div>
</div> </div> -->
</div>
<div ng-switch = "tableForm.isCreateGatherOracle">
<div ng-switch-when = "0">
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">IP</label> <label class="col-sm-3 control-label">IP</label>
<div class="col-sm-10 sj_form_input"> <div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.ip" name="orcIP" ng-pattern="/((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))/" required="required" ng-focus="tableForm.ip" placeholder="oracle的IP,例如0.0.0.0"/> <input class="system-info-danger-input form-control" type="text" ng-model="tableForm.ip" name="orcIP" ng-pattern="/((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))/" required="required" ng-focus="tableForm.ip" placeholder="oracle的IP,例如0.0.0.0" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcIP.$invalid && submitted"> <div class="system-info-danger-red-char form-error" ng-show="validForm.orcIP.$invalid && submitted">
<span role="alert" ng-show="validForm.orcIP.$error.required">IP不能为空</span> <span role="alert" ng-show="validForm.orcIP.$error.required">IP不能为空</span>
<span role="alert" ng-show="validForm.orcIP.$error.pattern">请输入正确的IP地址</span> <span role="alert" ng-show="validForm.orcIP.$error.pattern">请输入正确的IP地址</span>
@ -58,168 +59,264 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">端口号</label> <label class="col-sm-3 control-label">端口号</label>
<div class="col-sm-10 sj_form_input"> <div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.port" name="orcPort" ng-pattern="/^([1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/" required="required" ng-focus="tableForm.port" placeholder="oracle的的端口,1~65535"/> <input class="system-info-danger-input form-control" type="text" ng-model="tableForm.port" name="orcPort" ng-pattern="/^([1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/" required="required" ng-focus="tableForm.port" placeholder="oracle的的端口,1~65535" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcPort.$invalid && submitted"> <div class="system-info-danger-red-char form-error" ng-show="validForm.orcPort.$invalid && submitted">
<span role="alert" ng-show="validForm.orcPort.$error.required">端口号不能为空</span> <span role="alert" ng-show="validForm.orcPort.$error.required">端口号不能为空</span>
<span role="alert" ng-show="validForm.orcPort.$error.pattern">端口号必须为1~65535的数字</span> <span role="alert" ng-show="validForm.orcPort.$error.pattern">端口号必须为1~65535的数字</span>
</div> </div>
</div> </div>
</div> </div>
</div> <!-- <div ng-switch="tableForm.isCreateGatherOracle">
</div> <div ng-switch-when="1">
<div ng-switch = "tableForm.isCreateGatherOracle"> <div class="form-group ">
<div ng-switch-when = "1"> <label class="col-sm-3 control-label">开始时间</label>
<div class="form-group "> <div class="col-sm-9 sj_form_input">
<label class="col-sm-2 control-label">开始时间</label> <input class="system-info-danger-input form-control" type="text" ng-model="tableForm.startTime" name="startTime" ng-pattern="/^([0-9]{4})-(0?[1-9]|1[0-2])$/" required="required" ng-focus="tableForm.startTime" placeholder="开始时间,格式为yyyy-MM 例如2018-02" />
<div class="col-sm-10 sj_form_input"> <div class="system-info-danger-red-char form-error" ng-show="validForm.startTime.$invalid && submitted">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.startTime" name="orcStartTime" ng-pattern="/^([0-9]{4})-(0?[1-9]|1[0-2])$/" required="required" ng-focus="tableForm.startTime" placeholder="开始时间,格式为yyyy-MM 例如2018-02"/> <span role="alert" ng-show="validForm.startTime.$error.required">开始时间不能为空</span>
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcStartTime.$invalid && submitted"> <span role="alert" ng-show="validForm.startTime.$error.pattern">格式为yyyy-MM 例如2018-02</span>
<span role="alert" ng-show="validForm.orcStartTime.$error.required">开始时间不能为空</span> </div>
<span role="alert" ng-show="validForm.orcStartTime.$error.pattern">格式为yyyy-MM 例如2018-02</span> </div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结束时间</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.endTime" name="orcEndTime" ng-pattern="/^([0-9]{4})-(0?[1-9]|1[0-2])$/" required="required" ng-focus="tableForm.endTime" placeholder="结束时间,格式为yyyy-MM 例如2018-02" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcEndTime.$invalid && submitted">
<span role="alert" ng-show="validForm.orcEndTime.$error.required">结束时间不能为空</span>
<span role="alert" ng-show="validForm.orcEndTime.$error.pattern">格式为yyyy-MM 例如2018-02</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系人</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.contact" name="contact" ng-pattern="" required="required" ng-focus="tableForm.contact" placeholder="联系人" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.contact.$invalid && submitted">
<span role="alert" ng-show="validForm.contact.$error.required">联系人不能为空</span>
<span role="alert" ng-show="validForm.contact.$error.pattern">联系人为有效联系人</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系方式</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.phone" name="phone" ng-pattern="/^[1][3,4,5,7,8][0-9]{9}$/" required="required" ng-focus="tableForm.phone" placeholder="联系方式" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.phone.$invalid && submitted">
<span role="alert" ng-show="validForm.phone.$error.required">联系方式不能为空</span>
<span role="alert" ng-show="validForm.phone.$error.pattern">手机号必须为有效的手机号码</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">数据版本号</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.dataVersion" name="dataVersion" ng-pattern="/^[1-9]\d*$/" required="required" ng-focus="tableForm.phone" placeholder="数据版本号" ng-init="tableForm.dataVersion=1" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.phone.$invalid && submitted">
<span role="alert" ng-show="validForm.phone.$error.required">版本号不能为空</span>
<span role="alert" ng-show="validForm.dataVersion.$error.pattern">数据版本号必须为正整数</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">编码方式</label>
<div class="col-sm-9 sj_form_input ">
<select class="form-control " ng-model="tableForm.encoding">
<option value=0 ng-selected="tableForm.encoding==GBK" selected>GBK</option>
<option value=1 ng-selected="tableForm.encoding==UTF8">UTF8</option>
</select>
</div>
</div>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-3 control-label">用戶名</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.user" name="orcUser" ng-pattern="/^\w{2,15}$/" required="required" ng-focus="tableForm.user" placeholder="oracle的用户名2-15个字母、数字或下划线" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcUser.$invalid && submitted">
<span role="alert" ng-show="validForm.orcUser.$error.required">用户名不能为空</span>
<span role="alert" ng-show="validForm.orcUser.$error.pattern">用户名必须为2-15个字母、数字或下划线</span>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">结束时间</label> <label class="col-sm-3 control-label">密码</label>
<div class="col-sm-10 sj_form_input"> <div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.endTime" name="orcEndTime" ng-pattern="/^([0-9]{4})-(0?[1-9]|1[0-2])$/" required="required" ng-focus="tableForm.endTime" placeholder="结束时间,格式为yyyy-MM 例如2018-02"/> <input class="system-info-danger-input form-control" type="text" ng-model="tableForm.password" name="orcPassword" ng-pattern="/^\w{2,15}$/" required="required" ng-focus="tableForm.password" placeholder="oracle的密码,2-15个字母、数字或下划线" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcEndTime.$invalid && submitted"> <div class="system-info-danger-red-char form-error" ng-show="validForm.orcPassword.$invalid && submitted">
<span role="alert" ng-show="validForm.orcEndTime.$error.required">结束时间不能为空</span> <span role="alert" ng-show="validForm.orcPassword.$error.required">密码不能为空</span>
<span role="alert" ng-show="validForm.orcEndTime.$error.pattern">格式为yyyy-MM 例如2018-02</span> <span role="alert" ng-show="validForm.orcPassword.$error.pattern">密码必须为2-15个字母、数字或下划线</span>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">联系人</label> <label class="col-sm-3 control-label">服务名</label>
<div class="col-sm-10 sj_form_input"> <div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.contact" name="orcContact" ng-pattern="" required="required" ng-focus="tableForm.contact" placeholder="联系人"/> <input class="system-info-danger-input form-control" type="text" ng-model="tableForm.databaseName" name="orcService" ng-pattern="/^[a-zA-Z]{1,10}$/" required="required" ng-focus="tableForm.databaseName" placeholder="oracle的实例名,1-10个字母,例如ORCL" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcContact.$invalid && submitted"> <div class="system-info-danger-red-char form-error" ng-show="validForm.orcService.$invalid && submitted">
<span role="alert" ng-show="validForm.orcContact.$error.required">联系人不能为空</span> <span role="alert" ng-show="validForm.orcService.$error.required">服务名不能为空</span>
<span role="alert" ng-show="validForm.orcContact.$error.pattern">联系人为有效联系人</span> <span role="alert" ng-show="validForm.orcService.$error.pattern">服务名必须为1-10个字母</span>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">联系方式</label> <label class="col-sm-3 control-label">表空间名</label>
<div class="col-sm-10 sj_form_input"> <div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.phone" name="orcPhone" ng-pattern="/^[1][3,4,5,7,8][0-9]{9}$/" required="required" ng-focus="tableForm.phone" placeholder="联系方式"/> <input class="system-info-danger-input form-control" type="text" ng-model="tableForm.tableName" name="orcTable" ng-pattern="/^\w{1,15}$/" required="required" ng-focus="tableForm.tableName" placeholder="oracle的表空间名,1-15个字母、数字或下划线" />
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcPhone.$invalid && submitted"> <div class="system-info-danger-red-char form-error" ng-show="validForm.orcTable.$invalid && submitted">
<span role="alert" ng-show="validForm.orcPhone.$error.required">联系方式不能为空</span> <span role="alert" ng-show="validForm.orcTable.$error.required">表空间名不能为空</span>
<span role="alert" ng-show="validForm.orcPhone.$error.pattern">手机号必须为有效的手机号码</span> <span role="alert" ng-show="validForm.orcTable.$error.pattern">表空间名必须为1-15个字母、数字或下划线</span>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">编码方式</label> <label class="col-sm-3 control-label">表后缀名</label>
<div class="col-sm-10 sj_form_input "> <div class="col-sm-9 sj_form_input">
<select class="form-control " ng-model="tableForm.encoding"> <input class="system-info-danger-input form-control" type="text" ng-model="tableForm.suffix" name="orcSuffix" ng-pattern="/^\w{1,10}$/" required="required" ng-focus="tableForm.suffix" placeholder="汇总生成新表的后缀名,1-10个字母、数字或下划线" />
<option value=0 ng-selected="tableForm.encoding==GBK" selected>GBK</option> <div class="system-info-danger-red-char form-error" ng-show="validForm.orcSuffix.$invalid && submitted">
<option value=1 ng-selected="tableForm.encoding==UTF8">UTF8</option> <span role="alert" ng-show="validForm.orcSuffix.$error.required">表后缀名不能为空</span>
<span role="alert" ng-show="validForm.orcSuffix.$error.pattern">表后缀名必须为1-10个字母、数字或下划线</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">标准表汇总库</label>
<div class="col-sm-9 sj_form_input ">
<select class="form-control " ng-model="tableForm.type">
<option value=0 ng-selected="tableForm.type==0" ng-init="tableForm.type==0"></option>
<option value=1 ng-selected="tableForm.type==1"></option>
</select> </select>
</div> </div>
</div> </div>
</div> <div class="form-group" style="margin-left:145px;">
</div> <button class="btn sj_btn_blue" type='submit' style="color:#fff; margin-right:30px;">
<div class="form-group"> <span class="glyphicon glyphicon-save "></span> 保存
<label class="col-sm-2 control-label">用戶名</label> </button>
<div class="col-sm-10 sj_form_input"> <button class="btn sj_btn_grey" ng-click='cancel()'>
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.user" name="orcUser" ng-pattern="/^\w{2,15}$/" required="required" ng-focus="tableForm.user" placeholder="oracle的用户名2-15个字母、数字或下划线"/> <span class="glyphicon glyphicon-remove "></span> 取消
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcUser.$invalid && submitted"> </button>
<span role="alert" ng-show="validForm.orcUser.$error.required">用户名不能为空</span>
<span role="alert" ng-show="validForm.orcUser.$error.pattern">用户名必须为2-15个字母、数字或下划线</span>
</div>
</div> </div>
</div> </form>
<div class="form-group"> </div>
<label class="col-sm-2 control-label">密码</label>
<div class="col-sm-10 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.password" name="orcPassword" ng-pattern="/^\w{2,15}$/" required="required" ng-focus="tableForm.password" placeholder="oracle的密码,2-15个字母、数字或下划线"/>
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcPassword.$invalid && submitted">
<span role="alert" ng-show="validForm.orcPassword.$error.required">密码不能为空</span>
<span role="alert" ng-show="validForm.orcPassword.$error.pattern">密码必须为2-15个字母、数字或下划线</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">服务名</label>
<div class="col-sm-10 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.databaseName" name="orcService" ng-pattern="/^[a-zA-Z]{1,10}$/" required="required" ng-focus="tableForm.databaseName" placeholder="oracle的实例名,1-10个字母,例如ORCL"/>
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcService.$invalid && submitted">
<span role="alert" ng-show="validForm.orcService.$error.required">服务名不能为空</span>
<span role="alert" ng-show="validForm.orcService.$error.pattern">服务名必须为1-10个字母</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">表空间名</label>
<div class="col-sm-10 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.tableName" name="orcTable" ng-pattern="/^\w{1,15}$/" required="required" ng-focus="tableForm.tableName" placeholder="oracle的表空间名,1-15个字母、数字或下划线"/>
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcTable.$invalid && submitted">
<span role="alert" ng-show="validForm.orcTable.$error.required">表空间名不能为空</span>
<span role="alert" ng-show="validForm.orcTable.$error.pattern">表空间名必须为1-15个字母、数字或下划线</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">表后缀名</label>
<div class="col-sm-10 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.suffix" name="orcSuffix" ng-pattern="/^\w{1,10}$/" required="required" ng-focus="tableForm.suffix" placeholder="汇总生成新表的后缀名,1-10个字母、数字或下划线"/>
<div class="system-info-danger-red-char form-error" ng-show="validForm.orcSuffix.$invalid && submitted">
<span role="alert" ng-show="validForm.orcSuffix.$error.required">表后缀名不能为空</span>
<span role="alert" ng-show="validForm.orcSuffix.$error.pattern">表后缀名必须为1-10个字母、数字或下划线</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">标准表汇总库</label>
<div class="col-sm-10 sj_form_input ">
<select class="form-control " ng-model="tableForm.type">
<option value=0 ng-selected="tableForm.type==0" selected></option>
<option value=1 ng-selected="tableForm.type==1"></option>
</select>
</div>
</div>
<div class="form-group" style="margin-left:145px;">
<button class="btn sj_btn_blue" type='submit' style="color:#fff; margin-right:30px;" >
<span class="glyphicon glyphicon-save "></span> 保存
</button>
<button class="btn sj_btn_grey" ng-click='cancel()'>
<span class="glyphicon glyphicon-remove "></span> 取消
</button>
</div>
</form>
</div> </div>
<hr>
<hr>
<div class="row " style="padding-top:10px;" ng-show="tableForm && createDatabase">
<h3 class="mb10" ng-show="createDatabase">填写创建汇总库信息:</h3>
<div class="col-md-6 col-md-offset-1 ">
<form class="form-horizontal" novalidate="novalidate" name="createDatabaseForm" ng-submit="onSubmitCreateDatabase(tableForm)">
<div class="form-group" ng-show="0">
<label class="col-sm-3 control-label">汇总库系统名称</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control " type="text" ng-model="tableForm.systemName" name="systemName" ng-minlength="2" ng-maxlength="20" required="required" ng-focus="tableForm.systemName" ng-init="tableForm.systemName='汇总库'" placeholder="请输入2-20个字符的汇总库系统名称" />
<div class="system-info-danger-red-char form-error" ng-show="createDatabaseForm.systemName.$invalid && submittedCreateDatabase">
<span role="alert" ng-show="createDatabaseForm.systemName.$error.required">汇总库系统名称不能为空</span>
<span role="alert" ng-show="!createDatabaseForm.systemName.$error.required && createDatabaseForm.systemName.$invalid">请输入2-20个字符的汇总库系统名称</span>
</div>
</div>
</div>
<div class="form-group ">
<label class="col-sm-3 control-label">开始时间</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.startTime" name="startTime" ng-pattern="/^([0-9]{4})-(0?[1-9]|1[0-2])$/" required="required" ng-focus="tableForm.startTime" placeholder="开始时间,格式为yyyy-MM 例如2018-02" />
<div class="system-info-danger-red-char form-error" ng-show="createDatabaseForm.startTime.$invalid && submittedCreateDatabase">
<span role="alert" ng-show="createDatabaseForm.startTime.$error.required">开始时间不能为空</span>
<span role="alert" ng-show="createDatabaseForm.startTime.$error.pattern">格式为yyyy-MM 例如2018-02</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结束时间</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.endTime" name="endTime" ng-pattern="/^([0-9]{4})-(0?[1-9]|1[0-2])$/" required="required" ng-focus="tableForm.endTime" placeholder="结束时间,格式为yyyy-MM 例如2018-02" />
<div class="system-info-danger-red-char form-error" ng-show="createDatabaseForm.endTime.$invalid && submittedCreateDatabase">
<span role="alert" ng-show="createDatabaseForm.endTime.$error.required">结束时间不能为空</span>
<span role="alert" ng-show="createDatabaseForm.endTime.$error.pattern">格式为yyyy-MM 例如2018-02</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系人</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.contact" name="contact" ng-pattern="" required="required" ng-focus="tableForm.contact" placeholder="联系人" />
<div class="system-info-danger-red-char form-error" ng-show="createDatabaseForm.contact.$invalid && submittedCreateDatabase">
<span role="alert" ng-show="createDatabaseForm.contact.$error.required">联系人不能为空</span>
<span role="alert" ng-show="createDatabaseForm.contact.$error.pattern">联系人为有效联系人</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系方式</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.phone" name="phone" ng-pattern="/^[1][3,4,5,7,8][0-9]{9}$/" required="required" ng-focus="tableForm.phone" placeholder="联系方式" />
<div class="system-info-danger-red-char form-error" ng-show="createDatabaseForm.phone.$invalid && submittedCreateDatabase">
<span role="alert" ng-show="createDatabaseForm.phone.$error.required">联系方式不能为空</span>
<span role="alert" ng-show="createDatabaseForm.phone.$error.pattern">手机号必须为有效的手机号码</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">数据版本号</label>
<div class="col-sm-9 sj_form_input">
<input class="system-info-danger-input form-control" type="text" ng-model="tableForm.dataVersion" name="dataVersion" ng-pattern="/^[1-9]\d*$/" required="required" ng-focus="tableForm.dataVersion" placeholder="数据版本号" ng-init="tableForm.dataVersion=1" />
<div class="system-info-danger-red-char form-error" ng-show="createDatabaseForm.dataVersion.$invalid && submittedCreateDatabase">
<span role="alert" ng-show="createDatabaseForm.dataVersion.$error.required">版本号不能为空</span>
<span role="alert" ng-show="createDatabaseForm.dataVersion.$error.pattern">数据版本号必须为正整数</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">编码方式</label>
<div class="col-sm-9 sj_form_input ">
<select class="form-control " ng-model="createDatabaseForm.encoding">
<option value="GBK" ng-selected="createDatabaseForm.encoding==GBK" selected>GBK</option>
<option value="UTF8" ng-selected="createDatabaseForm.encoding==UTF8">UTF8</option>
</select>
</div>
</div>
<div class="form-group" style="margin-left:145px;">
<button class="btn sj_btn_blue" type='submit' style="color:#fff; margin-right:30px;">
<span class="glyphicon glyphicon-save "></span> 保存
</button>
<button class="btn sj_btn_grey" ng-click='cancelCreateDatabase()'>
<span class="glyphicon glyphicon-remove "></span> 取消
</button>
</div>
</form>
</div>
</div>
<hr>
</div> </div>
<hr>
</div>
</div> </div>
</div> </div>
<style> <style>
.form-horizontal input::-webkit-input-placeholder{ .form-horizontal input::-webkit-input-placeholder {
font-family: "微软雅黑"; font-family: "微软雅黑";
font-size: 12px; font-size: 12px;
line-height: 28px; line-height: 28px;
font-style:normal; font-style: normal;
} }
.form-horizontal input::-moz-placeholder{
font-family: "微软雅黑";
font-size: 12px;
line-height: 28px;
font-style:normal;
}
.form-horizontal input:-moz-placeholder{
font-family: "微软雅黑";
font-size: 12px;
line-height: 28px;
font-style:normal;
}
.form-horizontal input:-ms-input-placeholder{
font-family: "微软雅黑";
font-size: 12px;
line-height: 28px;
font-style:normal;
}
.form-horizontal input::-moz-placeholder {
font-family: "微软雅黑";
font-size: 12px;
line-height: 28px;
font-style: normal;
}
.form-horizontal input:-moz-placeholder {
font-family: "微软雅黑";
font-size: 12px;
line-height: 28px;
font-style: normal;
}
.form-horizontal input:-ms-input-placeholder {
font-family: "微软雅黑";
font-size: 12px;
line-height: 28px;
font-style: normal;
}
</style> </style>

View File

@ -84,10 +84,10 @@
</th> </th>
<!--<th> <!--<th>
<button class="sj_btn_grey mr5" ng-click="cancel()">取消</button> <button class="sj_btn_grey mr5" ng-click="cancel()">取消</button>
</th> --> </th> -->
<th colspan="5" ng-show="ngDialogData.editable"> <th colspan="5" ng-show="ngDialogData.editable">
<span>是否为热区</span> <span>是否为热区</span>
<input type="checkbox" checked="checked" name="hot" ng-model="ngDialogData.hot"/> <input type="checkbox" checked="checked" name="hot" ng-model="ngDialogData.hot" />
</th> </th>
</tr> </tr>
</tbody> </tbody>
@ -366,71 +366,70 @@
</div> </div>
</div> </div>
</script> </script>
<script type="text/ng-template" id="statusHelp.html"> <script type="text/ng-template" id="statusHelp.html">
<div class="sj_new_box05"> <div class="sj_new_box05">
<h2 class="sj_popup_h2 mb10 mt10">帮助</h2> <h2 class="sj_popup_h2 mb10 mt10">帮助</h2>
<table class="sj_new_table02 mb10" cellpadding="0" cellspacing="0"> <table class="sj_new_table02 mb10" cellpadding="0" cellspacing="0">
<thead > <thead>
<tr class="sj_popup_toptxt "> <tr class="sj_popup_toptxt ">
<th >操作</th> <th>操作</th>
<th >归档脚本</th> <th>归档脚本</th>
<th >新版版本</th> <th>新版版本</th>
<th >详细说明</th> <th>详细说明</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr > <tr>
<td class="sj_popup_txtbold">审核</td> <td class="sj_popup_txtbold">审核</td>
<td class="sj_popup_txtbold"></td> <td class="sj_popup_txtbold"></td>
<td class="sj_popup_txtbold"></td> <td class="sj_popup_txtbold"></td>
<td class=" sj_popup_midtxt">保留:删除新版脚本文件,保留现有归档脚本 <td class=" sj_popup_midtxt">保留:删除新版脚本文件,保留现有归档脚本
<br/>替换:新版脚本文件移动并覆盖原有归档脚本</td> <br/>替换:新版脚本文件移动并覆盖原有归档脚本</td>
</tr> </tr>
<tr> <tr>
<td class="sj_popup_txtbold">上传</td> <td class="sj_popup_txtbold">上传</td>
<td class="sj_popup_txtbold"></td> <td class="sj_popup_txtbold"></td>
<td class="sj_popup_txtbold"></td> <td class="sj_popup_txtbold"></td>
<td class=" sj_popup_midtxt">选择本地脚本文件,系统按照命名规范重命名文件并归档</td> <td class=" sj_popup_midtxt">选择本地脚本文件,系统按照命名规范重命名文件并归档</td>
</tr> </tr>
<tr> <tr>
<td class="sj_popup_txtbold">归档</td> <td class="sj_popup_txtbold">归档</td>
<td class="sj_popup_txtbold"></td> <td class="sj_popup_txtbold"></td>
<td class="sj_popup_txtbold"></td> <td class="sj_popup_txtbold"></td>
<td class=" sj_popup_midtxt">将上报的脚本文件移动到归档路径进行归档</td> <td class=" sj_popup_midtxt">将上报的脚本文件移动到归档路径进行归档</td>
</tr> </tr>
<tr> <tr>
<td class="sj_popup_txtbold">查看</td> <td class="sj_popup_txtbold">查看</td>
<td class="sj_popup_txtbold"></td> <td class="sj_popup_txtbold"></td>
<td class="sj_popup_txtbold"></td> <td class="sj_popup_txtbold"></td>
<td class=" sj_popup_midtxt">重新上传:选择本地脚本文件,系统按照命名规范重命名文件并覆盖现有的归档脚本</td> <td class=" sj_popup_midtxt">重新上传:选择本地脚本文件,系统按照命名规范重命名文件并覆盖现有的归档脚本</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="sj_popup_p"> <div class="sj_popup_p">
<p>一键归档:待归档状态的所有脚本文件,后台一次性全部归档</p> <p>一键归档:待归档状态的所有脚本文件,后台一次性全部归档</p>
<p>一键审核:待审核状态的所有脚本文件,后台一次性全部替换</p> <p>一键审核:待审核状态的所有脚本文件,后台一次性全部替换</p>
</div>
</div> </div>
</div>
</script> </script>
<script type="text/ng-template" id="uploadErrorInfo.html"> <script type="text/ng-template" id="uploadErrorInfo.html">
<div class="container-fluid "> <div class="container-fluid ">
<h2 class="sj_popup_h2 mb10 fb ml15">错误信息:</h2> <h2 class="sj_popup_h2 mb10 fb ml15">错误信息:</h2>
<div class=" mb10" style="height:400px;overflow-y:auto;"> <div class=" mb10" style="height:400px;overflow-y:auto;">
<table class="sj_new_table02 mb10 ml15" cellpadding="0" cellspacing="0"> <table class="sj_new_table02 mb10 ml15" cellpadding="0" cellspacing="0">
<thead > <thead>
<tr class="sj_popup_toptxt "> <tr class="sj_popup_toptxt ">
<th >文件名</th> <th>文件名</th>
<th >错误描述</th> <th>错误描述</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="info in ngDialogData"> <tr ng-repeat="info in ngDialogData">
<td class="sj_popup_midtxt">{{info.name}}</td> <td class="sj_popup_midtxt">{{info.name}}</td>
<td class="sj_popup_midtxt">{{info.value}}</td> <td class="sj_popup_midtxt">{{info.value}}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</script> </script>
@ -441,39 +440,37 @@
<ul class="mb10" style="height:400px;overflow-y:auto;"> <ul class="mb10" style="height:400px;overflow-y:auto;">
<li class="cl export-li"> <li class="cl export-li">
<label class="export-label"> <label class="export-label">
<input type="checkbox" ng-model="flag" class="fl" ng-click="selectAll(flag)"/> <input type="checkbox" ng-model="flag" class="fl" ng-click="selectAll(flag)" />
<span class="ml5 mt5 fl sj_over_hid">全选</span> <span class="ml5 mt5 fl sj_over_hid">全选</span>
</label> </label>
</li> </li>
<li class="cl export-li" ng-repeat = "item in data"> <li class="cl export-li" ng-repeat="item in data">
<label class="export-label"> <label class="export-label">
<input type="checkbox" id = {{item.id}} ng-checked="ischeckedId(item.id)" ng-click="selectId(item.id,$event,idList)" class="fl" /> <input type="checkbox" id={{item.id}} ng-checked="ischeckedId(item.id) " ng-click="selectId(item.id,$event,idList) " class="fl " />
<span class="ml5 mt5 fl sj_over_hid ">{{item.cityName}}_{{item.districtName}}_{{item.systemName}}_{{item.endYear}}_{{item.submittedBatch}}</span> <span class="ml5 mt5 fl sj_over_hid ">{{item.cityName}}_{{item.districtName}}_{{item.systemName}}_{{item.endYear}}_{{item.submittedBatch}}_{{item.dataVersion}}</span>
</label> </label>
</li> </li>
</ul> </ul>
</div> </div>
<div class="sj_table_td05 sj-border-black mt10 padding20 border-left-none fl"> <div class="sj_table_td05 sj-border-black mt10 padding20 border-left-none fl ">
<h3 class="mb10">选择导出数据类型</h3> <h3 class="mb10 ">选择导出数据类型</h3>
<ul class="mb10" style="height:400px;overflow-y:auto;"> <ul class="mb10 " style="height:400px;overflow-y:auto; ">
<li class="cl export-li" ng-repeat = "item in export"> <li class="cl export-li " ng-repeat="item in export ">
<label class="export-label"> <label class="export-label">
<input type="checkbox" class="fl" id="{{item.type}}" ng-checked="ischeckedType(item.type)" ng-click="selectType(item.type,$event,typeList)"/> <input type="checkbox" id={{item.type}} ng-checked="ischeckedType(item.type) " ng-click="selectType(item.type,$event,typeList) " class="fl " />
<span class="ml5 mt5 fl sj_over_hid">{{item.exportName}}</span> <span class="ml5 mt5 fl sj_over_hid " style="width: 150px;">{{item.exportName}}</span>
<select class="ml5 mt5 fl sj_over_hid" style="width: 200px;" ng-show="item.exportName=='汇总库' " ng-init="selectGatherOracleName=gatherOracles[0].name" ng-model="selectGatherOracleName" ng-options="one.name for one in gatherOracles">
</select>
</label> </label>
</li> </li>
</ul> </ul>
</div> </div>
<button class="sj_btn_blue mt20 fr" ng-click="onsubmit(idList,typeList)">保存</button> <button class="sj_btn_blue mt20 fr " ng-click="onsubmit(idList,typeList) ">保存</button>
<button class="sj_btn_grey mt20 mr5 fr" ng-click="cancel()">取消</button> <button class="sj_btn_grey mt20 mr5 fr " ng-click="cancel() ">取消</button>
</div> </div>
</script> </script>
<div ng-controller="Kubernetes.TopLevel"> <div ng-controller="Kubernetes.TopLevel ">
<div class="wiki-icon-view" ng-controller="Kubernetes.FileDropController" nv-file-drop nv-file-over uploader="uploader" over-class="ready-drop"> <div class="wiki-icon-view " ng-controller="Kubernetes.FileDropController " nv-file-drop nv-file-over uploader="uploader " over-class="ready-drop ">
<div class="row kubernetes-view" ng-view></div> <div class="row kubernetes-view " ng-view></div>
</div> </div>
</div> </div>

View File

@ -3,206 +3,212 @@
/// <reference path="configsDataService.ts"/> /// <reference path="configsDataService.ts"/>
/// <reference path="../../developer/ts/developerNavigation.ts"/> /// <reference path="../../developer/ts/developerNavigation.ts"/>
/// <reference path="../../developer/ts/dataManagerHelper.ts"/> /// <reference path="../../developer/ts/dataManagerHelper.ts"/>
module Configs{ module Configs {
export class OperateType{ export class OperateType {
public static get DELETE():string {return "delete"} public static get DELETE(): string { return "delete" }
public static get UPDATE():string {return "update"} public static get UPDATE(): string { return "update" }
public static get PUT():string{return "put"} public static get PUT(): string { return "put" }
public static get MOVE():string{return "move"} public static get MOVE(): string { return "move" }
public static get EXTRACT():string{return "extract"} public static get CREATE_DATABASE(): string { return "createDatabase" }
} public static get EXTRACT(): string { return "extract" }
}
_module.controller('Configs.MenuItemController',['$scope', '$location', ($scope, $location) => { _module.controller('Configs.MenuItemController', ['$scope', '$location', ($scope, $location) => {
$scope.menuItem=[{ $scope.menuItem = [{
icon: "glyphicon glyphicon-cloud-upload", icon: "glyphicon glyphicon-cloud-upload",
label: "数据管理配置", label: "数据管理配置",
title: "配置数据存储信息", title: "配置数据存储信息",
href: UrlHelpers.join(context, "/gluster-fs/setting") href: UrlHelpers.join(context, "/gluster-fs/setting")
}, },
{ {
icon: "glyphicon glyphicon-th-list", icon: "glyphicon glyphicon-th-list",
label: "服务集群配置", label: "服务集群配置",
title: "配置服务集群信息", title: "配置服务集群信息",
href: UrlHelpers.join(context, "/kube-cluster/setting") href: UrlHelpers.join(context, "/kube-cluster/setting")
}] }
}]); ]
}]);
function createConfigBreadcrumbs($scope, $location, $routeParams){ function createConfigBreadcrumbs($scope, $location, $routeParams) {
var url = $location.url(); var url = $location.url();
var label, title; var label, title;
switch (url) { switch (url) {
case "/config/gluster-fs/setting": case "/config/gluster-fs/setting":
label = "数据管理配置"; label = "数据管理配置";
title= "配置数据存储信息"; title = "配置数据存储信息";
break; break;
case "/config/kube-cluster/setting": case "/config/kube-cluster/setting":
label = "服务集群配置"; label = "服务集群配置";
title= "配置服务集群信息"; title = "配置服务集群信息";
break; break;
default: default:
break; break;
} }
return Developer.activateCurrent([{
href: url,
label: label,//item.label,
title: title//item.title
}]);
}
export function createOracleInfo(array:Array<any>, id:number){ return Developer.activateCurrent([{
var result ={"id": id}; href: url,
angular.forEach(array, (arr) => { label: label, //item.label,
result[arr.field] = arr.value; title: title //item.title
}); }]);
return result; }
}
export function shareInit($scope, $location, $routeParams){ export function createOracleInfo(array: Array < any > , id: number) {
$scope. subTabConfig = Developer.createCurrentSubNavBar($scope, $location, $routeParams); var result = { "id": id };
$scope.mask = true; angular.forEach(array, (arr) => {
/** result[arr.field] = arr.value;
});
*/ return result;
$("#mask").css("position", "absolute"); }
$("#mask").css("background", "black");
$("#mask").css("opacity", 0.4);
$("#mask").css("filter", "progid:DXImageTransform.Microsoft.Alpha(style=4,opacity=25)");
$("#mask").css("top", "0px");
$("#mask").css("left", "0px");
$("#mask").css("width", document.body.clientWidth + document.body.scrollLeft);
$("#mask").css("height", document.body.clientHeight + document.body.scrollTop);
$("#mask").css("zIndex", 1000);
}
export function createNewObejct(array:Array<any>, obj){ export function shareInit($scope, $location, $routeParams) {
var result =[]; $scope.subTabConfig = Developer.createCurrentSubNavBar($scope, $location, $routeParams);
if(obj){ $scope.mask = true;
angular.forEach(array, (arr) =>{ /**
result.push({
field: arr.field, */
name: arr.displayName, $("#mask").css("position", "absolute");
value: obj[arr.field] $("#mask").css("background", "black");
}); $("#mask").css("opacity", 0.4);
}); $("#mask").css("filter", "progid:DXImageTransform.Microsoft.Alpha(style=4,opacity=25)");
}else{ $("#mask").css("top", "0px");
angular.forEach(array, (arr) =>{ $("#mask").css("left", "0px");
result.push({ $("#mask").css("width", document.body.clientWidth + document.body.scrollLeft);
field: arr.field, $("#mask").css("height", document.body.clientHeight + document.body.scrollTop);
name: arr.displayName, $("#mask").css("zIndex", 1000);
value: null }
});
});
}
return result;
}
export function oracleInfoOperate($http, url:string, operate:string, resource, fn?: (data, status)=>void ){ export function createNewObejct(array: Array < any > , obj) {
if(resource === null) var result = [];
throw "不能操作空资源对象"; if (obj) {
if(angular.isArray(resource)){ angular.forEach(array, (arr) => {
var ids = []; result.push({
angular.forEach(resource, (item) => { field: arr.field,
var id = item["id"] || item["name"] || item["_id"] || item["_key"]; name: arr.displayName,
ids.push(id); value: obj[arr.field]
}); });
$http({ });
method: "POST", } else {
dataType: 'json', angular.forEach(array, (arr) => {
url: UrlHelpers.join(url, operate+"s"), result.push({
data: ids, field: arr.field,
}).success((data,header,config,status) => { name: arr.displayName,
if(angular.isFunction(fn)) value: null
fn(data, header); });
}).error((data,header,config,status) => { });
if(angular.isFunction(fn)) }
fn(data, header); return result;
}); }
}else{
var id = resource["id"] || resource["name"] || resource["_id"] || resource["_key"];
var RESTfulUrl=url;
if(id == "undefined"){
RESTfulUrl = UrlHelpers.join(url, operate);
}else{
RESTfulUrl = UrlHelpers.join(url, id+"", operate);
}
$http({ export function oracleInfoOperate($http, url: string, operate: string, resource, fn ? : (data, status) => void) {
method: "POST", if (resource === null)
dataType: 'json', throw "不能操作空资源对象";
url: RESTfulUrl, if (angular.isArray(resource)) {
data: JSON.stringify(resource), var ids = [];
}).success((data,header,config,status) => { angular.forEach(resource, (item) => {
if(angular.isFunction(fn)) var id = item["id"] || item["name"] || item["_id"] || item["_key"];
fn(data, header); ids.push(id);
// console.log("success"); });
// console.log(data + "_." + header + "_.." + config + "_..." + status); $http({
// console.log("success"); method: "POST",
}).error((data,header,config,status) => { dataType: 'json',
if(angular.isFunction(fn)) url: UrlHelpers.join(url, operate + "s"),
fn(data, header); data: ids,
}); }).then(function successCallback(response) {
} if (angular.isFunction(fn))
} fn(response.data, response.header);
}, function errorCallback(response) {
fn(response.data, response.header);
});
} else {
var id = resource["id"] || resource["name"] || resource["_id"] || resource["_key"];
var RESTfulUrl = url;
if (typeof(id) == "undefined") {
RESTfulUrl = UrlHelpers.join(url, operate);
} else {
RESTfulUrl = UrlHelpers.join(url, id + "", operate);
}
export function createConfigHelperNavBar($scope, $location, $routeParams){ $http({
return Developer.activateCurrent([ method: "POST",
{ dataType: 'json',
href: UrlHelpers.join(context, "regionalism-code/searching"), url: RESTfulUrl,
label: "行政区划检索", data: JSON.stringify(resource),
title: "检索行政区划代码" }).then(function successCallback(response) {
}, if (angular.isFunction(fn))
{ fn(response.data, response.status);
href: UrlHelpers.join(context,"system-code/searching"), }, function errorCallback(response) {
label: "系统编码检索", fn(response.data, response.status);
title: "检索系统编码" });
} // success((data,header,config,status) => {
]); // if(angular.isFunction(fn))
} // fn(data, header);
// // console.log("success");
// // console.log(data + "_." + header + "_.." + config + "_..." + status);
// // console.log("success");
// }).error((data,header,config,status) => {
// if(angular.isFunction(fn))
// fn(data, header);
// });
}
}
export function formatVolume(volume: volume): formatedVolume{ export function createConfigHelperNavBar($scope, $location, $routeParams) {
var brick:Array<Brick> = []; return Developer.activateCurrent([{
angular.forEach(volume.brick, (block:Block) => { href: UrlHelpers.join(context, "regionalism-code/searching"),
brick.push({ label: "行政区划检索",
ip: block.ip.split("."), title: "检索行政区划代码"
status: block.status, },
path: block.path, {
editable: block.editable || false href: UrlHelpers.join(context, "system-code/searching"),
}); label: "系统编码检索",
}); title: "检索系统编码"
}
return { ]);
name: volume.name, }
path: volume.path,
brick: brick,
status: volume.status,
editable: volume.editable || false,
hot: volume.hot == 0 ? true : false
}
}
export function volumesFormat(volumes: Array<volume>): Array<formatedVolume>{ export function formatVolume(volume: volume): formatedVolume {
var result:Array<formatedVolume> = []; var brick: Array < Brick > = [];
angular.forEach(volumes, (volume) => { angular.forEach(volume.brick, (block: Block) => {
result.push(formatVolume(volume)); brick.push({
}); ip: block.ip.split("."),
return result; status: block.status,
} path: block.path,
editable: block.editable || false
});
});
export interface formatedVolume{ return {
name: string name: volume.name,
path: string path: volume.path,
brick: Array<Brick>; brick: brick,
status: boolean; status: volume.status,
editable: boolean, editable: volume.editable || false,
hot: boolean hot: volume.hot == 0 ? true : false
} }
}
export interface Brick{ export function volumesFormat(volumes: Array < volume > ): Array < formatedVolume > {
ip: Array<string>; var result: Array < formatedVolume > = [];
status: boolean; angular.forEach(volumes, (volume) => {
path: string; result.push(formatVolume(volume));
editable: boolean });
} return result;
}
} export interface formatedVolume {
name: string
path: string
brick: Array < Brick > ;
status: boolean;
editable: boolean,
hot: boolean
}
export interface Brick {
ip: Array < string > ;
status: boolean;
path: string;
editable: boolean
}
}

View File

@ -3,174 +3,227 @@
/// <reference path="configsHelper.ts"/> /// <reference path="configsHelper.ts"/>
/// <reference path="configsUtils.ts"/> /// <reference path="configsUtils.ts"/>
module Configs{ module Configs {
export var KubeController = controller('KubeController', ["$scope", "$templateCache", "$location", "$routeParams", "$http", "$timeout","ConfigsModel","DataModel", export var KubeController = controller('KubeController', ["$scope", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "ConfigsModel", "DataModel", "$modal",
($scope, $templateCache:ng.ITemplateCacheService, $location, $routeParams, $http, $timeout, ConfigsModel, DataModel) => { ($scope, $templateCache: ng.ITemplateCacheService, $location, $routeParams, $http, $timeout, ConfigsModel, DataModel, $modal) => {
$scope.model= ConfigsModel; $scope.model = ConfigsModel;
$scope.model.updateOracleParam(); $scope.model.updateOracleParam();
$scope.submitted = false;
$scope.DataModel = DataModel;
console.log(ConfigsModel.oracleParam);
console.log("Configs00000000");
$scope.tableConfig={
data: 'model.oracleParam',
selectedItems: [],
columnDefs: [{
field: "name",
displayName: "名称"
},
{
field: "ip",
displayName: "IP"
},
{
field: "port",
displayName: "端口号"
},
{
field: "user",
displayName: "用户名"
},
{
field: "password",
displayName: "密码"
},
{
field: "databaseName",
displayName: "服务名"
},
{
field: "tableName",
displayName: "表空间名"
},
{
field: "suffix",
displayName: "表后缀"
},
{
field: "type",
displayName: "标准表汇总库",
cellTemplate: $templateCache.get("strandColumn.html")
},
{
field: "entity",
displayName: "操作",
cellTemplate: $templateCache.get("tableEdit.html")
}],
enableRowClickSelection: false,
showSelectionCheckbox: false,
multiSelect: false,
sortInfo: {
sortBy: "name",
ascending: true
}
}
shareInit($scope, $location, $routeParams);
$scope.create = () =>{
$scope.submitted = false; $scope.submitted = false;
$scope.add= true; $scope.submittedCreateDatabase = false;
$scope.edit = false; $scope.DataModel = DataModel;
$scope.tableForm = {};
$scope.tableForm["id"]=0;
$scope.tableForm["type"]=0;
$scope.tableForm["name"]='';
$scope.tableForm["ip"]='';
$scope.tableForm["port"]='';
$scope.tableForm["user"]='';
$scope.tableForm["password"]='';
$scope.tableForm["databaseName"]='';
$scope.tableForm["tableName"]='';
$scope.tableForm["suffix"]='';
$scope.tableForm["startTime"]=''; console.log(ConfigsModel.oracleParam);
$scope.tableForm["endTime"]=''; console.log("Configs00000000");
$scope.tableForm["contact"]='';
$scope.tableForm["phone"]='';
$scope.tableForm["isCreateGatherOracle"]=1;
}
$scope.cancel = () => {
$scope.tableForm =null;
$scope.add = false;
$scope.edit = false;
$scope.submitted = false;
}
$scope.onSubmit = (oracle) => {
if($scope.tableForm["name"]=='请输入2-20个字符的数据名称')
$scope.tableForm["name"]='';
if($scope.tableForm["ip"]=='oracle的IP,例如0.0.0.0')
$scope.tableForm["ip"]='';
if($scope.tableForm["port"]=='oracle的的端口,1~65535')
$scope.tableForm["port"]='';
if($scope.tableForm["user"]=='oracle的用户名2-15个字母、数字或下划线')
$scope.tableForm["user"]='';
if($scope.tableForm["password"]=='oracle的密码,2-15个字母、数字或下划线')
$scope.tableForm["password"]='';
if($scope.tableForm["databaseName"]=='oracle的实例名,1-10个字母,例如ORCL')
$scope.tableForm["databaseName"]='';
if($scope.tableForm["tableName"]=='oracle的表空间名,1-15个字母、数字或下划线')
$scope.tableForm["tableName"]='';
if($scope.tableForm["suffix"]=='汇总生成新表的后缀名,1-10个字母、数字或下划线')
$scope.tableForm["suffix"]='';
if($scope.tableForm["startTime"]=='开始时间,格式为yyyy-MM 例如2018-02')
$scope.tableForm["startTime"]='';
if($scope.tableForm["endTime"]=='结束时间,格式为yyyy-MM 例如2018-02')
$scope.tableForm["endTime"]='';
if($scope.tableForm["contact"]=='联系人')
$scope.tableForm["contact"]='';
if($scope.tableForm["phone"]=='联系方式')
$scope.tableForm["phone"]='';
$scope.tableConfig = {
data: 'model.oracleParam',
selectedItems: [],
columnDefs: [{
field: "name",
displayName: "名称"
},
{
field: "ip",
displayName: "IP"
},
{
field: "port",
displayName: "端口号"
},
{
field: "user",
displayName: "用户名"
},
{
field: "password",
displayName: "密码"
},
{
field: "databaseName",
displayName: "服务名"
},
{
field: "tableName",
displayName: "表空间名"
},
{
field: "suffix",
displayName: "表后缀"
},
{
field: "type",
displayName: "标准表汇总库",
cellTemplate: $templateCache.get("strandColumn.html")
if($scope.validForm.$valid && $scope.validForm.$dirty){ },
$scope.edit = false; {
$scope.add = false field: "entity",
console.log(oracle); displayName: "操作",
oracleInfoOperate($http, "/java/console/api/oracle", OperateType.UPDATE, oracle, (result, status) => { cellTemplate: $templateCache.get("tableEdit.html")
console.log(oracle);
if(status===200){
$scope.model.updateOracleParam();
}else{
throw "资源请求失败";
} }
}); ],
}else{ enableRowClickSelection: false,
$scope.submitted = true; showSelectionCheckbox: false,
} multiSelect: false,
sortInfo: {
sortBy: "name",
ascending: true
}
}
shareInit($scope, $location, $routeParams);
$scope.create = () => {
$scope.submitted = false;
$scope.add = true;
$scope.edit = false;
$scope.createDatabase = false;
$scope.tableForm = {};
$scope.tableForm["id"] = 0;
$scope.tableForm["type"] = 0;
$scope.tableForm["name"] = '';
$scope.tableForm["ip"] = '';
$scope.tableForm["port"] = '';
$scope.tableForm["user"] = '';
$scope.tableForm["password"] = '';
$scope.tableForm["databaseName"] = '';
$scope.tableForm["tableName"] = '';
$scope.tableForm["suffix"] = '';
}
$scope.createGatherDababase = () => {
$scope.submittedCreateDatabase = false;
$scope.add = false;
$scope.edit = false;
$scope.createDatabase = true;
$scope.tableForm = {};
$scope.tableForm["dataVersion"] = 1;
$scope.tableForm["systemName"] = '汇总库';
$scope.tableForm["startTime"] = '';
$scope.tableForm["endTime"] = '';
$scope.tableForm["contact"] = '';
$scope.tableForm["phone"] = '';
$scope.tableForm["encoding"] = 'UTF8';
}
$scope.cancel = () => {
$scope.tableForm = null;
$scope.add = false;
$scope.edit = false;
$scope.submitted = false;
}
$scope.cancelCreateDatabase = () => {
$scope.tableForm = null;
$scope.createDatabase = false;
$scope.submittedCreateDatabase = false;
}
$scope.onSubmit = (oracle) => {
if ($scope.tableForm["name"] == '请输入2-20个字符的数据名称')
$scope.tableForm["name"] = '';
if ($scope.tableForm["ip"] == 'oracle的IP,例如0.0.0.0')
$scope.tableForm["ip"] = '';
if ($scope.tableForm["port"] == 'oracle的的端口,1~65535')
$scope.tableForm["port"] = '';
if ($scope.tableForm["user"] == 'oracle的用户名2-15个字母、数字或下划线')
$scope.tableForm["user"] = '';
if ($scope.tableForm["password"] == 'oracle的密码,2-15个字母、数字或下划线')
$scope.tableForm["password"] = '';
if ($scope.tableForm["databaseName"] == 'oracle的实例名,1-10个字母,例如ORCL')
$scope.tableForm["databaseName"] = '';
if ($scope.tableForm["tableName"] == 'oracle的表空间名,1-15个字母、数字或下划线')
$scope.tableForm["tableName"] = '';
if ($scope.tableForm["suffix"] == '汇总生成新表的后缀名,1-10个字母、数字或下划线')
$scope.tableForm["suffix"] = '';
if ($scope.validForm.$valid && $scope.validForm.$dirty) {
$scope.edit = false;
$scope.add = false
console.log(oracle);
oracleInfoOperate($http, "/java/console/api/oracle", OperateType.UPDATE, oracle, (result, status) => {
if (status == 200) {
$scope.model.updateOracleParam();
Configs.customAlert("提示", "汇总库更新成功", '', null, 0, "success");
} else if (status == 400) {
console.log(result);
Configs.customAlert("提示", "汇总库更新失败,名称不能重复", '', null, 0, "error");
} else {
console.log(result);
Configs.customAlert("提示", "汇总库配置失败: 系统异常!", '', null, 0, "error");
}
});
} else {
$scope.submitted = true;
}
}
$scope.onSubmitCreateDatabase = (oracle) => {
if ($scope.tableForm["systemName"] == '请输入2-20个字符的汇总库系统名称')
$scope.tableForm["systemName"] = '';
if ($scope.tableForm["startTime"] == '开始时间,格式为yyyy-MM 例如2018-02')
$scope.tableForm["startTime"] = '';
if ($scope.tableForm["endTime"] == '结束时间,格式为yyyy-MM 例如2018-02')
$scope.tableForm["endTime"] = '';
if ($scope.tableForm["contact"] == '联系人')
$scope.tableForm["contact"] = '';
if ($scope.tableForm["phone"] == '联系方式')
$scope.tableForm["phone"] = '';
if ($scope.createDatabaseForm.$valid && $scope.createDatabaseForm.$dirty) {
$scope.createDatabase = false;
console.log(oracle);
Configs.customAlert("提示", "准备创建汇总库,请稍后前往数据管理页面查看创建的汇总库", '', null, 0, "success");
oracleInfoOperate($http, "/java/console/api/oracle", OperateType.CREATE_DATABASE, oracle, (result, status) => {
if (status === 200) {
Configs.customAlert("提示", "汇总库创建成功,请前往数据管理页面中启动创建的汇总库并查看参数在配置服务集群", '', null, 0, "success");
} else {
console.log(result);
Configs.customAlert("提示", "汇总库创建失败!\n" + result.msg, '', null, 0, "error");
}
});
} else {
$scope.submittedCreateDatabase = true;
}
}
$scope.$on("editRow", (event, data) => {
$scope.submitted = false;
$scope.tableForm = deepCopy(data);
$scope.edit = true;
$scope.add = false;
$scope.createDatabase = false;
//$scope.rowId = data.id
//createNewObejct($scope.tableConfig.columnDefs, data);
//removeElementsByValue($scope.tableForm, [{key: "name", value: "序号"},{key: "name", value: "连接状态"},{key: "name", value: "操作"}]);
});
$scope.$on("deleteRow", (event, data) => {
oracleInfoOperate($http, "/java/console/api/oracle", OperateType.DELETE, data, (result, status) => {
if (status == 200) {
$scope.model.updateOracleParam();
Configs.customAlert("提示", "汇总库删除成功", '', null, 0, "success");
} else {
console.log(result);
Configs.customAlert("提示", "汇总库配置失败: 系统异常!", '', null, 0, "error");
}
});
//removeElementByValue($scope.model, data._id, "_id");
});
} }
$scope.$on("editRow", (event, data) =>{ ]);
$scope.submitted = false;
$scope.tableForm = deepCopy(data);
$scope.edit = true;
$scope.add = false;
//$scope.rowId = data.id
//createNewObejct($scope.tableConfig.columnDefs, data);
//removeElementsByValue($scope.tableForm, [{key: "name", value: "序号"},{key: "name", value: "连接状态"},{key: "name", value: "操作"}]);
}) ;
$scope.$on("deleteRow", (event, data) =>{
oracleInfoOperate($http, "/java/console/api/oracle", OperateType.DELETE, data, (result, status) => {
if(status===200){
console.log("准备更新");
$scope.model.updateOracleParam();
}else{
throw "资源请求失败";
}
});
//removeElementByValue($scope.model, data._id, "_id");
});
}]);
} }

View File

@ -5,423 +5,445 @@
/// <reference path="../../configs/ts/customAlert.ts"/> /// <reference path="../../configs/ts/customAlert.ts"/>
/// <reference path="../../kubernetes/ts/kubernetesHelpers.ts"/> /// <reference path="../../kubernetes/ts/kubernetesHelpers.ts"/>
module Configs{ module Configs {
export var TableEdit = controller('TableEdit', ['$scope', ($scope) => { export var TableEdit = controller('TableEdit', ['$scope', ($scope) => {
$scope.editRow = (entity)=>{ $scope.editRow = (entity) => {
$scope.$emit('editRow', entity); $scope.$emit('editRow', entity);
}
$scope.deleteRowOne ={
show: false,
item: null,
open: (entity) => {
var deleteRowOne = $scope.deleteRowOne;
deleteRowOne.show = true;
deleteRowOne.item = entity;
},
onOk: () => {
var deleteRowOne = $scope.deleteRowOne;
$scope.$emit('deleteRow', deleteRowOne.item);
},
onCancel: () => {
var deleteRowOne = $scope.deleteRowOne;
deleteRowOne.show = false;
deleteRowOne.item = null;
}
}
}]);
export var VolumeController = controller('VolumeController', ['$scope', '$http', ($scope, $http) => {
$scope.submitted = false;
$scope.status = $scope.ngDialogData.status;
$scope. cancel = () =>{
$scope.closeThisDialog();
$scope.submitted = false;
}
$scope.deleteBrock = (volume:volume, brock) => {
if(volume.brick.length>1)
deleteBrock(volume, brock);
else
$scope.showMessage = true;
}
$scope.addBrock = (volume) => {
var block = {
ip: "", //存储块的机器ip地址
path: "", //存储块路径
status: false, //存储块的状态
editable:true
};
addBrock(volume, block);
$scope.showMessage = false;
}
$scope.stopVolume = (volume) =>{
volume.status = false;
}
$scope.startVolume = (volume) =>{
volume.status = true;
}
$scope.onSubmit = (entity) => {
console.log(entity);
if($scope.volumeForm.$valid){
$scope.$emit('update', entity);
$scope.closeThisDialog();
}else{
$scope.submitted = true;
}
}
}]);
export var SystemInfoController = controller('SystemInfoController', ['$scope', ($scope) =>{
}]);
export var SqlViewController = controller('SqlViewController', ['$scope', '$http', ($scope, $http) =>{
$scope.title = shareInit($scope.ngDialogData);
$scope.content = "";
getSqlContent();
function getSqlContent(){
$http({
url: "/java/console/api/filePackage/readSqlFile",
method:'POST',
params: {type: $scope.ngDialogData.type},
data: JSON.stringify($scope.ngDialogData.item)
}).success(function(data,header,config,status){
$scope.old_content = data.data1;
//响应成功
}).error(function(data,header,config,status){
//处理响应失败
$scope.old_content = "获取脚本内容失败"
});
}
$scope.upLoadSqlFile = () => {
if(typeof FileReader == 'undefined'){
throw "浏览器不支持FileReader读取文件";
}else{
Configs.FileInputPlugin((file) =>{
if(typeof typeof FileReader == 'undefined')
throw "浏览器不支持FileReader读取文件";
else{
var fr = new FileReader();
fr.onloadend = (e) =>{
$scope.new_content = e.target["result"];
$scope.enable = true;
}
fr.onloadstart = () =>{
$scope.$apply(() =>{
$scope.content = "正在读取数据请稍等...";
});
$scope.content = "正在读取数据请稍等...";
}
fr.readAsText(file[0],"GBK");
}
});
}
}
$scope.onOk = () => {
$scope.enable = false;
if(null == $scope.new_content || $scope.new_content == ""){
console.log("上传的内容不能为空");
$scope.closeThisDialog();
}else{
$scope.$emit("onOk",{
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.new_content,
opt: "add",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
}
$scope.cancel = () => {
$scope.enable = false;
$scope.closeThisDialog();
}
}]);
export var SqlAddController = controller('SqlAddController', ['$scope', '$http', ($scope, $http) => {
$scope.content = "";
$scope.title = shareInit($scope.ngDialogData);
$scope.sqlFileUpload = () =>{
Configs.FileInputPlugin((file) =>{
if(typeof FileReader == 'undefined')
throw "浏览器不支持FileReader读取文件";
else{
var fr = new FileReader();
fr.onloadend = (e) =>{
$scope.content = e.target["result"];
$scope.enable = true;
}
fr.onloadstart = () =>{
$scope.$apply(() =>{
$scope.content = "正在读取数据请稍等...";
});
$scope.content = "正在读取数据请稍等...";
}
fr.readAsText(file[0],"GBK");
}
});
}
$scope.onOk = () => {
$scope.enable = false;
if(null ==$scope.content || $scope.content == ""){
console.log("上传的内容不能为空");
$scope.closeThisDialog();
}
else{
$scope.$emit("onOk",{
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "add",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
}
$scope.cancel = () => {
$scope.enable = false;
$scope.closeThisDialog();
}
}]);
export var sqlVerificationController = controller('sqlVerificationController', ['$scope', '$http', ($scope, $http) => {
getSqlContent();
$scope.title = shareInit($scope.ngDialogData);
$scope.replace = () => {
$scope.$emit("replace", {
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "replace",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
function getSqlContent(){
$http({
url: "/java/console/api/filePackage/readSqlFile",
method:'POST',
params: {type: $scope.ngDialogData.type},
data: JSON.stringify($scope.ngDialogData.item)
}).success(function(data,header,config,status){
$scope.standard = data.data1;
$scope.unnormal = data.data2;
//响应成功
}).error(function(data,header,config,status){
//处理响应失败
$scope.unnormal = $scope.standard = "获取脚本内容失败";
});
}
$scope.cancel = () => {
//$scope.closeThisDialog();
$scope.$emit("replace", {
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "delete",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
}]);
export var sqlMoveController = controller("sqlMoveController", ['$scope', '$http', ($scope, $http) => {
getSqlContent();
$scope.title = shareInit($scope.ngDialogData);
$scope.move = () => {
$scope.$emit("replace", {
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "replace",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
$scope.cancel = () => {
$scope.closeThisDialog();
}
function getSqlContent(){
$http({
url: "/java/console/api/filePackage/readSqlFile",
method:'POST',
params: {type: $scope.ngDialogData.type},
data: JSON.stringify($scope.ngDialogData.item)
}).success(function(data,header,config,status){
$scope.content = data.data2;
//响应成功
}).error(function(data,header,config,status){
//处理响应失败
$scope.content = "获取脚本内容失败";
});
}
}]);
export var sysVerUpdateController = controller('sysVerUpdateController', ['$scope', '$http', ($scope, $http) => {
$scope.checkboxItmes = [];
$scope.click = ($event, name) => {
if($event.target.checked){
if($scope.checkboxItmes.indexOf(name) == -1)
$scope.checkboxItmes.push(name)
}
else{
for(var i= 0; i < $scope.checkboxItmes.length; i++){
if($scope.checkboxItmes[i] === name){
$scope.checkboxItmes.splice(i,1);
break;
}
}
}
}
getData();
$scope.replace = () => {
$scope.requestBody = $scope.data1;
angular.forEach($scope.checkboxItmes, (item) => {
$scope.requestBody[item] = $scope.data2[item];
});
$scope.$emit("updateRow", $scope.requestBody);
$scope.closeThisDialog();
}
$scope.cancel = () => {
$scope.closeThisDialog();
}
function getData(){
$http({
url: "/java/console/api/checkout/findDetails",
method:'POST',
data: JSON.stringify($scope.ngDialogData)
}).success(function(data,header,config,status){
$scope.data1 = data.data1;
$scope.data2 = data.data2;
//响应成功
}).error(function(data,header,config,status){
//处理响应失败
$scope.content = "获取脚本内容失败";
});
}
}]);
export var dataExportController = controller("dataExportController", ['$scope', '$http', 'DataModel', 'ConfigsModel', ($scope, $http, DataModel:Developer.DataModelService, ConfigsModel:Configs.ConfigsModelService ) => {
$scope.model = DataModel;
$scope.data = DataModel.data;
$scope.export = [{"type":1,"exportName":"原始数据"},{"type":2,"exportName":"汇总库"},{"type":3,"exportName":"标准表抽取脚本"}];
$scope.idList = [];
$scope.typeList= [];
$scope.flag = false;
$scope.ischeckedId = function(id){
return $scope.idList.indexOf(id)>=0;
}
$scope.selectId = function(id, event){
var action = event.target;
if(action.checked){
if($scope.idList.indexOf(id) == -1){
$scope.idList.push(id);
return $scope.idList;
}
}else{
var idx = $scope.idList.indexOf(id);
if(idx != -1){
$scope.idList.splice(idx,1);
return $scope.idList;
}
}
}
$scope.ischeckedType = function(type){
return $scope.typeList.indexOf(type)>=0;
} }
$scope.selectType = function(type, event){
var action = event.target; $scope.deleteRowOne = {
if(action.checked){ show: false,
if($scope.typeList.indexOf(type) == -1){ item: null,
$scope.typeList.push(type); open: (entity) => {
return $scope.typeList; var deleteRowOne = $scope.deleteRowOne;
} deleteRowOne.show = true;
}else{ deleteRowOne.item = entity;
var idx = $scope.typeList.indexOf(type); },
if(idx != -1){ onOk: () => {
$scope.typeList.splice(idx,1); var deleteRowOne = $scope.deleteRowOne;
return $scope.typeList; $scope.$emit('deleteRow', deleteRowOne.item);
} },
onCancel: () => {
var deleteRowOne = $scope.deleteRowOne;
deleteRowOne.show = false;
deleteRowOne.item = null;
}
}
}]);
export var VolumeController = controller('VolumeController', ['$scope', '$http', ($scope, $http) => {
$scope.submitted = false;
$scope.status = $scope.ngDialogData.status;
$scope.cancel = () => {
$scope.closeThisDialog();
$scope.submitted = false;
}
$scope.deleteBrock = (volume: volume, brock) => {
if (volume.brick.length > 1)
deleteBrock(volume, brock);
else
$scope.showMessage = true;
}
$scope.addBrock = (volume) => {
var block = {
ip: "", //存储块的机器ip地址
path: "", //存储块路径
status: false, //存储块的状态
editable: true
};
addBrock(volume, block);
$scope.showMessage = false;
}
$scope.stopVolume = (volume) => {
volume.status = false;
}
$scope.startVolume = (volume) => {
volume.status = true;
}
$scope.onSubmit = (entity) => {
console.log(entity);
if ($scope.volumeForm.$valid) {
$scope.$emit('update', entity);
$scope.closeThisDialog();
} else {
$scope.submitted = true;
}
}
}]);
export var SystemInfoController = controller('SystemInfoController', ['$scope', ($scope) => {}]);
export var SqlViewController = controller('SqlViewController', ['$scope', '$http', ($scope, $http) => {
$scope.title = shareInit($scope.ngDialogData);
$scope.content = "";
getSqlContent();
function getSqlContent() {
$http({
url: "/java/console/api/filePackage/readSqlFile",
method: 'POST',
params: { type: $scope.ngDialogData.type },
data: JSON.stringify($scope.ngDialogData.item)
}).success(function(data, header, config, status) {
$scope.old_content = data.data1;
//响应成功
}).error(function(data, header, config, status) {
//处理响应失败
$scope.old_content = "获取脚本内容失败"
});
}
$scope.upLoadSqlFile = () => {
if (typeof FileReader == 'undefined') {
throw "浏览器不支持FileReader读取文件";
} else {
Configs.FileInputPlugin((file) => {
if (typeof typeof FileReader == 'undefined')
throw "浏览器不支持FileReader读取文件";
else {
var fr = new FileReader();
fr.onloadend = (e) => {
$scope.new_content = e.target["result"];
$scope.enable = true;
}
fr.onloadstart = () => {
$scope.$apply(() => {
$scope.content = "正在读取数据请稍等...";
});
$scope.content = "正在读取数据请稍等...";
}
fr.readAsText(file[0], "GBK");
}
});
} }
} }
$scope.selectAll = function(flag){ $scope.onOk = () => {
if($scope.flag){ $scope.enable = false;
flag = false; if (null == $scope.new_content || $scope.new_content == "") {
angular.forEach($scope.data, function(item, index){ console.log("上传的内容不能为空");
$scope.idList.push(item.id); $scope.closeThisDialog();
}); } else {
return $scope.idList; $scope.$emit("onOk", {
}else{ url: "/java/console/api/filePackage/handleSqlFile",
flag = true; item: $scope.ngDialogData.item,
$scope.idList = []; content: $scope.new_content,
return $scope.idList; opt: "add",
} type: $scope.ngDialogData.type
} });
$scope.closeThisDialog();
}
}
$scope.cancel = () => {
$scope.enable = false;
$scope.closeThisDialog();
}
}]);
export var SqlAddController = controller('SqlAddController', ['$scope', '$http', ($scope, $http) => {
$scope.content = "";
$scope.title = shareInit($scope.ngDialogData);
$scope.sqlFileUpload = () => {
Configs.FileInputPlugin((file) => {
if (typeof FileReader == 'undefined')
throw "浏览器不支持FileReader读取文件";
else {
var fr = new FileReader();
fr.onloadend = (e) => {
$scope.content = e.target["result"];
$scope.enable = true;
}
fr.onloadstart = () => {
$scope.$apply(() => {
$scope.content = "正在读取数据请稍等...";
});
$scope.content = "正在读取数据请稍等...";
}
fr.readAsText(file[0], "GBK");
}
});
}
$scope.onOk = () => {
$scope.enable = false;
if (null == $scope.content || $scope.content == "") {
console.log("上传的内容不能为空");
$scope.closeThisDialog();
} else {
$scope.$emit("onOk", {
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "add",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
}
$scope.cancel = () => {
$scope.enable = false;
$scope.closeThisDialog();
}
}]);
export var sqlVerificationController = controller('sqlVerificationController', ['$scope', '$http', ($scope, $http) => {
getSqlContent();
$scope.title = shareInit($scope.ngDialogData);
$scope.replace = () => {
$scope.$emit("replace", {
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "replace",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
function getSqlContent() {
$http({
url: "/java/console/api/filePackage/readSqlFile",
method: 'POST',
params: { type: $scope.ngDialogData.type },
data: JSON.stringify($scope.ngDialogData.item)
}).success(function(data, header, config, status) {
$scope.standard = data.data1;
$scope.unnormal = data.data2;
//响应成功
}).error(function(data, header, config, status) {
//处理响应失败
$scope.unnormal = $scope.standard = "获取脚本内容失败";
});
}
$scope.cancel = () => {
//$scope.closeThisDialog();
$scope.$emit("replace", {
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "delete",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
}]);
export var sqlMoveController = controller("sqlMoveController", ['$scope', '$http', ($scope, $http) => {
getSqlContent();
$scope.title = shareInit($scope.ngDialogData);
$scope.move = () => {
$scope.$emit("replace", {
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "replace",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
$scope.cancel = () => { $scope.cancel = () => {
$scope.closeThisDialog(); $scope.closeThisDialog();
} }
$scope.onsubmit = (idList , typeList) => { function getSqlContent() {
$http({ $http({
url: "/oracle/exportData", url: "/java/console/api/filePackage/readSqlFile",
method:'POST', method: 'POST',
data: idList,typeList, params: { type: $scope.ngDialogData.type },
}).success(function(data,header,config,status){ data: JSON.stringify($scope.ngDialogData.item)
console.log(data + "__" + header); }).success(function(data, header, config, status) {
}).error(function(data,header,config,status){ $scope.content = data.data2;
console.log("获取脚本内容失败"); //响应成功
}).error(function(data, header, config, status) {
//处理响应失败
$scope.content = "获取脚本内容失败";
}); });
}
}]);
export var sysVerUpdateController = controller('sysVerUpdateController', ['$scope', '$http', ($scope, $http) => {
$scope.checkboxItmes = [];
$scope.click = ($event, name) => {
if ($event.target.checked) {
if ($scope.checkboxItmes.indexOf(name) == -1)
$scope.checkboxItmes.push(name)
} else {
for (var i = 0; i < $scope.checkboxItmes.length; i++) {
if ($scope.checkboxItmes[i] === name) {
$scope.checkboxItmes.splice(i, 1);
break;
}
}
}
}
getData();
$scope.replace = () => {
$scope.requestBody = $scope.data1;
angular.forEach($scope.checkboxItmes, (item) => {
$scope.requestBody[item] = $scope.data2[item];
});
$scope.$emit("updateRow", $scope.requestBody);
$scope.closeThisDialog();
}
$scope.cancel = () => {
$scope.closeThisDialog();
}
function getData() {
$http({
url: "/java/console/api/checkout/findDetails",
method: 'POST',
data: JSON.stringify($scope.ngDialogData)
}).success(function(data, header, config, status) {
$scope.data1 = data.data1;
$scope.data2 = data.data2;
//响应成功
}).error(function(data, header, config, status) {
//处理响应失败
$scope.content = "获取脚本内容失败";
});
}
}]);
export var dataExportController = controller("dataExportController", ['$scope', '$http', 'DataModel', 'ConfigsModel', ($scope, $http, DataModel: Developer.DataModelService, ConfigsModel: Configs.ConfigsModelService) => {
$scope.model = DataModel;
$scope.data = DataModel.data;
$scope.gatherOracles=ConfigsModel.oracleParam;
$scope.export = [{ "type": 1, "exportName": "原始数据" }, { "type": 2, "exportName": "汇总库" }, { "type": 3, "exportName": "标准表抽取脚本" }];
$scope.idList = [];
$scope.typeList = [];
$scope.flag = false;
$scope.ischeckedId = function(id) {
return $scope.idList.indexOf(id) >= 0;
}
$scope.selectId = function(id, event) {
var action = event.target;
if (action.checked) {
if ($scope.idList.indexOf(id) == -1) {
$scope.idList.push(id);
return $scope.idList;
}
} else {
var idx = $scope.idList.indexOf(id);
if (idx != -1) {
$scope.idList.splice(idx, 1);
return $scope.idList;
}
}
}
$scope.ischeckedType = function(type) {
return $scope.typeList.indexOf(type) >= 0;
}
$scope.selectType = function(type, event) {
var action = event.target;
if (action.checked) {
if ($scope.typeList.indexOf(type) == -1) {
$scope.typeList.push(type);
return $scope.typeList;
}
} else {
var idx = $scope.typeList.indexOf(type);
if (idx != -1) {
$scope.typeList.splice(idx, 1);
return $scope.typeList;
}
}
}
$scope.selectAll = function(flag) {
if ($scope.flag) {
flag = false;
angular.forEach($scope.data, function(item, index) {
$scope.idList.push(item.id);
});
return $scope.idList;
} else {
flag = true;
$scope.idList = [];
return $scope.idList;
}
}
$scope.cancel = () => {
$scope.closeThisDialog();
}
$scope.onsubmit = (idList, typeList) => {
if (!idList.length) {
Configs.customAlert("提示", "请选择需要导出的数据", '', null, 0, "error");
return;
}
if (!typeList.length) {
Configs.customAlert("提示", "请选择需要导出的类型", '', null, 0, "error");
return;
}
var formData = {};
formData['idList'] = idList;
formData['typeList'] = typeList;
$.ajax({
async: false,
type: "POST",
contentType: "application/x-www-form-urlencoded",
url: UrlHelpers.join("/java/console/api/oracle/exportData"),
dataType: 'json',
data: { "idList": idList, "typeList": typeList },
// data: { "idList": idList, "typeList": typeList },
// data: JSON.stringify(formData),
success: (data) => {
Configs.customAlert("提示", "操作成功: 本次合计新增了" + data, '', null, 0, "success");
},
error: (data) => {
Configs.customAlert("提示", "操作成功: 本次合计新增了" + data, '', null, 0, "error");
}
});
$scope.closeThisDialog(); $scope.closeThisDialog();
} }
}]); }]);
function shareInit(ngDialogData) { function shareInit(ngDialogData) {
var title = ""; var title = "";
if(ngDialogData.type != 'undefined'){ if (ngDialogData.type != 'undefined') {
switch (ngDialogData.type) { switch (ngDialogData.type) {
case "userTableStatus" : case "userTableStatus":
title = "UserTablespace"; title = "UserTablespace";
break; break;
case "ckPayStatus": case "ckPayStatus":
title = "Chechout_Pay" title = "Chechout_Pay"
break; break;
case "ckIndicateStatus": case "ckIndicateStatus":
title = "Chechout_Indicate" title = "Chechout_Indicate"
break; break;
} }
} }
return title; return title;
} }
} }

View File

@ -296,7 +296,6 @@ module Developer {
console.log("selected"); console.log("selected");
var exitedItems = Kubernetes.checkForCreateOracle($scope.model.transferTasks, items); var exitedItems = Kubernetes.checkForCreateOracle($scope.model.transferTasks, items);
console.log(items); console.log(items);
console.log(12313132);
for (var i = 0; i < items.length; ++i) { for (var i = 0; i < items.length; ++i) {
// code... // code...
if (items[i].dataBaseType != 'ORACLE') { if (items[i].dataBaseType != 'ORACLE') {

View File

@ -233,7 +233,6 @@
</div> </div>
</div> </div>
</script> </script>
<script type="text/ng-template" id="taskRecordEdit.html"> <script type="text/ng-template" id="taskRecordEdit.html">
<div class="ngCellText" ng-init="entity=row.entity" ng-controller="Kubernetes.TaskRecordEdit"> <div class="ngCellText" ng-init="entity=row.entity" ng-controller="Kubernetes.TaskRecordEdit">
<button class="btn sj_btn" style="border:0;background:none;" ng-click="showDeleteOne.open(entity)" ng-disabled="entity.status == 1 || entity.status == 0"> <button class="btn sj_btn" style="border:0;background:none;" ng-click="showDeleteOne.open(entity)" ng-disabled="entity.status == 1 || entity.status == 0">
@ -252,16 +251,15 @@
<!-- <div style="height:80%;" class="ngCellText progress" ng-init="entity=row.entity"> --> <!-- <div style="height:80%;" class="ngCellText progress" ng-init="entity=row.entity"> -->
<div ng-init="entity=row.entity"> <div ng-init="entity=row.entity">
<div style="position:relative;text-align:right;width:100%;height:25px"> <div style="position:relative;text-align:right;width:100%;height:25px">
<span></span> <span></span>
</div> </div>
<div ng-show="entity.status!==3" class="progress-bar progress-bar-success active sj_progress_bar " role="progressbar" aria-valuenow="{{entity.process}}" aria-valuemin="0" aria-valuemax="100" style="text-align:left;height:15px;width: {{entity.process}}%"> <div ng-show="entity.status!==3" class="progress-bar progress-bar-success active sj_progress_bar " role="progressbar" aria-valuenow="{{entity.process}}" aria-valuemin="0" aria-valuemax="100" style="text-align:left;height:15px;width: {{entity.process}}%">
<!-- <span class="sj_progress_font">{{entity.process}}%</span> --> <!-- <span class="sj_progress_font">{{entity.process}}%</span> -->
</div> </div>
<div style="position:relative;text-align:right;width:100%;height:15px;line-height:90%"> <div style="position:relative;text-align:right;width:100%;height:15px;line-height:90%">
<span>{{entity.process}}%</span> <span>{{entity.process}}%</span>
</div> </div>
<!-- <div ng-show="entity.status ===3" class="progress-bar progress-bar-danger active sj_progress_bar" role="progressbar" aria-valuenow="{{entity.process}}" aria-valuemin="30" aria-valuemax="100" style="width: 100%" title="{{entity.process}}%">
<!-- <div ng-show="entity.status ===3" class="progress-bar progress-bar-danger active sj_progress_bar" role="progressbar" aria-valuenow="{{entity.process}}" aria-valuemin="30" aria-valuemax="100" style="width: 100%" title="{{entity.process}}%">
<span class="sj_progress_font">{{entity.process}}%</span> <span class="sj_progress_font">{{entity.process}}%</span>
</div> --> </div> -->
</div> </div>
@ -318,15 +316,37 @@
</div> </div>
</script> </script>
<script type="text/ng-template" id="isExistHot.html"> <script type="text/ng-template" id="isExistHot.html">
<div class="ngCellText" ng-init="entity=row.entity"> <div class="ngCellText" ng-init="entity=row.entity">
<div ng-show="true" title="是否是标准表汇总库"> <div ng-show="true" title="是否在热区">
<span ng-show="entity.existHotData == 0">&nbsp;</span> <span ng-show="entity.existHotData == 0">&nbsp;</span>
<span ng-show="entity.existHotData == 1">&nbsp;</span> <span ng-show="entity.existHotData == 1">&nbsp;</span>
</div> </div>
</div> </div>
</script> </script>
<script type="text/ng-template" id="modal.html">
<div>
<div class="modal-header">
<h3 class="modal-title" align="center">
标题信息
</h3>
</div>
<div class="modal-body">
<div align="center">
{{data}}
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" ng-click="ok()">
确认
</button>
<button class="btn btn-warning" ng-click="cancel()">
退出
</button>
</div>
</div>
</script>
<div ng-controller="Kubernetes.TopLevel"> <div ng-controller="Kubernetes.TopLevel">
<div class="wiki-icon-view" ng-controller="Kubernetes.FileDropController" nv-file-drop nv-file-over uploader="uploader" over-class="ready-drop"> <div class="wiki-icon-view" ng-controller="Kubernetes.FileDropController" nv-file-drop nv-file-over uploader="uploader" over-class="ready-drop">
<div class="row kubernetes-view" ng-view></div> <div class="row kubernetes-view" ng-view></div>
</div> </div>
</div> </div>

View File

@ -4,54 +4,54 @@
module Kubernetes { module Kubernetes {
export var ReplicationControllerController = controller("ReplicationControllerController", export var ReplicationControllerController = controller("ReplicationControllerController", ["$scope", "KubernetesModel", "KubernetesState", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "KubernetesApiURL",
["$scope", "KubernetesModel", "KubernetesState", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "KubernetesApiURL", ($scope, KubernetesModel: Kubernetes.KubernetesModelService, KubernetesState,
($scope, KubernetesModel: Kubernetes.KubernetesModelService, KubernetesState, $templateCache: ng.ITemplateCacheService, $location: ng.ILocationService, $routeParams, $http, $timeout, KubernetesApiURL) => {
$templateCache:ng.ITemplateCacheService, $location:ng.ILocationService, $routeParams, $http, $timeout, KubernetesApiURL) => {
$scope.kubernetes = KubernetesState; $scope.kubernetes = KubernetesState;
$scope.model = KubernetesModel; $scope.model = KubernetesModel;
$scope.rawModel = null $scope.rawModel = null
Kubernetes.initShared($scope, $location, $http, $timeout, $routeParams, KubernetesModel, KubernetesState, KubernetesApiURL); Kubernetes.initShared($scope, $location, $http, $timeout, $routeParams, KubernetesModel, KubernetesState, KubernetesApiURL);
$scope.itemConfig = { $scope.itemConfig = {
properties: { properties: {
'^\\/labels$': { '^\\/labels$': {
template: $templateCache.get('labelTemplate.html') template: $templateCache.get('labelTemplate.html')
}
}
};
$scope.$on('kubernetesModelUpdated', () => {
updateData();
});
$scope.$on('$routeUpdate', ($event) => {
updateData();
});
$scope.$watch('model.pods', (newValue, oldValue) => {
updateData();
}, true);
$scope.flipRaw = () => {
$scope.rawMode = !$scope.rawMode;
Core.$apply($scope);
};
updateData();
function updateData() {
if ($scope.dirty) {
return;
}
$scope.id = $routeParams["id"];
$scope.item = $scope.model.getReplicationController(KubernetesState.selectedNamespace, $scope.id);
if ($scope.item) {
$scope.rawModel = toRawYaml($scope.item);
}
Core.$apply($scope);
}
} }
} ]);
}; }
$scope.$on('kubernetesModelUpdated', () => {
updateData();
});
$scope.$on('$routeUpdate', ($event) => {
updateData();
});
$scope.$watch('model.pods', (newValue, oldValue) => {
updateData();
}, true);
$scope.flipRaw = () => {
$scope.rawMode = !$scope.rawMode;
Core.$apply($scope);
};
updateData();
function updateData() {
if ($scope.dirty) {
return;
}
$scope.id = $routeParams["id"];
$scope.item = $scope.model.getReplicationController(KubernetesState.selectedNamespace, $scope.id);
if ($scope.item) {
$scope.rawModel = toRawYaml($scope.item);
}
Core.$apply($scope);
}
}]);
}

View File

@ -166,6 +166,7 @@ module System {
}); });
} }
//boolean选择条件是/否 //boolean选择条件是/否
function booleanChoose() { function booleanChoose() {
return [{ id: '是', title: '是' }, { id: '否', title: '否' }]; return [{ id: '是', title: '是' }, { id: '否', title: '否' }];