<?xml version="1.0" encoding="UTF-8"?>
|
<ViewConfig>
|
<Arguments/>
|
<Context/>
|
<Model>
|
<DataType name="dataTypeJob">
|
<Property name="creationType">com.bstek.bdf2.job.model.JobDefinition</Property>
|
<Reference name="calendars">
|
<Property name="dataType">[dataTypeCalendar]</Property>
|
<Property name="parameter">$${this.id}</Property>
|
<Property name="dataProvider">bdf2.jobMaintain#loadCalendars</Property>
|
</Reference>
|
<Reference name="histories">
|
<Property name="dataProvider">bdf2.jobMaintain#loadJobHistories</Property>
|
<Property name="dataType">[$dataTypeJobHistory]</Property>
|
<Property name="parameter">$${this.id}</Property>
|
<Property name="pageSize">20</Property>
|
</Reference>
|
<Reference name="parameters">
|
<Property name="dataProvider">bdf2.jobMaintain#loadJobParameters</Property>
|
<Property name="parameter">$${this.id}</Property>
|
<Property name="dataType">[$dataTypeJobParameter]</Property>
|
</Reference>
|
<PropertyDef name="id">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="startDate">
|
<Property name="dataType">Date</Property>
|
<Property name="label">开始日期</Property>
|
</PropertyDef>
|
<PropertyDef name="desc">
|
<Property name="dataType">String</Property>
|
<Property name="label">描述</Property>
|
<Validator type="length">
|
<Property name="maxLength">120</Property>
|
<Property name="minLength">2</Property>
|
<Property name="resultMessage">值要在2~120之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="beanId">
|
<Property name="dataType">String</Property>
|
<Property name="label">使用的BeanId</Property>
|
<Property name="required">true</Property>
|
<Validator type="length">
|
<Property name="maxLength">60</Property>
|
<Property name="minLength">2</Property>
|
<Property name="resultMessage">值要在2~60之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="name">
|
<Property name="dataType">String</Property>
|
<Property name="label">Job名称</Property>
|
<Property name="required">true</Property>
|
<Validator type="length">
|
<Property name="maxLength">60</Property>
|
<Property name="minLength">2</Property>
|
<Property name="resultMessage">值要在2~60之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="endDate">
|
<Property name="dataType">Date</Property>
|
<Property name="label">结束日期</Property>
|
</PropertyDef>
|
<PropertyDef name="companyId">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="cronExpression">
|
<Property name="dataType">String</Property>
|
<Property name="label">Cron表达式</Property>
|
<Property name="required">true</Property>
|
<Validator type="length">
|
<Property name="maxLength">60</Property>
|
<Property name="minLength">2</Property>
|
<Property name="resultMessage">值要在2~60之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="state">
|
<Property name="label">当前状态</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeCalendar">
|
<Property name="creationType">com.bstek.bdf2.job.model.JobCalendar</Property>
|
<PropertyDef name="id">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="desc">
|
<Property name="dataType">String</Property>
|
<Property name="label">描述</Property>
|
<Validator type="length">
|
<Property name="maxLength">120</Property>
|
<Property name="minLength">2</Property>
|
<Property name="resultMessage">长度需要在2~120之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="name">
|
<Property name="dataType">String</Property>
|
<Property name="label">日期名称</Property>
|
<Property name="required">true</Property>
|
<Validator type="length">
|
<Property name="maxLength">60</Property>
|
<Property name="minLength">2</Property>
|
<Property name="resultMessage">长度需要在2~60之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="companyId">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="type">
|
<Property name="label">类型</Property>
|
<Property name="mapping">
|
<Property name="mapValues">
|
<Collection>
|
<Entity>
|
<Property name="key">weekly</Property>
|
<Property name="value">星期中的某些天</Property>
|
</Entity>
|
<Entity>
|
<Property name="key">monthly</Property>
|
<Property name="value">月份中的某些天</Property>
|
</Entity>
|
<Entity>
|
<Property name="key">holiday</Property>
|
<Property name="value">具体日期</Property>
|
</Entity>
|
<Entity>
|
<Property name="key">annual</Property>
|
<Property name="value">每年都经历的日期</Property>
|
</Entity>
|
</Collection>
|
</Property>
|
<Property name="keyProperty">key</Property>
|
<Property name="valueProperty">value</Property>
|
</Property>
|
<Property name="defaultValue">holiday</Property>
|
<Property name="required">true</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeSecond">
|
<PropertyDef name="type">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="fromPerSecond">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="perSecond">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="fromSecond">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="toSecond">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="specificSecond">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">0</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeMinute">
|
<PropertyDef name="type">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="fromPerMinute">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="perMinute">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="fromMinute">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="toMinute">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="specificMinute">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">0</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeHour">
|
<PropertyDef name="type">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="fromPerHour">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="perHour">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="fromHour">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="toHour">
|
<Property name="dataType">int</Property>
|
</PropertyDef>
|
<PropertyDef name="specificHour">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">0</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeDay">
|
<PropertyDef name="type">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="fromPerDay">
|
<Property name="dataType">int</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
<PropertyDef name="perDay">
|
<Property name="dataType">int</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
<PropertyDef name="fromDay">
|
<Property name="dataType">int</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
<PropertyDef name="toDay">
|
<Property name="dataType">int</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
<PropertyDef name="specificDay">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeMonth">
|
<PropertyDef name="type">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="fromPerMonth">
|
<Property name="dataType">int</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
<PropertyDef name="perMonth">
|
<Property name="dataType">int</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
<PropertyDef name="fromMonth">
|
<Property name="dataType">int</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
<PropertyDef name="toMonth">
|
<Property name="dataType">int</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
<PropertyDef name="specificMonth">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">1</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeWeek">
|
<PropertyDef name="type">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="fromPerWeek">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">SUN</Property>
|
</PropertyDef>
|
<PropertyDef name="perWeek">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">SUN</Property>
|
</PropertyDef>
|
<PropertyDef name="fromWeek">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">SUN</Property>
|
</PropertyDef>
|
<PropertyDef name="toWeek">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">SUN</Property>
|
</PropertyDef>
|
<PropertyDef name="specificWeek">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">SUN</Property>
|
</PropertyDef>
|
<PropertyDef name="last">
|
<Property name="dataType">String</Property>
|
<Property name="defaultValue">SUN</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeCronDate">
|
<Property name="creationType">com.bstek.bdf2.job.view.job.CronDate</Property>
|
<PropertyDef name="date">
|
<Property name="dataType">DateTime</Property>
|
<Property name="label">执行日期</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="dataTypeJobInfo">
|
<Property name="creationType">com.bstek.bdf2.job.view.job.JobInfo</Property>
|
<PropertyDef name="beanId">
|
<Property name="dataType">String</Property>
|
<Property name="label">可用的Job的BeanId</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="$dataTypeJobCalendar">
|
<Property name="creationType">com.bstek.bdf2.job.model.JobCalendar</Property>
|
<PropertyDef name="id">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="desc">
|
<Property name="dataType">String</Property>
|
<Property name="label">描述</Property>
|
<Validator type="length">
|
<Property name="maxLength">120</Property>
|
<Property name="minLength">2</Property>
|
<Property name="resultMessage">长度需要在2~120之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="name">
|
<Property name="dataType">String</Property>
|
<Property name="label">日期名称</Property>
|
<Property name="required">true</Property>
|
<Validator type="length">
|
<Property name="maxLength">60</Property>
|
<Property name="minLength">2</Property>
|
<Property name="resultMessage">长度需要在2~60之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="companyId">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="type">
|
<Property name="label">类型</Property>
|
<Property name="mapping">
|
<Property name="mapValues">
|
<Collection>
|
<Entity>
|
<Property name="key">weekly</Property>
|
<Property name="value">星期中的某些天</Property>
|
</Entity>
|
<Entity>
|
<Property name="key">monthly</Property>
|
<Property name="value">月份中的某些天</Property>
|
</Entity>
|
<Entity>
|
<Property name="key">holiday</Property>
|
<Property name="value">具体日期</Property>
|
</Entity>
|
<Entity>
|
<Property name="key">annual</Property>
|
<Property name="value">每年都经历的日期</Property>
|
</Entity>
|
</Collection>
|
</Property>
|
<Property name="keyProperty">key</Property>
|
<Property name="valueProperty">value</Property>
|
</Property>
|
<Property name="defaultValue">holiday</Property>
|
<Property name="required">true</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="$dataTypeJobHistory">
|
<Property name="creationType">com.bstek.bdf2.job.model.JobHistory</Property>
|
<PropertyDef name="exceptionMessage">
|
<Property name="dataType">String</Property>
|
<Property name="label">异常消息</Property>
|
</PropertyDef>
|
<PropertyDef name="id">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="startDate">
|
<Property name="dataType">Date</Property>
|
<Property name="label">执行开始时间</Property>
|
<Property name="displayFormat">Y-m-d H:i:s</Property>
|
</PropertyDef>
|
<PropertyDef name="jobId">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="endDate">
|
<Property name="dataType">Date</Property>
|
<Property name="label">执行结束时间</Property>
|
<Property name="displayFormat">Y-m-d H:i:s</Property>
|
</PropertyDef>
|
<PropertyDef name="successful">
|
<Property name="dataType">boolean</Property>
|
<Property name="label">是否成功</Property>
|
</PropertyDef>
|
</DataType>
|
<DataType name="$dataTypeJobParameter">
|
<Property name="matchType">com.bstek.bdf2.job.model.JobParameter</Property>
|
<Property name="creationType">com.bstek.bdf2.job.model.JobParameter</Property>
|
<PropertyDef name="id">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="jobId">
|
<Property name="dataType">String</Property>
|
</PropertyDef>
|
<PropertyDef name="name">
|
<Property name="dataType">String</Property>
|
<Property name="label">属性名</Property>
|
<Property name="required">true</Property>
|
<Validator type="length">
|
<Property name="minLength">1</Property>
|
<Property name="maxLength">60</Property>
|
<Property name="resultMessage">长度需要在1~60之间</Property>
|
</Validator>
|
</PropertyDef>
|
<PropertyDef name="value">
|
<Property name="dataType">String</Property>
|
<Property name="label">属性值</Property>
|
<Property name="required">true</Property>
|
<Validator type="length">
|
<Property name="minLength">1</Property>
|
<Property name="maxLength">120</Property>
|
<Property name="resultMessage">长度需要在1~120之间</Property>
|
</Validator>
|
</PropertyDef>
|
</DataType>
|
</Model>
|
<View>
|
<DataSet id="dataSetSecond">
|
<ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent>
|
<Property name="dataType">dataTypeSecond</Property>
|
</DataSet>
|
<DataSet id="dataSetCalendar">
|
<Property name="dataType">[$dataTypeJobCalendar]</Property>
|
<Property name="dataProvider">bdf2.jobMaintain#loadAllCalendars</Property>
|
</DataSet>
|
<DataSet id="dataSetMinute">
|
<ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent>
|
<Property name="dataType">dataTypeMinute</Property>
|
</DataSet>
|
<DataSet id="dataSetHour">
|
<ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent>
|
<Property name="dataType">dataTypeHour</Property>
|
</DataSet>
|
<DataSet id="dataSetDay">
|
<ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent>
|
<Property name="dataType">dataTypeDay</Property>
|
</DataSet>
|
<DataSet id="dataSetMonth">
|
<ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent>
|
<Property name="dataType">dataTypeMonth</Property>
|
</DataSet>
|
<DataSet id="dataSetWeek">
|
<ClientEvent name="onReady">self.insert({type:"all"});</ClientEvent>
|
<Property name="dataType">dataTypeWeek</Property>
|
</DataSet>
|
<DataSet id="dataSetJob">
|
<Property name="dataType">[dataTypeJob]</Property>
|
<Property name="pageSize">20</Property>
|
<Property name="dataProvider">bdf2.jobMaintain#loadJobs</Property>
|
</DataSet>
|
<DataSet id="dataSetJobInfo">
|
<Property name="dataType">[dataTypeJobInfo]</Property>
|
<Property name="dataProvider">bdf2.jobMaintain#loadJobInfos</Property>
|
</DataSet>
|
<SplitPanel>
|
<Property name="position">900</Property>
|
<MainControl>
|
<TabControl>
|
<ControlTab>
|
<Property name="caption">Job执行排除假期</Property>
|
<Container>
|
<ToolBar>
|
<ToolBarLabel>
|
<Property name="text">菜单:</Property>
|
</ToolBarLabel>
|
<DataPilot>
|
<ClientEvent name="onSubControlAction">var ds=view.id("dataSetJob");
|
var jobData=ds.getData("#");
|
switch(arg.code){
|
case "+":
|
if(!jobData){
|
dorado.MessageBox.alert("请先选中一Job");
|
}else{
|
var state=jobData.get("state");
|
if(state!="stop" && state!="ready"){
|
dorado.MessageBox.alert("Job必须处于停止或待命时才能进行此操作");
|
}else{
|
view.id("dialogCalendarSelect").show();
|
}
|
}
|
break;
|
case "-":
|
var state=jobData.get("state");
|
if(state!="stop" && state!="ready"){
|
dorado.MessageBox.alert("Job必须处于停止或待命时才能进行此操作");
|
}else{
|
dorado.MessageBox.confirm("真的要删除当前日期",function(){
|
var calendarId=ds.getData("#.#calendars.id");
|
var action=view.id("ajaxActionSaveCalendar");
|
action.set("parameter",{calendarId:calendarId,jobId:jobData.get("id"),operation:"del"});
|
action.execute(function(){
|
jobData.reset("calendars");
|
}); 
|
});
|
}
|
break;
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="dataPath">#.calendars</Property>
|
<Property name="itemCodes">+,-</Property>
|
</DataPilot>
|
</ToolBar>
|
<DataGrid>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="dataPath">#.calendars</Property>
|
<Property name="readOnly">true</Property>
|
<DataColumn name="name">
|
<Property name="property">name</Property>
|
</DataColumn>
|
<DataColumn name="desc">
|
<Property name="property">desc</Property>
|
</DataColumn>
|
</DataGrid>
|
<Dialog id="dialogCalendarSelect">
|
<Property name="width">500</Property>
|
<Property name="height">500</Property>
|
<Property name="center">true</Property>
|
<Property name="modal">true</Property>
|
<Buttons>
|
<Button>
|
<ClientEvent name="onClick">var data=view.id("dataSetCalendar").getData("#");
|
if(data){
|
var calendarId=data.get("id");
|
var jobData=view.id("dataSetJob");
|
var calendars=jobData.getData("#.calendars");
|
var error=false;
|
if(calendars){
|
calendars.each(function(c){
|
if(calendarId==c.get("id")){
|
error=true;
|
return false;
|
}
|
});
|
}
|
if(error){
|
dorado.MessageBox.alert("日期已存在");
|
return;
|
}
|
var jobId=jobData.getData("#.id");
|
var action=view.id("ajaxActionSaveCalendar");
|
action.set("parameter",{calendarId:calendarId,jobId:jobId,operation:"add"});
|
action.execute(function(){
|
jobData.getData("#").reset("calendars");
|
view.id("dialogCalendarSelect").hide();
|
});
|
}else{
|
dorado.MessageBox.alert("请先选中一个日期");
|
}</ClientEvent>
|
<Property name="caption">确认</Property>
|
<Property name="icon">url(skin>common/icons.gif) -140px -20px</Property>
|
</Button>
|
<Button>
|
<ClientEvent name="onClick">view.id("dialogCalendarSelect").hide();</ClientEvent>
|
<Property name="caption">取消</Property>
|
<Property name="icon">url(skin>common/icons.gif) -40px 0px</Property>
|
</Button>
|
</Buttons>
|
<Children>
|
<DataGrid>
|
<Property name="dataSet">dataSetCalendar</Property>
|
<Property name="readOnly">true</Property>
|
<DataColumn name="name">
|
<Property name="property">name</Property>
|
</DataColumn>
|
<DataColumn name="desc">
|
<Property name="property">desc</Property>
|
</DataColumn>
|
</DataGrid>
|
<AjaxAction id="ajaxActionSaveCalendar">
|
<Property name="service">bdf2.jobMaintain#saveJobCalendars</Property>
|
<Property name="successMessage">操作成功</Property>
|
</AjaxAction>
|
</Children>
|
<Tools/>
|
</Dialog>
|
</Container>
|
</ControlTab>
|
<ControlTab>
|
<Property name="caption">Job运行历史</Property>
|
<Container>
|
<ToolBar>
|
<ToolBarLabel>
|
<Property name="text">菜单:</Property>
|
</ToolBarLabel>
|
<ToolBarButton>
|
<ClientEvent name="onClick">var data=view.id("dataSetJob").getData("#");
|
var selection=view.id("dataGridHistory").get("selection");
|
if(selection.length<1){
|
dorado.MessageBox.alert("请先选中要删除的历史");
|
return;
|
}
|
var jobHistoryIds=[];
|
selection.each(function(entity){
|
var id=entity.get("id");
|
jobHistoryIds.push(id);
|
});
|
dorado.MessageBox.confirm("真的要删除这些选中的历史",function(){
|
var action=view.id("ajaxActionDeleteHistory");
|
action.set("parameter",{jobHistoryIds:jobHistoryIds});
|
action.execute(function(){
|
data.reset("histories");
|
});
|
});</ClientEvent>
|
<Property name="caption">删除</Property>
|
<Property name="icon">url(skin>common/icons.gif) -40px 0px</Property>
|
<Property name="tip">删除勾选数据</Property>
|
<Property name="width">80</Property>
|
</ToolBarButton>
|
</ToolBar>
|
<DataGrid id="dataGridHistory">
|
<ClientEvent name="onDoubleClick">if(view.id("dataSetJob").getData("#.#histories")){
|
view.id("dialogExceptionInfo").show();
|
}else{
|
dorado.MessageBox.alert("当前没有选中记录,没有异常消息可供查看");
|
}</ClientEvent>
|
<Property name="dataPath">#.histories</Property>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="readOnly">true</Property>
|
<Property name="selectionMode">multiRows</Property>
|
<Property name="tip">双击以查看异常消息</Property>
|
<RowSelectorColumn/>
|
<DataColumn name="startDate">
|
<Property name="property">startDate</Property>
|
</DataColumn>
|
<DataColumn name="endDate">
|
<Property name="property">endDate</Property>
|
</DataColumn>
|
<DataColumn name="successful">
|
<ClientEvent name="onRenderCell">var successful=arg.data.get("successful");
|
if(successful){
|
arg.dom.innerHTML="<font color='green'>成功</font>";
|
}else{
|
arg.dom.innerHTML="<font color='red'>失败</font>";
|
}</ClientEvent>
|
<Property name="property">successful</Property>
|
</DataColumn>
|
</DataGrid>
|
<Dialog id="dialogExceptionInfo">
|
<Property name="width">500</Property>
|
<Property name="height">400</Property>
|
<Property name="center">true</Property>
|
<Property name="caption">Job执行异常消息</Property>
|
<Property name="maximizeable">true</Property>
|
<Buttons/>
|
<Children>
|
<TextArea>
|
<Property name="dataPath">#.#histories</Property>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="property">exceptionMessage</Property>
|
</TextArea>
|
</Children>
|
<Tools/>
|
</Dialog>
|
<AjaxAction id="ajaxActionDeleteHistory">
|
<Property name="service">bdf2.jobMaintain#deleteJobHistory</Property>
|
<Property name="successMessage">操作成功</Property>
|
</AjaxAction>
|
<ToolBar layoutConstraint="bottom">
|
<Fill/>
|
<DataPilot>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="dataPath">#.histories</Property>
|
<Property name="itemCodes">pages</Property>
|
</DataPilot>
|
</ToolBar>
|
</Container>
|
</ControlTab>
|
<ControlTab>
|
<Property name="caption">Job运行参数</Property>
|
<Property name="visible">false</Property>
|
<Container>
|
<ToolBar>
|
<DataPilot>
|
<ClientEvent name="onSubControlAction">var ds=view.id("dataSetJob");
|
var state=ds.getData("#.state");
|
switch(arg.code){
|
case "+":
|
if(state!="stop" && state!="ready"){
|
dorado.MessageBox.alert("Job必须处于停止或待命时才能进行此操作");
|
}else{
|
var jobId=ds.getData("#.id");
|
var data=ds.getData("#.parameters");
|
data.insert({jobId:jobId});
|
}
|
break;
|
case "-":
|
if(state!="stop" && state!="ready"){
|
dorado.MessageBox.alert("Job必须处于停止或待命时才能进行此操作");
|
}else{
|
var data=ds.getData("#.#parameters");
|
data.remove();
|
}
|
break;
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="itemCodes">+,-</Property>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="dataPath">#.parameters</Property>
|
</DataPilot>
|
<ToolBarButton>
|
<Property name="caption">保存</Property>
|
<Property name="action">updateActionSaveParameters</Property>
|
<Property name="icon">url(skin>common/icons.gif) -140px -20px</Property>
|
</ToolBarButton>
|
</ToolBar>
|
<DataGrid>
|
<Property name="dataPath">#.parameters</Property>
|
<Property name="dataSet">dataSetJob</Property>
|
<DataColumn>
|
<Property name="property">name</Property>
|
<Property name="name">name</Property>
|
<Editor/>
|
</DataColumn>
|
<DataColumn>
|
<Property name="property">value</Property>
|
<Property name="name">value</Property>
|
<Editor/>
|
</DataColumn>
|
</DataGrid>
|
<UpdateAction id="updateActionSaveParameters">
|
<Property name="dataResolver">bdf2.jobMaintain#saveJobParameters</Property>
|
<Property name="successMessage">操作成功</Property>
|
<UpdateItem>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="dataPath">#.parameters[#dirty]</Property>
|
</UpdateItem>
|
</UpdateAction>
|
</Container>
|
</ControlTab>
|
</TabControl>
|
</MainControl>
|
<SideControl>
|
<Container>
|
<ToolBar>
|
<DataPilot>
|
<ClientEvent name="onSubControlAction">switch(arg.code){
|
case "+":
|
view.id("dataSetJob").insert();
|
view.id("dialogJob").show();
|
break;
|
case "-":
|
var data=view.id("dataSetJob").getData("#");
|
if(data.get("state")!=="stop" && data.get("state")!=="ready"){
|
dorado.MessageBox.alert("要删除的Job必须为停止或待命状态,否则不能删除");
|
}else{
|
dorado.MessageBox.confirm("真的要删除当前Job",function(){
|
data.remove();
|
view.id("updateActionSaveJob").execute();
|
});
|
}
|
break;
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="itemCodes">pages,+,-</Property>
|
</DataPilot>
|
<ToolBarButton>
|
<ClientEvent name="onClick">var data=view.id("dataSetJob").getData("#");
|
if(data){
|
var state=data.get("state");
|
if(state=="running" || state=="run"){
|
dorado.MessageBox.alert("只有当Job状态为待命及停止时才可进行编辑操作");
|
return;
|
}
|
view.id("dialogJob").show();
|
}else{
|
dorado.MessageBox.alert("当前没有数据可供修改");
|
}</ClientEvent>
|
<Property name="caption">修改</Property>
|
<Property name="icon">url(skin>common/icons.gif) -200px 0px</Property>
|
</ToolBarButton>
|
<ToolBarButton>
|
<ClientEvent name="onClick">var data=view.id("dataSetJob").getData("#");
|
if(data){
|
var state=data.get("state");
|
if(state=="running"){
|
dorado.MessageBox.alert("当前Job正处于启动中状态,不能再次执行启动动作");
|
return;
|
}
|
if(state=="run"){
|
dorado.MessageBox.alert("当前Job正处于启动状态,不能再次执行启动动作");
|
return;
|
}
|
dorado.MessageBox.confirm("真的要启动当前任务?",function(){
|
var action=view.id("ajaxActionRunJob");
|
action.set("parameter",{jobDefinitionId:data.get("id")});
|
action.execute(function(){
|
data.set("state","running");
|
data.setState(dorado.Entity.STATE_NONE);
|
}); 
|
});
|
}else{
|
dorado.MessageBox.alert("当前没有数据可供操作");
|
}
|

|
</ClientEvent>
|
<Property name="caption">启动任务</Property>
|
<Property name="icon">url(skin>common/icons.gif) -180px -220px</Property>
|
</ToolBarButton>
|
<ToolBarButton>
|
<ClientEvent name="onClick">var data=view.id("dataSetJob").getData("#");
|
if(data){
|
var state=data.get("state");
|
if(state=="stopping"){
|
dorado.MessageBox.alert("当前Job正处于停止中状态,不能再次执行停止动作");
|
return;
|
}
|
if(state=="stop"){
|
dorado.MessageBox.alert("当前Job正处于停止状态,不能再次执行停止动作");
|
return;
|
}
|
dorado.MessageBox.confirm("真的要停止当前任务?",function(){
|
var action=view.id("ajaxActionStopJob");
|
action.set("parameter",{jobDefinitionId:data.get("id")});
|
action.execute(function(){
|
data.set("state","stopping");
|
data.setState(dorado.Entity.STATE_NONE);
|
}); 
|
});
|
}else{
|
dorado.MessageBox.alert("当前没有数据可供操作");
|
}
|

|
</ClientEvent>
|
<Property name="caption">停止任务</Property>
|
<Property name="icon">url(skin>common/icons.gif) -240px -220px</Property>
|
</ToolBarButton>
|
<Separator/>
|
<ToolBarButton>
|
<ClientEvent name="onClick">var select = view.get("#dataGridJob.selection");
|
if(select){
|
view.get("#dialogException").show();
|
}else{
|
$alert("请先选择需要执行的JOB");
|
}</ClientEvent>
|
<Property name="icon">url(>skin>common/icons.gif) -80px -0px</Property>
|
<Property name="caption">宕机处理</Property>
|
</ToolBarButton>
|
</ToolBar>
|
<DataGrid id="dataGridJob">
|
<ClientEvent name="onDataRowDoubleClick">var data=view.id("dataSetJob").getData("#");
|
if(data){
|
var state=data.get("state");
|
if(state=="running" || state=="run"){
|
dorado.MessageBox.alert("只有当Job状态为待命及停止时才可进行编辑操作");
|
return;
|
}
|
view.id("dialogJob").show();
|
}else{
|
dorado.MessageBox.alert("当前没有数据可供修改");
|
}</ClientEvent>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="readOnly">true</Property>
|
<Property name="filterMode">serverSide</Property>
|
<Property name="showFilterBar">true</Property>
|
<Property name="selectionMode">singleRow</Property>
|
<RowSelectorColumn/>
|
<DataColumn name="name">
|
<Property name="property">name</Property>
|
<Property name="width">120</Property>
|
</DataColumn>
|
<DataColumn name="beanId">
|
<Property name="property">beanId</Property>
|
<Property name="width">230</Property>
|
</DataColumn>
|
<DataColumn>
|
<ClientEvent name="onRenderCell">var state=arg.data.get("state");
|
if(state=="ready"){
|
arg.dom.innerHTML="<strong><font color='blue'>待命</font></strong>";
|
}
|
if(state=="running"){
|
arg.dom.innerHTML="<font color='blue'>启动中</font>";
|
}
|
if(state=="run"){
|
arg.dom.innerHTML="<strong><font color='green'>运行中</font></strong>";
|
}
|
if(state=="pausing"){
|
arg.dom.innerHTML="<font color='yellow'>暂停中</font>";
|
}
|
if(state=="pause"){
|
arg.dom.innerHTML="<strong><font color='yellow'>暂停</font></strong>";
|
}
|
if(state=="stopping"){
|
arg.dom.innerHTML="<font color='red'>停止中</font>";
|
}
|
if(state=="stop"){
|
arg.dom.innerHTML="<strong><font color='red'>停止</font></strong>";
|
}
|
</ClientEvent>
|
<Property name="property">state</Property>
|
<Property name="name">state</Property>
|
<Property name="width">100</Property>
|
<Property name="filterable">false</Property>
|
<Editor/>
|
</DataColumn>
|
<DataColumn name="cronExpression">
|
<Property name="property">cronExpression</Property>
|
<Property name="width">160</Property>
|
<Property name="filterable">false</Property>
|
</DataColumn>
|
<DataColumn name="desc">
|
<Property name="property">desc</Property>
|
<Property name="filterable">false</Property>
|
</DataColumn>
|
</DataGrid>
|
<Dialog id="dialogCron">
|
<Property name="center">true</Property>
|
<Property name="width">550</Property>
|
<Property name="height">300</Property>
|
<Property name="maximizeable">true</Property>
|
<Property name="modal">true</Property>
|
<Property name="closeable">false</Property>
|
<Property name="caption">Job信息编辑</Property>
|
<Buttons>
|
<Button>
|
<ClientEvent name="onClick">var cron=view.id("autoFormCronExp").get("entity").cron;
|
view.id("dataSetJob").getData("#").set("cronExpression",cron);
|
view.id("dialogCron").hide();</ClientEvent>
|
<Property name="caption">确认</Property>
|
<Property name="icon">url(skin>common/icons.gif) -140px -20px</Property>
|
</Button>
|
<Button>
|
<ClientEvent name="onClick">view.id("dialogCron").hide();</ClientEvent>
|
<Property name="caption">取消</Property>
|
<Property name="icon">url(skin>common/icons.gif) -40px 0px</Property>
|
</Button>
|
</Buttons>
|
<Children>
|
<TabControl>
|
<Property name="height">130</Property>
|
<ControlTab>
|
<Property name="caption">秒</Property>
|
<Container>
|
<AutoForm>
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">类型</Property>
|
<Property name="name">type</Property>
|
<Editor>
|
<RadioGroup>
|
<ClientEvent name="onValueChange">view.id("autoFormPerSecond").set("visible",false);
|
view.id("autoFormRegionSecond").set("visible",false);
|
view.id("autoFormSpecificSecond").set("visible",false);
|
var value=self.get("value");
|
if(value=="per"){
|
view.id("autoFormPerSecond").set("visible",true);
|
}
|
if(value=="region"){
|
view.id("autoFormRegionSecond").set("visible",true);
|
}
|
if(value=="specific"){
|
view.id("autoFormSpecificSecond").set("visible",true);
|
}</ClientEvent>
|
<Property name="value">all</Property>
|
<Property name="dataSet">dataSetSecond</Property>
|
<Property name="property">type</Property>
|
<RadioButton>
|
<Property name="value">all</Property>
|
<Property name="text">所有秒</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">每隔多少秒</Property>
|
<Property name="value">per</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">秒区段</Property>
|
<Property name="value">region</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">特定秒</Property>
|
<Property name="value">specific</Property>
|
</RadioButton>
|
</RadioGroup>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<Container>
|
<AutoForm id="autoFormPerSecond">
|
<Property name="labelAlign">right</Property>
|
<Property name="cols">*</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="name">per</Property>
|
<Property name="label">从第</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetSecond</Property>
|
<Property name="property">fromPerSecond</Property>
|
<Property name="trigger">listDropDownSelectSecond</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">秒开始,每隔</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetSecond</Property>
|
<Property name="property">perSecond</Property>
|
<Property name="trigger">listDropDownSelectSecond</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">秒执行一次</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormRegionSecond">
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="label">在第</Property>
|
<Property name="name">region</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetSecond</Property>
|
<Property name="property">fromSecond</Property>
|
<Property name="trigger">listDropDownSelectSecond</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">秒到</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataType">int</Property>
|
<Property name="dataSet">dataSetSecond</Property>
|
<Property name="property">toSecond</Property>
|
<Property name="trigger">listDropDownSelectSecond</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">秒区间执行</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormSpecificSecond">
|
<Property name="cols">*</Property>
|
<Property name="hideMode">display</Property>
|
<Property name="visible">false</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">选择秒</Property>
|
<Property name="name">specific</Property>
|
<Editor>
|
<TagEditor>
|
<Property name="trigger">listDropDownSecond</Property>
|
<Property name="editable">false</Property>
|
<Property name="dataSet">dataSetSecond</Property>
|
<Property name="property">specificSecond</Property>
|
</TagEditor>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<ListDropDown id="listDropDownSecond">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=0;i<60;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
|
var data=view.id("dataSetSecond").getData();
|
var orgValue=data.get("specificSecond");
|
var ok=true;
|
if(orgValue){
|
var value=orgValue.split(",");
|
for(var i=0;i<value.length;i++){
|
if(value[i]==selectedValue){
|
ok=false;
|
break;
|
}
|
}
|
orgValue+=","+selectedValue;
|
}else{
|
orgValue=selectedValue;
|
}
|
if(ok){
|
data.set("specificSecond",orgValue);
|
}else{
|
dorado.MessageBox.alert("当前值已选择");
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
<ListDropDown id="listDropDownSelectSecond">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=0;i<60;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
</Container>
|
</Container>
|
</ControlTab>
|
<ControlTab>
|
<Property name="caption">分钟</Property>
|
<Container>
|
<AutoForm>
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">类型</Property>
|
<Property name="name">type</Property>
|
<Editor>
|
<RadioGroup>
|
<ClientEvent name="onValueChange">view.id("autoFormPerMinute").set("visible",false);
|
view.id("autoFormRegionMinute").set("visible",false);
|
view.id("autoFormSpecificMinute").set("visible",false);
|
var value=self.get("value");
|
if(value=="per"){
|
view.id("autoFormPerMinute").set("visible",true);
|
}
|
if(value=="region"){
|
view.id("autoFormRegionMinute").set("visible",true);
|
}
|
if(value=="specific"){
|
view.id("autoFormSpecificMinute").set("visible",true);
|
}</ClientEvent>
|
<Property name="value">all</Property>
|
<Property name="dataSet">dataSetMinute</Property>
|
<Property name="property">type</Property>
|
<RadioButton>
|
<Property name="value">all</Property>
|
<Property name="text">所有分钟</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">每隔多少分钟</Property>
|
<Property name="value">per</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">分钟区段</Property>
|
<Property name="value">region</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">特定分钟</Property>
|
<Property name="value">specific</Property>
|
</RadioButton>
|
</RadioGroup>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<Container>
|
<AutoForm id="autoFormPerMinute">
|
<Property name="labelAlign">right</Property>
|
<Property name="cols">*</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="name">per</Property>
|
<Property name="label">从第</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetMinute</Property>
|
<Property name="property">fromPerMinute</Property>
|
<Property name="trigger">listDropDownSelectMinute</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">分钟开始,每隔</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetMinute</Property>
|
<Property name="property">perMinute</Property>
|
<Property name="trigger">listDropDownSelectMinute</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">分钟执行一次</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormRegionMinute">
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="label">在第</Property>
|
<Property name="name">region</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetMinute</Property>
|
<Property name="property">fromMinute</Property>
|
<Property name="trigger">listDropDownSelectMinute</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">分钟到</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetMinute</Property>
|
<Property name="property">toMinute</Property>
|
<Property name="trigger">listDropDownSelectMinute</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">分钟区间执行</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormSpecificMinute">
|
<Property name="cols">*</Property>
|
<Property name="hideMode">display</Property>
|
<Property name="visible">false</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">选择秒</Property>
|
<Property name="name">specific</Property>
|
<Editor>
|
<TagEditor>
|
<Property name="trigger">listDropDownMinute</Property>
|
<Property name="editable">false</Property>
|
<Property name="dataSet">dataSetMinute</Property>
|
<Property name="property">specificMinute</Property>
|
</TagEditor>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<ListDropDown id="listDropDownMinute">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=0;i<60;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
|
var data=view.id("dataSetMinute").getData();
|
var orgValue=data.get("specificMinute");
|
var ok=true;
|
if(orgValue){
|
var value=orgValue.split(",");
|
for(var i=0;i<value.length;i++){
|
if(value[i]==selectedValue){
|
ok=false;
|
break;
|
}
|
}
|
orgValue+=","+selectedValue;
|
}else{
|
orgValue=selectedValue;
|
}
|
if(ok){
|
data.set("specificMinute",orgValue);
|
}else{
|
dorado.MessageBox.alert("当前值已选择");
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
<ListDropDown id="listDropDownSelectMinute">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=0;i<60;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
</Container>
|
</Container>
|
</ControlTab>
|
<ControlTab>
|
<Property name="caption">小时</Property>
|
<Container>
|
<AutoForm>
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">类型</Property>
|
<Property name="name">type</Property>
|
<Editor>
|
<RadioGroup>
|
<ClientEvent name="onValueChange">view.id("autoFormPerHour").set("visible",false);
|
view.id("autoFormRegionHour").set("visible",false);
|
view.id("autoFormSpecificHour").set("visible",false);
|
var value=self.get("value");
|
if(value=="per"){
|
view.id("autoFormPerHour").set("visible",true);
|
}
|
if(value=="region"){
|
view.id("autoFormRegionHour").set("visible",true);
|
}
|
if(value=="specific"){
|
view.id("autoFormSpecificHour").set("visible",true);
|
}</ClientEvent>
|
<Property name="value">all</Property>
|
<Property name="dataSet">dataSetHour</Property>
|
<Property name="property">type</Property>
|
<RadioButton>
|
<Property name="value">all</Property>
|
<Property name="text">所有小时</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">每隔多少小时</Property>
|
<Property name="value">per</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">小时区段</Property>
|
<Property name="value">region</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">特定小时</Property>
|
<Property name="value">specific</Property>
|
</RadioButton>
|
</RadioGroup>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<Container>
|
<AutoForm id="autoFormPerHour">
|
<Property name="labelAlign">right</Property>
|
<Property name="cols">*</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="name">per</Property>
|
<Property name="label">从第</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetHour</Property>
|
<Property name="property">fromPerHour</Property>
|
<Property name="trigger">listDropDownSelectHour</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">小时开始,每隔</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetHour</Property>
|
<Property name="property">perHour</Property>
|
<Property name="trigger">listDropDownSelectHour</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">小时执行一次</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormRegionHour">
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="label">在第</Property>
|
<Property name="name">region</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetHour</Property>
|
<Property name="property">fromHour</Property>
|
<Property name="trigger">listDropDownSelectHour</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">小时到</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetHour</Property>
|
<Property name="property">toHour</Property>
|
<Property name="trigger">listDropDownSelectHour</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">小时区间执行</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormSpecificHour">
|
<Property name="cols">*</Property>
|
<Property name="hideMode">display</Property>
|
<Property name="visible">false</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">选择小时</Property>
|
<Property name="name">specific</Property>
|
<Editor>
|
<TagEditor>
|
<Property name="trigger">listDropDownHour</Property>
|
<Property name="editable">false</Property>
|
<Property name="dataSet">dataSetHour</Property>
|
<Property name="property">specificHour</Property>
|
</TagEditor>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<ListDropDown id="listDropDownHour">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=0;i<24;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
|
var data=view.id("dataSetHour").getData();
|
var orgValue=data.get("specificHour");
|
var ok=true;
|
if(orgValue){
|
var value=orgValue.split(",");
|
for(var i=0;i<value.length;i++){
|
if(value[i]==selectedValue){
|
ok=false;
|
break;
|
}
|
}
|
orgValue+=","+selectedValue;
|
}else{
|
orgValue=selectedValue;
|
}
|
if(ok){
|
data.set("specificHour",orgValue);
|
}else{
|
dorado.MessageBox.alert("当前值已选择");
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
<ListDropDown id="listDropDownSelectHour">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=0;i<24;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
</Container>
|
</Container>
|
</ControlTab>
|
<ControlTab>
|
<Property name="caption">日期</Property>
|
<Container>
|
<AutoForm>
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">类型</Property>
|
<Property name="name">type</Property>
|
<Editor>
|
<RadioGroup>
|
<ClientEvent name="onValueChange">view.id("autoFormPerDay").set("visible",false);
|
view.id("autoFormRegionDay").set("visible",false);
|
view.id("autoFormSpecificDay").set("visible",false);
|
var value=self.get("value");
|
if(value=="per"){
|
view.id("autoFormPerDay").set("visible",true);
|
}
|
if(value=="region"){
|
view.id("autoFormRegionDay").set("visible",true);
|
}
|
if(value=="specific"){
|
view.id("autoFormSpecificDay").set("visible",true);
|
}</ClientEvent>
|
<Property name="value">all</Property>
|
<Property name="dataSet">dataSetDay</Property>
|
<Property name="property">type</Property>
|
<RadioButton>
|
<Property name="value">all</Property>
|
<Property name="text">所有日</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">每隔多少日</Property>
|
<Property name="value">per</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">日区段</Property>
|
<Property name="value">region</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">特定日</Property>
|
<Property name="value">specific</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">每月最后一天</Property>
|
<Property name="value">last</Property>
|
</RadioButton>
|
</RadioGroup>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<Container>
|
<AutoForm id="autoFormPerDay">
|
<Property name="labelAlign">right</Property>
|
<Property name="cols">*</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="name">per</Property>
|
<Property name="label">从第</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetDay</Property>
|
<Property name="property">fromPerDay</Property>
|
<Property name="trigger">listDropDownSelectDay</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">日开始,每隔</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetDay</Property>
|
<Property name="property">perDay</Property>
|
<Property name="trigger">listDropDownSelectDay</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">日执行一次</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormRegionDay">
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="label">在第</Property>
|
<Property name="name">region</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetDay</Property>
|
<Property name="property">fromDay</Property>
|
<Property name="trigger">listDropDownSelectDay</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">日到</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetDay</Property>
|
<Property name="property">toDay</Property>
|
<Property name="trigger">listDropDownSelectDay</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">日区间执行</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormSpecificDay">
|
<Property name="cols">*</Property>
|
<Property name="hideMode">display</Property>
|
<Property name="visible">false</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">选择日期</Property>
|
<Property name="name">specific</Property>
|
<Editor>
|
<TagEditor>
|
<Property name="trigger">listDropDownDay</Property>
|
<Property name="editable">false</Property>
|
<Property name="dataSet">dataSetDay</Property>
|
<Property name="property">specificDay</Property>
|
</TagEditor>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<ListDropDown id="listDropDownDay">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=1;i<32;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
|
var data=view.id("dataSetDay").getData();
|
var orgValue=data.get("specificDay");
|
var ok=true;
|
if(orgValue){
|
var value=orgValue.split(",");
|
for(var i=0;i<value.length;i++){
|
if(value[i]==selectedValue){
|
ok=false;
|
break;
|
}
|
}
|
orgValue+=","+selectedValue;
|
}else{
|
orgValue=selectedValue;
|
}
|
if(ok){
|
data.set("specificDay",orgValue);
|
}else{
|
dorado.MessageBox.alert("当前值已选择");
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
<ListDropDown id="listDropDownSelectDay">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=1;i<32;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
</Container>
|
</Container>
|
</ControlTab>
|
<ControlTab>
|
<Property name="caption">月份</Property>
|
<Container>
|
<AutoForm>
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">类型</Property>
|
<Property name="name">type</Property>
|
<Editor>
|
<RadioGroup>
|
<ClientEvent name="onValueChange">view.id("autoFormPerMonth").set("visible",false);
|
view.id("autoFormRegionMonth").set("visible",false);
|
view.id("autoFormSpecificMonth").set("visible",false);
|
var value=self.get("value");
|
if(value=="per"){
|
view.id("autoFormPerMonth").set("visible",true);
|
}
|
if(value=="region"){
|
view.id("autoFormRegionMonth").set("visible",true);
|
}
|
if(value=="specific"){
|
view.id("autoFormSpecificMonth").set("visible",true);
|
}</ClientEvent>
|
<Property name="value">all</Property>
|
<Property name="dataSet">dataSetMonth</Property>
|
<Property name="property">type</Property>
|
<RadioButton>
|
<Property name="value">all</Property>
|
<Property name="text">所有月份</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">每隔多少月</Property>
|
<Property name="value">per</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">月份区段</Property>
|
<Property name="value">region</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">特定月份</Property>
|
<Property name="value">specific</Property>
|
</RadioButton>
|
</RadioGroup>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<Container>
|
<AutoForm id="autoFormPerMonth">
|
<Property name="labelAlign">right</Property>
|
<Property name="cols">*</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="name">per</Property>
|
<Property name="label">从第</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetMonth</Property>
|
<Property name="property">fromPerMonth</Property>
|
<Property name="trigger">listDropDownSelectMonth</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">月开始,每隔</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetMonth</Property>
|
<Property name="property">perMonth</Property>
|
<Property name="trigger">listDropDownSelectMonth</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">月执行一次</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormRegionMonth">
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="label">在第</Property>
|
<Property name="name">region</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetMonth</Property>
|
<Property name="property">fromMonth</Property>
|
<Property name="trigger">listDropDownSelectMonth</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">月到</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetMonth</Property>
|
<Property name="property">toMonth</Property>
|
<Property name="trigger">listDropDownSelectMonth</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">月区间执行</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormSpecificMonth">
|
<Property name="cols">*</Property>
|
<Property name="hideMode">display</Property>
|
<Property name="visible">false</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">选择小时</Property>
|
<Property name="name">specific</Property>
|
<Editor>
|
<TagEditor>
|
<Property name="trigger">listDropDownMonth</Property>
|
<Property name="editable">false</Property>
|
<Property name="dataSet">dataSetMonth</Property>
|
<Property name="property">specificMonth</Property>
|
</TagEditor>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<ListDropDown id="listDropDownMonth">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=1;i<13;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
|
var data=view.id("dataSetMonth").getData();
|
var orgValue=data.get("specificMonth");
|
var ok=true;
|
if(orgValue){
|
var value=orgValue.split(",");
|
for(var i=0;i<value.length;i++){
|
if(value[i]==selectedValue){
|
ok=false;
|
break;
|
}
|
}
|
orgValue+=","+selectedValue;
|
}else{
|
orgValue=selectedValue;
|
}
|
if(ok){
|
data.set("specificMonth",orgValue);
|
}else{
|
dorado.MessageBox.alert("当前值已选择");
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
<ListDropDown id="listDropDownSelectMonth">
|
<ClientEvent name="onReady">var seconds=[];
|
for(var i=1;i<13;i++){
|
seconds.push(i);
|
}
|
self.set("items",seconds);</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
</Container>
|
</Container>
|
</ControlTab>
|
<ControlTab>
|
<Property name="caption">星期</Property>
|
<Container>
|
<AutoForm>
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">类型</Property>
|
<Property name="name">type</Property>
|
<Editor>
|
<RadioGroup>
|
<ClientEvent name="onValueChange">view.id("autoFormPerWeek").set("visible",false);
|
view.id("autoFormRegionWeek").set("visible",false);
|
view.id("autoFormSpecificWeek").set("visible",false);
|
view.id("autoFormLastWeek").set("visible",false);
|
var value=self.get("value");
|
if(value=="per"){
|
view.id("autoFormPerWeek").set("visible",true);
|
}
|
if(value=="region"){
|
view.id("autoFormRegionWeek").set("visible",true);
|
}
|
if(value=="specific"){
|
view.id("autoFormSpecificWeek").set("visible",true);
|
}
|
if(value=="last"){
|
view.id("autoFormLastWeek").set("visible",true);
|
}</ClientEvent>
|
<Property name="value">all</Property>
|
<Property name="dataSet">dataSetWeek</Property>
|
<Property name="property">type</Property>
|
<RadioButton>
|
<Property name="value">all</Property>
|
<Property name="text">所有星期</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">每隔多少星期天数</Property>
|
<Property name="value">per</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">星期区段</Property>
|
<Property name="value">region</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">特定星期</Property>
|
<Property name="value">specific</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">每月最后一个星期</Property>
|
<Property name="value">last</Property>
|
</RadioButton>
|
</RadioGroup>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<Container>
|
<AutoForm id="autoFormPerWeek">
|
<Property name="labelAlign">right</Property>
|
<Property name="cols">*</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="name">per</Property>
|
<Property name="label">从星期</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetWeek</Property>
|
<Property name="property">fromPerWeek</Property>
|
<Property name="trigger">listDropDownSelectWeek</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">开始,每隔</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetWeek</Property>
|
<Property name="property">perWeek</Property>
|
<Property name="trigger">listDropDownSelectWeek</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">日执行一次</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormRegionWeek">
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<AutoFormElement>
|
<Property name="label">在星期</Property>
|
<Property name="name">region</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetWeek</Property>
|
<Property name="property">fromWeek</Property>
|
<Property name="trigger">listDropDownSelectWeek</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">到星期</Property>
|
</Label>
|
<TextEditor>
|
<Property name="dataSet">dataSetWeek</Property>
|
<Property name="property">toWeek</Property>
|
<Property name="trigger">listDropDownSelectWeek</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">区间执行</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormSpecificWeek">
|
<Property name="cols">*</Property>
|
<Property name="hideMode">display</Property>
|
<Property name="visible">false</Property>
|
<Property name="labelAlign">right</Property>
|
<AutoFormElement>
|
<Property name="label">选择星期</Property>
|
<Property name="name">specific</Property>
|
<Editor>
|
<TagEditor>
|
<Property name="trigger">listDropDownWeek</Property>
|
<Property name="editable">false</Property>
|
<Property name="dataSet">dataSetWeek</Property>
|
<Property name="property">specificWeek</Property>
|
</TagEditor>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<AutoForm id="autoFormLastWeek">
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="visible">false</Property>
|
<Property name="hideMode">display</Property>
|
<Property name="labelWidth">150</Property>
|
<AutoFormElement>
|
<Property name="label">每月最后一个星期的星期</Property>
|
<Property name="name">last</Property>
|
<Property name="labelSeparator"> </Property>
|
<Editor>
|
<Container layout="hbox">
|
<TextEditor>
|
<Property name="dataSet">dataSetWeek</Property>
|
<Property name="property">last</Property>
|
<Property name="trigger">listDropDownSelectWeek</Property>
|
<Property name="editable">false</Property>
|
<Property name="width">90</Property>
|
</TextEditor>
|
<Label>
|
<Property name="text">执行</Property>
|
</Label>
|
</Container>
|
</Editor>
|
</AutoFormElement>
|
</AutoForm>
|
<ListDropDown id="listDropDownWeek">
|
<ClientEvent name="onReady">var seconds=[];
|
seconds.push("SUN");
|
seconds.push("MON");
|
seconds.push("TUE");
|
seconds.push("WED");
|
seconds.push("THU");
|
seconds.push("FRI");
|
seconds.push("SAT");
|
self.set("items",seconds);</ClientEvent>
|
<ClientEvent name="onValueSelect">var selectedValue=arg.selectedValue;
|
var data=view.id("dataSetWeek").getData();
|
var orgValue=data.get("specificWeek");
|
var ok=true;
|
if(orgValue){
|
var value=orgValue.split(",");
|
for(var i=0;i<value.length;i++){
|
if(value[i]==selectedValue){
|
ok=false;
|
break;
|
}
|
}
|
orgValue+=","+selectedValue;
|
}else{
|
orgValue=selectedValue;
|
}
|
if(ok){
|
data.set("specificWeek",orgValue);
|
}else{
|
dorado.MessageBox.alert("当前值已选择");
|
}
|
arg.processDefault=false;</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
<ListDropDown id="listDropDownSelectWeek">
|
<ClientEvent name="onReady">var weeks=[];
|
weeks.push("SUN");
|
weeks.push("MON");
|
weeks.push("TUE");
|
weeks.push("WED");
|
weeks.push("THU");
|
weeks.push("FRI");
|
weeks.push("SAT");
|
self.set("items",weeks);</ClientEvent>
|
<Property name="items"></Property>
|
</ListDropDown>
|
</Container>
|
</Container>
|
</ControlTab>
|
</TabControl>
|
<AutoForm id="autoFormCronExp">
|
<Property name="cols">330,*,*</Property>
|
<Property name="labelSpacing">1</Property>
|
<Property name="rowPadding">1</Property>
|
<Property name="colPadding">1</Property>
|
<Property name="padding">10</Property>
|
<AutoFormElement>
|
<Property name="label">Cron表达式</Property>
|
<Property name="name">cron</Property>
|
<Property name="hintWidth">2</Property>
|
<Property name="hintSpacing">2</Property>
|
<Editor/>
|
</AutoFormElement>
|
<Button layoutConstraint="align:left">
|
<ClientEvent name="onClick">var secondData=view.id("dataSetSecond").getData();
|
var secondExpression="";
|
var error=false;
|
switch(secondData.get("type")){
|
case "all":
|
secondExpression="*"
|
break;
|
case "per":
|
secondExpression=secondData.get("fromPerSecond")+"/"+secondData.get("perSecond")
|
break;
|
case "region":
|
var from=secondData.get("fromSecond");
|
var to=secondData.get("toSecond");
|
if(from>=to){
|
error=true;
|
dorado.MessageBox.alert("秒采用区间定义时,开始时间应该小于结束时间!");
|
break;
|
}
|
secondExpression=from+"-"+to;
|
break;
|
case "specific":
|
secondExpression=secondData.get("specificSecond");
|
if(!secondExpression){
|
error=true;
|
dorado.MessageBox.alert("秒采用特定值时,必须要填充至少一个特定值!");
|
}
|
break;
|
}
|
if(error){
|
return;
|
}
|
var minuteExpression="";
|
var minuteData=view.id("dataSetMinute").getData();
|
switch(minuteData.get("type")){
|
case "all":
|
minuteExpression="*"
|
break;
|
case "per":
|
minuteExpression=minuteData.get("fromPerMinute")+"/"+minuteData.get("perMinute")
|
break;
|
case "region":
|
var from=minuteData.get("fromMinute");
|
var to=minuteData.get("toMinute");
|
if(from>=to){
|
error=true;
|
dorado.MessageBox.alert("分钟采用区间定义时,开始时间应该小于结束时间!");
|
break;
|
}
|
minuteExpression=from+"-"+to;
|
break;
|
case "specific":
|
minuteExpression=minuteData.get("specificMinute");
|
if(!minuteExpression){
|
error=true;
|
dorado.MessageBox.alert("分钟采用特定值时,必须要填充至少一个特定值!");
|
}
|
break;
|
}
|
if(error){
|
return;
|
}
|

|
var hourExpression="";
|
var hourData=view.id("dataSetHour").getData();
|
switch(hourData.get("type")){
|
case "all":
|
hourExpression="*"
|
break;
|
case "per":
|
hourExpression=hourData.get("fromPerHour")+"/"+hourData.get("perHour")
|
break;
|
case "region":
|
var from=hourData.get("fromHour");
|
var to=hourData.get("toHour");
|
if(from>=to){
|
error=true;
|
dorado.MessageBox.alert("小时采用区间定义时,开始时间应该小于结束时间!");
|
break;
|
}
|
hourExpression=from+"-"+to;
|
break;
|
case "specific":
|
hourExpression=hourData.get("specificHour");
|
if(!hourExpression){
|
error=true;
|
dorado.MessageBox.alert("小时采用特定值时,必须要填充至少一个特定值!");
|
}
|
break;
|
}
|
if(error){
|
return;
|
}
|

|
var dayExpression="";
|
var dayData=view.id("dataSetDay").getData();
|
switch(dayData.get("type")){
|
case "all":
|
dayExpression="*"
|
break;
|
case "per":
|
dayExpression=dayData.get("fromPerDay")+"/"+dayData.get("perDay")
|
break;
|
case "region":
|
var from=dayData.get("fromDay");
|
var to=dayData.get("toDay");
|
if(from>=to){
|
error=true;
|
dorado.MessageBox.alert("日期采用区间定义时,开始时间应该小于结束时间!");
|
break;
|
}
|
dayExpression=from+"-"+to;
|
break;
|
case "specific":
|
dayExpression=dayData.get("specificDay");
|
if(!dayExpression){
|
error=true;
|
dorado.MessageBox.alert("日期采用特定值时,必须要填充至少一个特定值!");
|
} 
|
break;
|
case "last":
|
dayExpression="L";
|
break;
|
}
|
if(error){
|
return;
|
}
|

|
var monthExpression="";
|
var monthData=view.id("dataSetMonth").getData();
|
switch(monthData.get("type")){
|
case "all":
|
monthExpression="*"
|
break;
|
case "per":
|
monthExpression=monthData.get("fromPerMonth")+"/"+monthData.get("perMonth")
|
break;
|
case "region":
|
var from=monthData.get("fromMonth");
|
var to=monthData.get("toMonth");
|
if(from>=to){
|
error=true;
|
dorado.MessageBox.alert("小时采用区间定义时,开始时间应该小于结束时间!");
|
break;
|
}
|
monthExpression=from+"-"+to;
|
break;
|
case "specific":
|
monthExpression=monthData.get("specificMonth");
|
if(!monthExpression){
|
error=true;
|
dorado.MessageBox.alert("月份采用特定值时,必须要填充至少一个特定值!");
|
} 
|
break;
|
}
|
if(error){
|
return;
|
}
|

|
var weekExpression="";
|
var weekData=view.id("dataSetWeek").getData();
|
switch(weekData.get("type")){
|
case "all":
|
weekExpression="*"
|
break;
|
case "per":
|
weekExpression=weekData.get("fromPerWeek")+"/"+weekData.get("perWeek")
|
break;
|
case "region":
|
var from=weekData.get("fromWeek");
|
var to=weekData.get("toWeek");
|
weekExpression=from+"-"+to;
|
break;
|
case "specific":
|
weekExpression=weekData.get("specificWeek");
|
if(!weekExpression){
|
error=true;
|
dorado.MessageBox.alert("星期采用特定值时,必须要填充至少一个特定值!");
|
}
|
break;
|
case "last":
|
weekExpression=weekData.get("last")+"L";
|
break;
|
}
|
if(error){
|
return;
|
}
|
if(dayExpression!="*" && weekExpression!="*"){
|
dorado.MessageBox.alert("日期与星期的值至少有一个需要设置成所有,当前日期与星期的值皆不为所有!");
|
return;
|
}
|
if(dayExpression=="*"){
|
dayExpression="?";
|
}else{
|
weekExpression="?";
|
}
|
var expression=secondExpression+" "+minuteExpression+" "+hourExpression+" "+dayExpression+" "+monthExpression+" "+weekExpression;
|
view.id("autoFormCronExp").set("entity",{cron:expression});
|
</ClientEvent>
|
<Property name="caption">生成Cron表达式</Property>
|
</Button>
|
<Button>
|
<ClientEvent name="onClick">var cron=view.id("autoFormCronExp").get("entity").cron;
|
if(cron){
|
var ds=view.id("dataSetCronDate");
|
ds.set("parameter",{cron:cron});
|
ds.flushAsync(function(){
|
view.id("dialogParseCron").show();
|
});
|
}else{
|
dorado.MessageBox.alert("请先生成Cron表达式");
|
}
|
</ClientEvent>
|
<Property name="caption">解析表达式</Property>
|
</Button>
|
</AutoForm>
|
<Dialog id="dialogParseCron">
|
<Property name="center">true</Property>
|
<Property name="modal">true</Property>
|
<Property name="width">220</Property>
|
<Property name="height">500</Property>
|
<Buttons/>
|
<Children>
|
<DataGrid>
|
<Property name="dataSet">dataSetCronDate</Property>
|
<Property name="readOnly">true</Property>
|
<DataColumn name="date">
|
<Property name="property">date</Property>
|
</DataColumn>
|
</DataGrid>
|
<DataSet id="dataSetCronDate">
|
<Property name="dataType">[dataTypeCronDate]</Property>
|
<Property name="loadMode">manual</Property>
|
<Property name="dataProvider">bdf2.jobMaintain#parseCronExpression</Property>
|
</DataSet>
|
</Children>
|
<Tools/>
|
</Dialog>
|
</Children>
|
<Tools/>
|
</Dialog>
|
<Dialog id="dialogJob">
|
<Property name="center">true</Property>
|
<Property name="modal">true</Property>
|
<Property name="width">500</Property>
|
<Property name="height">270</Property>
|
<Property name="closeable">false</Property>
|
<Buttons>
|
<Button>
|
<ClientEvent name="onClick">view.id("updateActionSaveJob").execute(function(){
|
view.id("dialogJob").hide();
|
});</ClientEvent>
|
<Property name="caption">确认</Property>
|
<Property name="icon">url(skin>common/icons.gif) -140px -20px</Property>
|
</Button>
|
<Button>
|
<ClientEvent name="onClick">view.id("dataSetJob").getData().cancel();
|
view.id("dialogJob").hide();</ClientEvent>
|
<Property name="caption">取消</Property>
|
<Property name="icon">url(skin>common/icons.gif) -40px 0px</Property>
|
</Button>
|
</Buttons>
|
<Children>
|
<AutoForm>
|
<Property name="dataSet">dataSetJob</Property>
|
<Property name="cols">*</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="labelWidth">100</Property>
|
<AutoFormElement>
|
<Property name="name">name</Property>
|
<Property name="property">name</Property>
|
<Editor/>
|
</AutoFormElement>
|
<AutoFormElement>
|
<Property name="name">beanId</Property>
|
<Property name="property">beanId</Property>
|
<Property name="trigger">triggerBean</Property>
|
<Editor/>
|
</AutoFormElement>
|
<AutoFormElement>
|
<Property name="name">cronExpression</Property>
|
<Property name="property">cronExpression</Property>
|
<Property name="trigger">triggerCron</Property>
|
<Editor/>
|
</AutoFormElement>
|
<AutoFormElement layoutConstraint="colSpan:2">
|
<Property name="name">desc</Property>
|
<Property name="property">desc</Property>
|
<Property name="editorType">TextArea</Property>
|
<Editor/>
|
</AutoFormElement>
|
</AutoForm>
|
<Trigger id="triggerCron">
|
<ClientEvent name="onExecute">var dialog=view.id("dialogCron").show();
|
var cronExpr=view.id("dataSetJob").getData("#.cronExpression");
|
if(!cronExpr){
|
return;
|
}
|
var cron=cronExpr.split(" ");
|
if(cron.length<5){
|
dorado.MessageBox.alert("无法解析当前Cron表达式["+cronExpr+"]");
|
return;
|
}
|
view.id("autoFormPerSecond").set("visible",false);
|
view.id("autoFormRegionSecond").set("visible",false);
|
view.id("autoFormSpecificSecond").set("visible",false);
|
view.id("autoFormPerMinute").set("visible",false);
|
view.id("autoFormRegionMinute").set("visible",false);
|
view.id("autoFormSpecificMinute").set("visible",false);
|
view.id("autoFormPerHour").set("visible",false);
|
view.id("autoFormRegionHour").set("visible",false);
|
view.id("autoFormSpecificHour").set("visible",false);
|
view.id("autoFormPerDay").set("visible",false);
|
view.id("autoFormRegionDay").set("visible",false);
|
view.id("autoFormSpecificDay").set("visible",false);
|
view.id("autoFormPerMonth").set("visible",false);
|
view.id("autoFormRegionMonth").set("visible",false);
|
view.id("autoFormSpecificMonth").set("visible",false);
|
view.id("autoFormPerWeek").set("visible",false);
|
view.id("autoFormRegionWeek").set("visible",false);
|
view.id("autoFormSpecificWeek").set("visible",false);
|
view.id("autoFormLastWeek").set("visible",false);
|
var second=cron[0];
|
if(second=="*"){
|
view.id("dataSetSecond").getData().set("type","all");
|
}else{
|
var data=view.id("dataSetSecond").getData();
|
var region=second.split("-");
|
var per=second.split("/");
|
if(region.length>1){
|
data.set("type","region");
|
data.set("fromSecond",region[0]);
|
data.set("toSecond",region[1]);
|
view.id("autoFormRegionSecond").set("visible",true);
|
}else if(per.length>1){
|
data.set("type","per");
|
data.set("fromPerSecond",per[0]);
|
data.set("perSecond",per[1]);
|
view.id("autoFormPerSecond").set("visible",true);
|
}else{
|
data.set("type","specific");
|
data.set("specificSecond",second);
|
view.id("autoFormSpecificSecond").set("visible",true);
|
}
|
}
|
//-------------------------
|
var minute=cron[1];
|
if(minute=="*"){
|
view.id("dataSetMinute").getData().set("type","all");
|
}else{
|
var data=view.id("dataSetMinute").getData();
|
var region=minute.split("-");
|
var per=minute.split("/");
|
if(region.length>1){
|
data.set("type","region");
|
data.set("fromMinute",region[0]);
|
data.set("toMinute",region[1]);
|
view.id("autoFormRegionMinute").set("visible",true);
|
}else if(per.length>1){
|
data.set("type","per");
|
data.set("fromPerMinute",per[0]);
|
data.set("perMinute",per[1]);
|
view.id("autoFormPerMinute").set("visible",true);
|
}else{
|
data.set("type","specific");
|
data.set("specificMinute",minute);
|
view.id("autoFormSpecificMinute").set("visible",true);
|
}
|
}
|
//-------------------------
|
var hour=cron[2];
|
if(hour=="*"){
|
view.id("dataSetHour").getData().set("type","all");
|
}else{
|
var data=view.id("dataSetHour").getData();
|
var region=hour.split("-");
|
var per=hour.split("/");
|
if(region.length>1){
|
data.set("type","region");
|
data.set("fromHour",region[0]);
|
data.set("toHour",region[1]);
|
view.id("autoFormRegionHour").set("visible",true);
|
}else if(per.length>1){
|
data.set("type","per");
|
data.set("fromPerHour",per[0]);
|
data.set("perHour",per[1]);
|
view.id("autoFormPerHour").set("visible",true);
|
}else{
|
data.set("type","specific");
|
data.set("specificHour",hour);
|
view.id("autoFormSpecificHour").set("visible",true);
|
}
|
}
|
//-------------------------
|
var day=cron[3];
|
if(day=="*" || day=="?"){
|
view.id("dataSetDay").getData().set("type","all");
|
}else if(day=="L"){
|
view.id("dataSetDay").getData().set("type","last");
|
}else{
|
var data=view.id("dataSetDay").getData();
|
var region=day.split("-");
|
var per=day.split("/");
|
if(region.length>1){
|
data.set("type","region");
|
data.set("fromDay",region[0]);
|
data.set("toDay",region[1]);
|
view.id("autoFormRegionDay").set("visible",true);
|
}else if(per.length>1){
|
data.set("type","per");
|
data.set("fromPerDay",per[0]);
|
data.set("perDay",per[1]);
|
view.id("autoFormPerDay").set("visible",true);
|
}else{
|
data.set("type","specific");
|
data.set("specificDay",day);
|
view.id("autoFormSpecificDay").set("visible",true);
|
}
|
}
|
//-------------------------
|
var month=cron[4];
|
if(month=="*"){
|
view.id("dataSetMonth").getData().set("type","all");
|
}else{
|
var data=view.id("dataSetMonth").getData();
|
var region=month.split("-");
|
var per=month.split("/");
|
if(region.length>1){
|
data.set("type","region");
|
data.set("fromMonth",region[0]);
|
data.set("toMonth",region[1]);
|
view.id("autoFormRegionMonth").set("visible",true);
|
}else if(per.length>1){
|
data.set("type","per");
|
data.set("fromPerMonth",per[0]);
|
data.set("perMonth",per[1]);
|
view.id("autoFormPerMonth").set("visible",true);
|
}else{
|
data.set("type","specific");
|
data.set("specificMonth",month);
|
view.id("autoFormSpecificMonth").set("visible",true);
|
}
|
}
|
//-------------------------
|
var week=cron[5];
|
if(week=="*" || week=="?"){
|
view.id("dataSetWeek").getData().set("type","all");
|
}else if(week.indexOf("L")>0){
|
var data=view.id("dataSetWeek").getData();
|
data.set("type","last");
|
var d=week.substring(0,1);
|
if(d){
|
data.set("last",d);
|
}
|
view.id("autoFormLastWeek").set("visible",true);
|
}else{
|
var data=view.id("dataSetWeek").getData();
|
var region=week.split("-");
|
var per=week.split("/");
|
if(region.length>1){
|
data.set("type","region");
|
data.set("fromWeek",region[0]);
|
data.set("toWeek",region[1]);
|
view.id("autoFormRegionWeek").set("visible",true);
|
}else if(per.length>1){
|
data.set("type","per");
|
data.set("fromPerWeek",per[0]);
|
data.set("perWeek",per[1]);
|
view.id("autoFormPerWeek").set("visible",true);
|
}else{
|
data.set("type","specific");
|
data.set("specificWeek",week);
|
view.id("autoFormSpecificWeek").set("visible",true);
|
}
|
}
|
view.id("autoFormCronExp").set("entity",{cron:cronExpr});
|
</ClientEvent>
|
</Trigger>
|
<Trigger id="triggerBean">
|
<ClientEvent name="onExecute">view.id("dialogJobBeans").show();</ClientEvent>
|
</Trigger>
|
</Children>
|
<Tools/>
|
</Dialog>
|
<Dialog id="dialogJobBeans">
|
<Property name="center">true</Property>
|
<Property name="modal">true</Property>
|
<Property name="width">500</Property>
|
<Property name="height">500</Property>
|
<Buttons>
|
<Button>
|
<ClientEvent name="onClick">var data=view.id("dataSetJobInfo").getData("#");
|
if(data){
|
var beanId=data.get("beanId");
|
view.id("dataSetJob").getData("#").set("beanId",beanId);
|
view.id("dialogJobBeans").hide();
|
}else{
|
dorado.MessageBox.alert("请先选中一个Bean");
|
}</ClientEvent>
|
<Property name="caption">确认</Property>
|
<Property name="icon">url(skin>common/icons.gif) -140px -20px</Property>
|
</Button>
|
<Button>
|
<ClientEvent name="onClick">view.id("dialogJobBeans").hide();</ClientEvent>
|
<Property name="caption">取消</Property>
|
<Property name="icon">url(skin>common/icons.gif) -40px 0px</Property>
|
</Button>
|
</Buttons>
|
<Children>
|
<DataGrid>
|
<Property name="dataSet">dataSetJobInfo</Property>
|
<Property name="readOnly">true</Property>
|
<DataColumn name="beanId">
|
<Property name="property">beanId</Property>
|
</DataColumn>
|
</DataGrid>
|
</Children>
|
<Tools/>
|
</Dialog>
|
<UpdateAction id="updateActionSaveJob">
|
<Property name="dataResolver">bdf2.jobMaintain#saveJobs</Property>
|
<Property name="successMessage">操作成功</Property>
|
<UpdateItem>
|
<Property name="dataSet">dataSetJob</Property>
|
</UpdateItem>
|
</UpdateAction>
|
<AjaxAction id="ajaxActionStopJob">
|
<Property name="service">bdf2.jobMaintain#stopJob</Property>
|
<Property name="successMessage">操作成功</Property>
|
</AjaxAction>
|
<AjaxAction id="ajaxActionRunJob">
|
<Property name="service">bdf2.jobMaintain#runJob</Property>
|
<Property name="successMessage">操作成功</Property>
|
</AjaxAction>
|
</Container>
|
</SideControl>
|
</SplitPanel>
|
<Dialog id="dialogException">
|
<Property name="width">400</Property>
|
<Property name="height">200</Property>
|
<Property name="caption">JOB宕机处理</Property>
|
<Property name="closeable">false</Property>
|
<Buttons>
|
<Button>
|
<ClientEvent name="onClick">var time = view.get("#jobTime.value");
|
if(!time){
|
$alert("请选择执行时间!");
|
}
|

|
var curJob = view.get("#dataGridJob").get("currentEntity");
|

|
view.get("#ajaxTodoJob").set("parameter",{
|
beanId:curJob.get("beanId"),
|
time:time
|
}).execute(function(result){
|
$alert(result);
|
view.get("#dialogException").hide();
|
});</ClientEvent>
|
<Property name="caption">确认</Property>
|
</Button>
|
<Button>
|
<ClientEvent name="onClick">view.get("#dialogException").hide();</ClientEvent>
|
<Property name="caption">取消</Property>
|
</Button>
|
</Buttons>
|
<Children>
|
<TextEditor id="jobTime" layoutConstraint="padding:10">
|
<Property name="trigger">dateDropDown1</Property>
|
<Property name="dataType">Date</Property>
|
<Property name="blankText">-- 选择宕机时间 --</Property>
|
</TextEditor>
|
<Label layoutConstraint="padding:10">
|
<Property name="text">宕机时间必需是今天以前的某天</Property>
|
<Property name="style">
|
<Property name="color">blue</Property>
|
</Property>
|
</Label>
|
<DateDropDown id="dateDropDown1"/>
|
<AjaxAction id="ajaxTodoJob">
|
<Property name="service">todoJob#todo</Property>
|
<Property name="executingMessage">执行统计中……</Property>
|
</AjaxAction>
|
</Children>
|
<Tools/>
|
</Dialog>
|
</View>
|
</ViewConfig>
|