Commit 1786ccee7a841123b0ba9a06b066b2b5a3b9b0d9
Merge branch 'minhang' of http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
# Conflicts: # src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/station_route_spacing_chart.html
Showing
33 changed files
with
2559 additions
and
611 deletions
Too many changes to show.
To preserve performance only 33 of 566 files are displayed.
src/main/java/com/bsth/controller/BaseController2.java
| ... | ... | @@ -187,9 +187,11 @@ public class BaseController2<T, ID extends Serializable> { |
| 187 | 187 | } |
| 188 | 188 | |
| 189 | 189 | System.out.println(outputfile.getName()); |
| 190 | + System.out.println(outputfile.getAbsolutePath()); | |
| 191 | + | |
| 190 | 192 | String filePath = outputfile.getAbsolutePath(); |
| 191 | - String fp[] = filePath.split(File.separator); | |
| 192 | - String fileName = fp[fp.length - 1]; | |
| 193 | +// String fp[] = filePath.split(File.separator); | |
| 194 | +// String fileName = fp[fp.length - 1]; | |
| 193 | 195 | |
| 194 | 196 | // TODO:使用ktr获取导出数据 |
| 195 | 197 | ... | ... |
src/main/java/com/bsth/controller/schedule/RerunController.java deleted
100644 → 0
| 1 | -package com.bsth.controller.schedule; | |
| 2 | - | |
| 3 | -import com.bsth.controller.BaseController; | |
| 4 | -import com.bsth.entity.schedule.rule.RerunRule; | |
| 5 | -import com.bsth.repository.schedule.RerunRuleRepository; | |
| 6 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 7 | -import org.springframework.web.bind.annotation.*; | |
| 8 | - | |
| 9 | -import java.util.Map; | |
| 10 | - | |
| 11 | -/** | |
| 12 | - * Created by xu on 16/10/20. | |
| 13 | - */ | |
| 14 | -@RestController | |
| 15 | -@RequestMapping("rms") | |
| 16 | -public class RerunController extends BaseController<RerunRule, Long> { | |
| 17 | - | |
| 18 | - @Autowired | |
| 19 | - private RerunRuleRepository rerunRuleRepository; | |
| 20 | - | |
| 21 | - @Override | |
| 22 | - public RerunRule findById(@PathVariable("id") Long aLong) { | |
| 23 | - return rerunRuleRepository.findOneExtend(aLong); | |
| 24 | - } | |
| 25 | - | |
| 26 | - /** | |
| 27 | - * 覆写方法,因为form提交的方式参数不全,改用 json形式提交 @RequestBody | |
| 28 | - * @Title: save | |
| 29 | - * @Description: TODO(持久化对象) | |
| 30 | - * @param @param t | |
| 31 | - * @param @return 设定文件 | |
| 32 | - * @return Map<String,Object> {status: 1(成功),-1(失败)} | |
| 33 | - * @throws | |
| 34 | - */ | |
| 35 | - @RequestMapping(method = RequestMethod.POST) | |
| 36 | - public Map<String, Object> save(@RequestBody RerunRule t){ | |
| 37 | - return baseService.save(t); | |
| 38 | - } | |
| 39 | - | |
| 40 | - | |
| 41 | -} |
src/main/java/com/bsth/controller/schedule/TTInfoController.java deleted
100644 → 0
| 1 | -package com.bsth.controller.schedule; | |
| 2 | - | |
| 3 | -import com.bsth.controller.BaseController2; | |
| 4 | -import com.bsth.entity.schedule.TTInfo; | |
| 5 | -import com.bsth.repository.schedule.TTInfoDetailRepository; | |
| 6 | -import com.bsth.repository.schedule.TTInfoRepository; | |
| 7 | -import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 8 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 9 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 10 | -import org.springframework.data.domain.Page; | |
| 11 | -import org.springframework.web.bind.annotation.*; | |
| 12 | - | |
| 13 | -import java.util.Map; | |
| 14 | - | |
| 15 | -/** | |
| 16 | - * Created by xu on 16/5/12. | |
| 17 | - */ | |
| 18 | -@RestController | |
| 19 | -@RequestMapping("tic") | |
| 20 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 21 | -public class TTInfoController extends BaseController2<TTInfo, Long> { | |
| 22 | - @Autowired | |
| 23 | - private DataToolsProperties dataToolsProperties; | |
| 24 | - @Autowired | |
| 25 | - private TTInfoRepository ttInfoRepository; | |
| 26 | - @Autowired | |
| 27 | - private TTInfoDetailRepository ttInfoDetailRepository; | |
| 28 | - | |
| 29 | - @Override | |
| 30 | - protected String getDataImportKtrClasspath() { | |
| 31 | - return dataToolsProperties.getTtinfoDatainputktr(); | |
| 32 | - } | |
| 33 | - | |
| 34 | - @Override | |
| 35 | - public TTInfo findById(@PathVariable("id") Long aLong) { | |
| 36 | - return ttInfoRepository.findOneExtend(aLong); | |
| 37 | - } | |
| 38 | - | |
| 39 | - /** | |
| 40 | - * 验证。 | |
| 41 | - * @param map | |
| 42 | - * @return | |
| 43 | - */ | |
| 44 | - @RequestMapping(value = "/validate/equale", method = RequestMethod.GET) | |
| 45 | - public Map<String, Object> validateData(@RequestParam Map<String, Object> map) { | |
| 46 | - // 一般比较自编号是否重复 | |
| 47 | - return baseService.validateEquale(map); | |
| 48 | - } | |
| 49 | - | |
| 50 | - @Override | |
| 51 | - public Page<TTInfo> list(@RequestParam Map<String, Object> map, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size, @RequestParam(defaultValue = "id") String order, @RequestParam(defaultValue = "DESC") String direction) { | |
| 52 | - // 如果有isCancel键值,将其值变成boolean | |
| 53 | - if (map.get("isCancel_eq") != null) | |
| 54 | - map.put("isCancel_eq", new Boolean(map.get("isCancel_eq").toString())); | |
| 55 | - | |
| 56 | - return super.list(map, page, size, order, direction); | |
| 57 | - } | |
| 58 | -} |
src/main/java/com/bsth/controller/schedule/TTInfoDetailController.java
| ... | ... | @@ -113,6 +113,9 @@ public class TTInfoDetailController extends BaseController2<TTInfoDetail, Long> |
| 113 | 113 | p1.put("stationName_eq", cell_con.trim()); |
| 114 | 114 | p1.put("stationMark_eq", "B"); |
| 115 | 115 | |
| 116 | + | |
| 117 | + // TODO:这里要修改(起点站有启用撤销的标志的) | |
| 118 | + | |
| 116 | 119 | List<StationRoute> stationRouteList = (List<StationRoute>) stationRouteService.list(p1); |
| 117 | 120 | if (CollectionUtils.isEmpty(stationRouteList)) { |
| 118 | 121 | rtn.put("status", ResponseCode.ERROR); | ... | ... |
src/main/java/com/bsth/controller/schedule/core/RerunController.java
0 → 100644
| 1 | +package com.bsth.controller.schedule.core; | |
| 2 | + | |
| 3 | +import com.bsth.controller.schedule.BController; | |
| 4 | +import com.bsth.entity.schedule.rule.RerunRule; | |
| 5 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 6 | +import org.springframework.web.bind.annotation.RestController; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Created by xu on 16/10/20. | |
| 10 | + */ | |
| 11 | +@RestController | |
| 12 | +@RequestMapping("rms") | |
| 13 | +public class RerunController extends BController<RerunRule, Long> { | |
| 14 | + | |
| 15 | + | |
| 16 | +} | ... | ... |
src/main/java/com/bsth/controller/schedule/core/TTInfoController.java
0 → 100644
| 1 | +package com.bsth.controller.schedule.core; | |
| 2 | + | |
| 3 | +import com.bsth.common.ResponseCode; | |
| 4 | +import com.bsth.controller.schedule.BController; | |
| 5 | +import com.bsth.entity.schedule.TTInfo; | |
| 6 | +import com.bsth.service.schedule.ScheduleException; | |
| 7 | +import com.bsth.service.schedule.TTInfoService; | |
| 8 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 9 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 10 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 11 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 12 | +import org.springframework.web.bind.annotation.RestController; | |
| 13 | + | |
| 14 | +import java.util.HashMap; | |
| 15 | +import java.util.Map; | |
| 16 | + | |
| 17 | +/** | |
| 18 | + * Created by xu on 16/12/20. | |
| 19 | + */ | |
| 20 | +@RestController(value = "tTInfoController_ec") | |
| 21 | +@RequestMapping(value = "tic_ec") | |
| 22 | +public class TTInfoController extends BController<TTInfo, Long> { | |
| 23 | + @Autowired | |
| 24 | + private TTInfoService ttInfoService; | |
| 25 | + | |
| 26 | + @RequestMapping(value = "/validate_name", method = RequestMethod.GET) | |
| 27 | + public Map<String, Object> validate_name(@RequestParam Map<String, Object> param) { | |
| 28 | + Map<String, Object> rtn = new HashMap<>(); | |
| 29 | + try { | |
| 30 | + // 名字重复验证 | |
| 31 | + TTInfo ttInfo = new TTInfo( | |
| 32 | + param.get("id_eq"), | |
| 33 | + param.get("xl.id_eq"), | |
| 34 | + param.get("name_eq"), | |
| 35 | + param.get("rule_days_eq"), | |
| 36 | + param.get("special_days_eq") | |
| 37 | + ); | |
| 38 | + ttInfoService.validate_name(ttInfo); | |
| 39 | + rtn.put("status", ResponseCode.SUCCESS); | |
| 40 | + } catch (ScheduleException exp) { | |
| 41 | + rtn.put("status", ResponseCode.ERROR); | |
| 42 | + rtn.put("msg", exp.getMessage()); | |
| 43 | + } | |
| 44 | + | |
| 45 | + return rtn; | |
| 46 | + } | |
| 47 | + | |
| 48 | + @RequestMapping(value = "/validate_n_d", method = RequestMethod.GET) | |
| 49 | + public Map<String, Object> validate_n_d(@RequestParam Map<String, Object> param) { | |
| 50 | + Map<String, Object> rtn = new HashMap<>(); | |
| 51 | + try { | |
| 52 | + // 常规有效日重复验证 | |
| 53 | + TTInfo ttInfo = new TTInfo( | |
| 54 | + param.get("id_eq"), | |
| 55 | + param.get("xl.id_eq"), | |
| 56 | + param.get("name_eq"), | |
| 57 | + param.get("rule_days_eq"), | |
| 58 | + param.get("special_days_eq") | |
| 59 | + ); | |
| 60 | + ttInfoService.validate_n_d(ttInfo); | |
| 61 | + rtn.put("status", ResponseCode.SUCCESS); | |
| 62 | + } catch (ScheduleException exp) { | |
| 63 | + rtn.put("status", ResponseCode.ERROR); | |
| 64 | + rtn.put("msg", exp.getMessage()); | |
| 65 | + } | |
| 66 | + return rtn; | |
| 67 | + } | |
| 68 | + | |
| 69 | + @RequestMapping(value = "/validate_s_d", method = RequestMethod.GET) | |
| 70 | + public Map<String, Object> validate_s_d(@RequestParam Map<String, Object> param) { | |
| 71 | + Map<String, Object> rtn = new HashMap<>(); | |
| 72 | + try { | |
| 73 | + // 特殊有效日重复判定 | |
| 74 | + TTInfo ttInfo = new TTInfo( | |
| 75 | + param.get("id_eq"), | |
| 76 | + param.get("xl.id_eq"), | |
| 77 | + param.get("name_eq"), | |
| 78 | + param.get("rule_days_eq"), | |
| 79 | + param.get("special_days_eq") | |
| 80 | + ); | |
| 81 | + ttInfoService.validate_s_d(ttInfo); | |
| 82 | + rtn.put("status", ResponseCode.SUCCESS); | |
| 83 | + } catch (ScheduleException exp) { | |
| 84 | + rtn.put("status", ResponseCode.ERROR); | |
| 85 | + rtn.put("msg", exp.getMessage()); | |
| 86 | + } | |
| 87 | + return rtn; | |
| 88 | + } | |
| 89 | + | |
| 90 | +} | |
| 91 | + | |
| 92 | +// | |
| 93 | +//@Autowired | |
| 94 | +//private DataToolsProperties dataToolsProperties; | |
| 95 | +//@Autowired | |
| 96 | +//private TTInfoRepository ttInfoRepository; | |
| 97 | +//@Autowired | |
| 98 | +//private TTInfoDetailRepository ttInfoDetailRepository; | |
| 99 | +// | |
| 100 | +// @Override | |
| 101 | +// protected String getDataImportKtrClasspath() { | |
| 102 | +// return dataToolsProperties.getTtinfoDatainputktr(); | |
| 103 | +// } | |
| 104 | +// | |
| 105 | +// @Override | |
| 106 | +// public TTInfo findById(@PathVariable("id") Long aLong) { | |
| 107 | +// return ttInfoRepository.findOneExtend(aLong); | |
| 108 | +// } | |
| 109 | +// | |
| 110 | +// /** | |
| 111 | +// * 验证。 | |
| 112 | +// * @param map | |
| 113 | +// * @return | |
| 114 | +// */ | |
| 115 | +// @RequestMapping(value = "/validate/equale", method = RequestMethod.GET) | |
| 116 | +// public Map<String, Object> validateData(@RequestParam Map<String, Object> map) { | |
| 117 | +// // 一般比较自编号是否重复 | |
| 118 | +// return baseService.validateEquale(map); | |
| 119 | +// } | |
| 120 | +// | |
| 121 | +// @Override | |
| 122 | +// public Page<TTInfo> list(@RequestParam Map<String, Object> map, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size, @RequestParam(defaultValue = "id") String order, @RequestParam(defaultValue = "DESC") String direction) { | |
| 123 | +// // 如果有isCancel键值,将其值变成boolean | |
| 124 | +// if (map.get("isCancel_eq") != null) | |
| 125 | +// map.put("isCancel_eq", new Boolean(map.get("isCancel_eq").toString())); | |
| 126 | +// | |
| 127 | +// return super.list(map, page, size, order, direction); | |
| 128 | +// } | |
| 0 | 129 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/entity/schedule/TTInfo.java
| 1 | 1 | package com.bsth.entity.schedule; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.entity.Line; |
| 4 | -import com.bsth.entity.sys.SysUser; | |
| 5 | 4 | |
| 6 | 5 | import javax.persistence.*; |
| 7 | 6 | import java.util.Date; |
| ... | ... | @@ -18,7 +17,7 @@ import java.util.Date; |
| 18 | 17 | @NamedAttributeNode("updateBy") |
| 19 | 18 | }) |
| 20 | 19 | }) |
| 21 | -public class TTInfo { | |
| 20 | +public class TTInfo extends BEntity { | |
| 22 | 21 | |
| 23 | 22 | /** 主键Id */ |
| 24 | 23 | @Id |
| ... | ... | @@ -50,9 +49,9 @@ public class TTInfo { |
| 50 | 49 | |
| 51 | 50 | // TODO:还有很多判定条件,这里先不放 |
| 52 | 51 | |
| 53 | - /** 路牌数 */ | |
| 52 | + /** 路牌数(这两个字段暂时不用) */ | |
| 54 | 53 | private int lpCount; |
| 55 | - /** 圈数 */ | |
| 54 | + /** 圈数(这两个字段暂时不倒) */ | |
| 56 | 55 | private int loopCount; |
| 57 | 56 | |
| 58 | 57 | // TODO:原系统里的分别在,圈后圈进场,意思不知道,再议 |
| ... | ... | @@ -62,19 +61,25 @@ public class TTInfo { |
| 62 | 61 | /** 特殊有效日期(格式:2001-01-01,多个用逗号隔开) */ |
| 63 | 62 | private String special_days; |
| 64 | 63 | |
| 65 | - /** 操作人员关联 */ | |
| 66 | - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) | |
| 67 | - private SysUser createBy; | |
| 68 | - /** 更新人员关联 */ | |
| 69 | - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) | |
| 70 | - private SysUser updateBy; | |
| 71 | - // 创建日期 | |
| 72 | - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") | |
| 73 | - private Date createDate; | |
| 74 | - // 修改日期 | |
| 75 | - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") | |
| 76 | - private Date updateDate; | |
| 77 | - | |
| 64 | + public TTInfo() {} | |
| 65 | + public TTInfo(Object id, Object xlid, Object name, Object nds, Object sds) { | |
| 66 | + if (id != null) { | |
| 67 | + this.id = Long.parseLong(id.toString()); | |
| 68 | + } | |
| 69 | + if (xlid != null) { | |
| 70 | + this.xl = new Line(); | |
| 71 | + this.xl.setId(Integer.valueOf(xlid.toString())); | |
| 72 | + } | |
| 73 | + if (name != null) { | |
| 74 | + this.name = String.valueOf(name); | |
| 75 | + } | |
| 76 | + if (nds != null) { | |
| 77 | + this.rule_days = String.valueOf(nds); | |
| 78 | + } | |
| 79 | + if (sds != null) { | |
| 80 | + this.special_days = String.valueOf(sds); | |
| 81 | + } | |
| 82 | + } | |
| 78 | 83 | |
| 79 | 84 | public Long getId() { |
| 80 | 85 | return id; |
| ... | ... | @@ -164,38 +169,6 @@ public class TTInfo { |
| 164 | 169 | this.special_days = special_days; |
| 165 | 170 | } |
| 166 | 171 | |
| 167 | - public SysUser getCreateBy() { | |
| 168 | - return createBy; | |
| 169 | - } | |
| 170 | - | |
| 171 | - public void setCreateBy(SysUser createBy) { | |
| 172 | - this.createBy = createBy; | |
| 173 | - } | |
| 174 | - | |
| 175 | - public SysUser getUpdateBy() { | |
| 176 | - return updateBy; | |
| 177 | - } | |
| 178 | - | |
| 179 | - public void setUpdateBy(SysUser updateBy) { | |
| 180 | - this.updateBy = updateBy; | |
| 181 | - } | |
| 182 | - | |
| 183 | - public Date getCreateDate() { | |
| 184 | - return createDate; | |
| 185 | - } | |
| 186 | - | |
| 187 | - public void setCreateDate(Date createDate) { | |
| 188 | - this.createDate = createDate; | |
| 189 | - } | |
| 190 | - | |
| 191 | - public Date getUpdateDate() { | |
| 192 | - return updateDate; | |
| 193 | - } | |
| 194 | - | |
| 195 | - public void setUpdateDate(Date updateDate) { | |
| 196 | - this.updateDate = updateDate; | |
| 197 | - } | |
| 198 | - | |
| 199 | 172 | public Boolean getIsCancel() { |
| 200 | 173 | return isCancel; |
| 201 | 174 | } | ... | ... |
src/main/java/com/bsth/entity/schedule/TTInfoDetail.java
| ... | ... | @@ -3,10 +3,8 @@ package com.bsth.entity.schedule; |
| 3 | 3 | import com.bsth.entity.CarPark; |
| 4 | 4 | import com.bsth.entity.Line; |
| 5 | 5 | import com.bsth.entity.Station; |
| 6 | -import com.bsth.entity.sys.SysUser; | |
| 7 | 6 | |
| 8 | 7 | import javax.persistence.*; |
| 9 | -import java.util.Date; | |
| 10 | 8 | |
| 11 | 9 | /** |
| 12 | 10 | * 时刻表明细 |
| ... | ... | @@ -23,7 +21,7 @@ import java.util.Date; |
| 23 | 21 | @NamedAttributeNode("tcc") |
| 24 | 22 | }) |
| 25 | 23 | }) |
| 26 | -public class TTInfoDetail { | |
| 24 | +public class TTInfoDetail extends BEntity { | |
| 27 | 25 | |
| 28 | 26 | /** 主健Id */ |
| 29 | 27 | @Id |
| ... | ... | @@ -85,20 +83,6 @@ public class TTInfoDetail { |
| 85 | 83 | /** 备注 */ |
| 86 | 84 | private String remark; |
| 87 | 85 | |
| 88 | - /** 创建人 */ | |
| 89 | - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) | |
| 90 | - private SysUser createBy; | |
| 91 | - /** 修改人 */ | |
| 92 | - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) | |
| 93 | - private SysUser updateBy; | |
| 94 | - | |
| 95 | - /** 创建日期 */ | |
| 96 | - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") | |
| 97 | - private Date createDate; | |
| 98 | - /** 修改日期 */ | |
| 99 | - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") | |
| 100 | - private Date updateDate; | |
| 101 | - | |
| 102 | 86 | public Long getId() { |
| 103 | 87 | return id; |
| 104 | 88 | } |
| ... | ... | @@ -235,38 +219,6 @@ public class TTInfoDetail { |
| 235 | 219 | this.remark = remark; |
| 236 | 220 | } |
| 237 | 221 | |
| 238 | - public SysUser getCreateBy() { | |
| 239 | - return createBy; | |
| 240 | - } | |
| 241 | - | |
| 242 | - public void setCreateBy(SysUser createBy) { | |
| 243 | - this.createBy = createBy; | |
| 244 | - } | |
| 245 | - | |
| 246 | - public SysUser getUpdateBy() { | |
| 247 | - return updateBy; | |
| 248 | - } | |
| 249 | - | |
| 250 | - public void setUpdateBy(SysUser updateBy) { | |
| 251 | - this.updateBy = updateBy; | |
| 252 | - } | |
| 253 | - | |
| 254 | - public Date getCreateDate() { | |
| 255 | - return createDate; | |
| 256 | - } | |
| 257 | - | |
| 258 | - public void setCreateDate(Date createDate) { | |
| 259 | - this.createDate = createDate; | |
| 260 | - } | |
| 261 | - | |
| 262 | - public Date getUpdateDate() { | |
| 263 | - return updateDate; | |
| 264 | - } | |
| 265 | - | |
| 266 | - public void setUpdateDate(Date updateDate) { | |
| 267 | - this.updateDate = updateDate; | |
| 268 | - } | |
| 269 | - | |
| 270 | 222 | public CarPark getTcc() { |
| 271 | 223 | return tcc; |
| 272 | 224 | } | ... | ... |
src/main/java/com/bsth/entity/schedule/rule/RerunRule.java
| 1 | 1 | package com.bsth.entity.schedule.rule; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.entity.Line; |
| 4 | -import com.bsth.entity.schedule.CarConfigInfo; | |
| 5 | -import com.bsth.entity.schedule.EmployeeConfigInfo; | |
| 6 | -import com.bsth.entity.schedule.GuideboardInfo; | |
| 7 | -import com.bsth.entity.schedule.TTInfo; | |
| 8 | -import com.bsth.entity.sys.SysUser; | |
| 4 | +import com.bsth.entity.schedule.*; | |
| 9 | 5 | |
| 10 | 6 | import javax.persistence.*; |
| 11 | -import java.util.Date; | |
| 12 | 7 | |
| 13 | 8 | /** |
| 14 | 9 | * 套跑规则。 |
| ... | ... | @@ -41,7 +36,7 @@ import java.util.Date; |
| 41 | 36 | }) |
| 42 | 37 | |
| 43 | 38 | |
| 44 | -public class RerunRule { | |
| 39 | +public class RerunRule extends BEntity { | |
| 45 | 40 | /** 主键Id */ |
| 46 | 41 | @Id |
| 47 | 42 | @GeneratedValue |
| ... | ... | @@ -84,19 +79,6 @@ public class RerunRule { |
| 84 | 79 | @Column(nullable = false) |
| 85 | 80 | private Boolean isCancel = false; |
| 86 | 81 | |
| 87 | - /** 创建人 */ | |
| 88 | - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) | |
| 89 | - private SysUser createBy; | |
| 90 | - /** 修改人 */ | |
| 91 | - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) | |
| 92 | - private SysUser updateBy; | |
| 93 | - /** 创建日期 */ | |
| 94 | - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") | |
| 95 | - private Date createDate; | |
| 96 | - /** 修改日期 */ | |
| 97 | - @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") | |
| 98 | - private Date updateDate; | |
| 99 | - | |
| 100 | 82 | public Long getId() { |
| 101 | 83 | return id; |
| 102 | 84 | } |
| ... | ... | @@ -177,34 +159,6 @@ public class RerunRule { |
| 177 | 159 | this.useEmployeeConfig = useEmployeeConfig; |
| 178 | 160 | } |
| 179 | 161 | |
| 180 | - public SysUser getCreateBy() { | |
| 181 | - return createBy; | |
| 182 | - } | |
| 183 | - | |
| 184 | - public void setCreateBy(SysUser createBy) { | |
| 185 | - this.createBy = createBy; | |
| 186 | - } | |
| 187 | - | |
| 188 | - public SysUser getUpdateBy() { | |
| 189 | - return updateBy; | |
| 190 | - } | |
| 191 | - | |
| 192 | - public void setUpdateBy(SysUser updateBy) { | |
| 193 | - this.updateBy = updateBy; | |
| 194 | - } | |
| 195 | - | |
| 196 | - public Date getCreateDate() { | |
| 197 | - return createDate; | |
| 198 | - } | |
| 199 | - | |
| 200 | - public void setCreateDate(Date createDate) { | |
| 201 | - this.createDate = createDate; | |
| 202 | - } | |
| 203 | - | |
| 204 | - public Date getUpdateDate() { | |
| 205 | - return updateDate; | |
| 206 | - } | |
| 207 | - | |
| 208 | 162 | public Boolean getIsCancel() { |
| 209 | 163 | return isCancel; |
| 210 | 164 | } |
| ... | ... | @@ -213,7 +167,4 @@ public class RerunRule { |
| 213 | 167 | this.isCancel = isCancel; |
| 214 | 168 | } |
| 215 | 169 | |
| 216 | - public void setUpdateDate(Date updateDate) { | |
| 217 | - this.updateDate = updateDate; | |
| 218 | - } | |
| 219 | 170 | } | ... | ... |
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
| ... | ... | @@ -573,6 +573,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 573 | 573 | String tomorrow = sdfnyr.format(DateUtils.addDays(new Date(), +1)); |
| 574 | 574 | // 查询所有班次 |
| 575 | 575 | List<SchedulePlanInfo> schedulePlanList = schedulePlanInfoRepository.findLineScheduleBc(tomorrow); |
| 576 | + int j = 0; // 初始化标识 | |
| 576 | 577 | if(schedulePlanList != null ){ |
| 577 | 578 | int size = schedulePlanList.size(); |
| 578 | 579 | for (int i = 0; i < size; i++) { |
| ... | ... | @@ -583,7 +584,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ |
| 583 | 584 | if(line.getInUse() == null || line.getInUse() == 0){ |
| 584 | 585 | continue; |
| 585 | 586 | } |
| 586 | - if(i == 0){// 第一次,则初始化值 | |
| 587 | + if(++j == 1){// 第一次,则初始化值 | |
| 587 | 588 | zbh = schedulePlanInfo.getClZbh(); |
| 588 | 589 | lp = schedulePlanInfo.getLp(); |
| 589 | 590 | // 拼装XML | ... | ... |
src/main/java/com/bsth/service/schedule/CarConfigInfoService.java
| ... | ... | @@ -6,6 +6,6 @@ import com.bsth.entity.schedule.CarConfigInfo; |
| 6 | 6 | * Created by xu on 16/5/9. |
| 7 | 7 | */ |
| 8 | 8 | public interface CarConfigInfoService extends BService<CarConfigInfo, Long> { |
| 9 | - public void validate_cars(CarConfigInfo carConfigInfo) throws ScheduleException; | |
| 10 | - public void toggleCancel(Long id) throws ScheduleException; | |
| 9 | + void validate_cars(CarConfigInfo carConfigInfo) throws ScheduleException; | |
| 10 | + void toggleCancel(Long id) throws ScheduleException; | |
| 11 | 11 | } | ... | ... |
src/main/java/com/bsth/service/schedule/PeopleCarPlanServiceImpl.java
| ... | ... | @@ -912,7 +912,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { |
| 912 | 912 | List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); |
| 913 | 913 | List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); |
| 914 | 914 | Map<String, List<Map<String, Object>>> keyMap = new HashMap<String, List<Map<String, Object>>>(); |
| 915 | - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"); | |
| 915 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 916 | 916 | |
| 917 | 917 | String company = map.get("company").toString(); |
| 918 | 918 | String subCompany = map.get("subCompany").toString(); | ... | ... |
src/main/java/com/bsth/service/schedule/RerunService.java
| 1 | 1 | package com.bsth.service.schedule; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.entity.schedule.rule.RerunRule; |
| 4 | -import com.bsth.service.BaseService; | |
| 5 | 4 | |
| 6 | 5 | /** |
| 7 | 6 | * Created by xu on 16/10/20. |
| 8 | 7 | */ |
| 9 | -public interface RerunService extends BaseService<RerunRule, Long> { | |
| 8 | +public interface RerunService extends BService<RerunRule, Long> { | |
| 10 | 9 | } | ... | ... |
src/main/java/com/bsth/service/schedule/RerunServiceImpl.java deleted
100644 → 0
| 1 | -package com.bsth.service.schedule; | |
| 2 | - | |
| 3 | -import com.bsth.common.ResponseCode; | |
| 4 | -import com.bsth.entity.schedule.rule.RerunRule; | |
| 5 | -import com.bsth.repository.schedule.RerunRuleRepository; | |
| 6 | -import com.bsth.service.impl.BaseServiceImpl; | |
| 7 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | -import org.springframework.stereotype.Service; | |
| 9 | - | |
| 10 | -import javax.transaction.Transactional; | |
| 11 | -import java.util.HashMap; | |
| 12 | -import java.util.Map; | |
| 13 | - | |
| 14 | -/** | |
| 15 | - * Created by xu on 16/10/20. | |
| 16 | - */ | |
| 17 | -@Service | |
| 18 | -public class RerunServiceImpl extends BaseServiceImpl<RerunRule, Long> implements RerunService { | |
| 19 | - | |
| 20 | - @Autowired | |
| 21 | - private RerunRuleRepository rerunRuleRepository; | |
| 22 | - | |
| 23 | - @Override | |
| 24 | - @Transactional | |
| 25 | - public Map<String, Object> delete(Long aLong) { | |
| 26 | - // 获取带作废的数据 | |
| 27 | - RerunRule rerunRule = rerunRuleRepository.findOne(aLong); | |
| 28 | - | |
| 29 | - toogleIsCancel(rerunRule); | |
| 30 | - | |
| 31 | - Map<String, Object> map = new HashMap<>(); | |
| 32 | - map.put("status", ResponseCode.SUCCESS); | |
| 33 | - | |
| 34 | - return map; | |
| 35 | - | |
| 36 | - } | |
| 37 | - | |
| 38 | - /** | |
| 39 | - * 撤销/作废切换。 | |
| 40 | - * @param rerunRule | |
| 41 | - */ | |
| 42 | - private void toogleIsCancel(RerunRule rerunRule) { | |
| 43 | - boolean isCancel = rerunRule.getIsCancel(); | |
| 44 | - if (isCancel) { | |
| 45 | - rerunRule.setIsCancel(false); | |
| 46 | - } else { | |
| 47 | - rerunRule.setIsCancel(true); | |
| 48 | - } | |
| 49 | - } | |
| 50 | -} |
src/main/java/com/bsth/service/schedule/TTInfoService.java
| 1 | 1 | package com.bsth.service.schedule; |
| 2 | 2 | |
| 3 | 3 | import com.bsth.entity.schedule.TTInfo; |
| 4 | -import com.bsth.service.BaseService; | |
| 5 | 4 | |
| 6 | 5 | /** |
| 7 | 6 | * Created by xu on 16/5/12. |
| 8 | 7 | */ |
| 9 | -public interface TTInfoService extends BaseService<TTInfo, Long> { | |
| 8 | +public interface TTInfoService extends BService<TTInfo, Long> { | |
| 9 | + void validate_name(TTInfo ttInfo) throws ScheduleException; | |
| 10 | + void validate_n_d(TTInfo ttInfo) throws ScheduleException; | |
| 11 | + void validate_s_d(TTInfo ttInfo) throws ScheduleException; | |
| 12 | + void toggleCancel(Long id) throws ScheduleException; | |
| 13 | + | |
| 10 | 14 | } | ... | ... |
src/main/java/com/bsth/service/schedule/TTInfoServiceImpl.java deleted
100644 → 0
| 1 | -package com.bsth.service.schedule; | |
| 2 | - | |
| 3 | -import com.bsth.common.ResponseCode; | |
| 4 | -import com.bsth.entity.schedule.TTInfo; | |
| 5 | -import com.bsth.repository.schedule.TTInfoRepository; | |
| 6 | -import com.bsth.service.impl.BaseServiceImpl; | |
| 7 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | -import org.springframework.stereotype.Service; | |
| 9 | - | |
| 10 | -import javax.transaction.Transactional; | |
| 11 | -import java.util.HashMap; | |
| 12 | -import java.util.Map; | |
| 13 | - | |
| 14 | -/** | |
| 15 | - * Created by xu on 16/5/12. | |
| 16 | - */ | |
| 17 | -@Service | |
| 18 | -@Transactional | |
| 19 | -public class TTInfoServiceImpl extends BaseServiceImpl<TTInfo, Long> implements TTInfoService { | |
| 20 | - @Autowired | |
| 21 | - private TTInfoRepository ttInfoRepository; | |
| 22 | - | |
| 23 | - @Transactional | |
| 24 | - @Override | |
| 25 | - public Map<String, Object> delete(Long aLong) { | |
| 26 | - // 获取待作废的数据 | |
| 27 | - TTInfo ttInfo = ttInfoRepository.findOne(aLong); | |
| 28 | - | |
| 29 | - toogleIsCancel(ttInfo); | |
| 30 | - | |
| 31 | - Map<String, Object> map = new HashMap<>(); | |
| 32 | - map.put("status", ResponseCode.SUCCESS); | |
| 33 | - | |
| 34 | - return map; | |
| 35 | - } | |
| 36 | - | |
| 37 | - | |
| 38 | - | |
| 39 | - private void toogleIsCancel(TTInfo ttInfo) { | |
| 40 | - boolean isCancel = ttInfo.getIsCancel(); | |
| 41 | - if (isCancel) { | |
| 42 | - ttInfo.setIsCancel(false); | |
| 43 | - } else { | |
| 44 | - ttInfo.setIsCancel(true); | |
| 45 | - } | |
| 46 | - } | |
| 47 | -} |
src/main/java/com/bsth/service/schedule/impl/RerunServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.schedule.impl; | |
| 2 | + | |
| 3 | +import com.bsth.entity.schedule.rule.RerunRule; | |
| 4 | +import com.bsth.service.schedule.RerunService; | |
| 5 | +import com.bsth.service.schedule.ScheduleException; | |
| 6 | +import org.springframework.stereotype.Service; | |
| 7 | +import org.springframework.transaction.annotation.Transactional; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * Created by xu on 16/10/20. | |
| 11 | + */ | |
| 12 | +@Service | |
| 13 | +public class RerunServiceImpl extends BServiceImpl<RerunRule, Long> implements RerunService { | |
| 14 | + | |
| 15 | + @Transactional | |
| 16 | + @Override | |
| 17 | + public void delete(Long aLong) throws ScheduleException { | |
| 18 | + toggleCancel(aLong); | |
| 19 | + } | |
| 20 | + | |
| 21 | + private void toggleCancel(Long id) throws ScheduleException { | |
| 22 | + RerunRule rerunRule = findById(id); | |
| 23 | + if (rerunRule.getIsCancel()) { | |
| 24 | + rerunRule.setIsCancel(false); | |
| 25 | + } else { | |
| 26 | + rerunRule.setIsCancel(true); | |
| 27 | + } | |
| 28 | + } | |
| 29 | +} | ... | ... |
src/main/java/com/bsth/service/schedule/impl/TTInfoServiceImpl.java
0 → 100644
| 1 | +package com.bsth.service.schedule.impl; | |
| 2 | + | |
| 3 | +import com.bsth.entity.schedule.TTInfo; | |
| 4 | +import com.bsth.service.schedule.ScheduleException; | |
| 5 | +import com.bsth.service.schedule.TTInfoService; | |
| 6 | +import org.apache.commons.lang3.StringUtils; | |
| 7 | +import org.springframework.stereotype.Service; | |
| 8 | +import org.springframework.transaction.annotation.Transactional; | |
| 9 | +import org.springframework.util.CollectionUtils; | |
| 10 | + | |
| 11 | +import java.util.HashMap; | |
| 12 | +import java.util.List; | |
| 13 | +import java.util.Map; | |
| 14 | + | |
| 15 | +/** | |
| 16 | + * Created by xu on 16/12/20. | |
| 17 | + */ | |
| 18 | +@Service | |
| 19 | +public class TTInfoServiceImpl extends BServiceImpl<TTInfo, Long> implements TTInfoService { | |
| 20 | + | |
| 21 | + @Override | |
| 22 | + public void validate_name(TTInfo ttInfo) throws ScheduleException { | |
| 23 | + // 名字重复验证 | |
| 24 | + Map<String, Object> param = new HashMap<>(); | |
| 25 | + if (ttInfo.getId() != null) { | |
| 26 | + param.put("id_ne", ttInfo.getId()); | |
| 27 | + } | |
| 28 | + param.put("xl.id_eq", ttInfo.getXl().getId()); | |
| 29 | + param.put("name_eq", ttInfo.getName()); | |
| 30 | + | |
| 31 | + if (!CollectionUtils.isEmpty(list(param))) { | |
| 32 | + throw new ScheduleException("名字重复"); | |
| 33 | + } | |
| 34 | + } | |
| 35 | + | |
| 36 | + @Override | |
| 37 | + public void validate_n_d(TTInfo ttInfo) throws ScheduleException { | |
| 38 | + // 常规有效日重复验证 | |
| 39 | + // 找出所有未作废,已启用的时刻表,验证 | |
| 40 | + Map<String, Object> param = new HashMap<>(); | |
| 41 | + if (ttInfo.getId() != null) { | |
| 42 | + param.put("id_ne", ttInfo.getId()); | |
| 43 | + } | |
| 44 | + param.put("xl.id_eq", ttInfo.getXl().getId()); | |
| 45 | + param.put("isCancel_eq", false); | |
| 46 | + param.put("isEnableDisTemplate_eq", true); | |
| 47 | + List<TTInfo> ttInfos = list(param); | |
| 48 | + if (StringUtils.isEmpty(ttInfo.getRule_days())) { | |
| 49 | + throw new ScheduleException("常规有效日为空"); | |
| 50 | + } else { | |
| 51 | + String[] nds = ttInfo.getRule_days().split(","); | |
| 52 | + for (TTInfo t : ttInfos) { | |
| 53 | + String[] nds_e = t.getRule_days().split(","); | |
| 54 | + for (int i = 0; i < 7; i++) { | |
| 55 | + if ("0".equals(nds[i])) { | |
| 56 | + // | |
| 57 | + } else { | |
| 58 | + if (nds[i].equals(nds_e[i])) { | |
| 59 | + throw new ScheduleException("当前常规有效日期已经使用"); | |
| 60 | + } | |
| 61 | + } | |
| 62 | + } | |
| 63 | + } | |
| 64 | + } | |
| 65 | + } | |
| 66 | + | |
| 67 | + @Override | |
| 68 | + public void validate_s_d(TTInfo ttInfo) throws ScheduleException { | |
| 69 | + // 特殊有效日重复验证 | |
| 70 | + // 找出所有未作废,已启用的时刻表,验证 | |
| 71 | + Map<String, Object> param = new HashMap<>(); | |
| 72 | + if (ttInfo.getId() != null) { | |
| 73 | + param.put("id_ne", ttInfo.getId()); | |
| 74 | + } | |
| 75 | + | |
| 76 | + param.put("xl.id_eq", ttInfo.getXl().getId()); | |
| 77 | + param.put("isCancel_eq", false); | |
| 78 | + param.put("isEnableDisTemplate_eq", true); | |
| 79 | + List<TTInfo> ttInfos = list(param); | |
| 80 | + if (StringUtils.isEmpty(ttInfo.getSpecial_days())) { | |
| 81 | + // | |
| 82 | + } else { | |
| 83 | + String[] sds = ttInfo.getSpecial_days().split(","); | |
| 84 | + for (TTInfo t : ttInfos) { | |
| 85 | + if (StringUtils.isEmpty(t.getSpecial_days())) { | |
| 86 | + // | |
| 87 | + } else { | |
| 88 | + for (String sd : sds) { | |
| 89 | + if (t.getSpecial_days().indexOf(sd) != -1) { | |
| 90 | + throw new ScheduleException("当前特殊日期已经使用"); | |
| 91 | + } | |
| 92 | + } | |
| 93 | + } | |
| 94 | + } | |
| 95 | + } | |
| 96 | + } | |
| 97 | + | |
| 98 | + | |
| 99 | + @Transactional | |
| 100 | + @Override | |
| 101 | + public void delete(Long aLong) throws ScheduleException { | |
| 102 | + toggleCancel(aLong); | |
| 103 | + } | |
| 104 | + | |
| 105 | + @Transactional | |
| 106 | + @Override | |
| 107 | + public void toggleCancel(Long id) throws ScheduleException { | |
| 108 | + TTInfo ttInfo = findById(id); | |
| 109 | + if (ttInfo.getIsCancel()) { | |
| 110 | + ttInfo.setIsCancel(false); | |
| 111 | + } else { | |
| 112 | + ttInfo.setIsCancel(true); | |
| 113 | + } | |
| 114 | + } | |
| 115 | +} | ... | ... |
src/main/resources/application-dev.properties
| ... | ... | @@ -8,9 +8,9 @@ spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy |
| 8 | 8 | spring.jpa.database= MYSQL |
| 9 | 9 | spring.jpa.show-sql= true |
| 10 | 10 | spring.datasource.driver-class-name= com.mysql.jdbc.Driver |
| 11 | -spring.datasource.url= jdbc:mysql://192.168.168.201/mh_control?useUnicode=true&characterEncoding=utf-8&useSSL=false | |
| 11 | +spring.datasource.url= jdbc:mysql://127.0.0.1/qp_control?useUnicode=true&characterEncoding=utf-8&useSSL=false | |
| 12 | 12 | spring.datasource.username= root |
| 13 | -spring.datasource.password= 123456 | |
| 13 | +spring.datasource.password= | |
| 14 | 14 | #spring.datasource.url= jdbc:mysql://192.168.168.117/pd_control?useUnicode=true&characterEncoding=utf-8&useSSL=false |
| 15 | 15 | #spring.datasource.username= root |
| 16 | 16 | #spring.datasource.password= root | ... | ... |
src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr
| ... | ... | @@ -116,6 +116,27 @@ |
| 116 | 116 | <bordercolorblue>100</bordercolorblue> |
| 117 | 117 | <drawshadow>Y</drawshadow> |
| 118 | 118 | </notepad> |
| 119 | + <notepad> | |
| 120 | + <note>这里有些问题
在window2012的环境下,
MySql数据库查询中如果返回中文内容的字段,这个内容乱码
解决办法,就是数据库查询全部缓存,就不乱码
linux环境下没问题</note> | |
| 121 | + <xloc>721</xloc> | |
| 122 | + <yloc>762</yloc> | |
| 123 | + <width>333</width> | |
| 124 | + <heigth>90</heigth> | |
| 125 | + <fontname>YaHei Consolas Hybrid</fontname> | |
| 126 | + <fontsize>12</fontsize> | |
| 127 | + <fontbold>N</fontbold> | |
| 128 | + <fontitalic>N</fontitalic> | |
| 129 | + <fontcolorred>0</fontcolorred> | |
| 130 | + <fontcolorgreen>0</fontcolorgreen> | |
| 131 | + <fontcolorblue>0</fontcolorblue> | |
| 132 | + <backgroundcolorred>255</backgroundcolorred> | |
| 133 | + <backgroundcolorgreen>205</backgroundcolorgreen> | |
| 134 | + <backgroundcolorblue>112</backgroundcolorblue> | |
| 135 | + <bordercolorred>100</bordercolorred> | |
| 136 | + <bordercolorgreen>100</bordercolorgreen> | |
| 137 | + <bordercolorblue>100</bordercolorblue> | |
| 138 | + <drawshadow>Y</drawshadow> | |
| 139 | + </notepad> | |
| 119 | 140 | </notepads> |
| 120 | 141 | <connection> |
| 121 | 142 | <name>bus_control_variable</name> |
| ... | ... | @@ -130,6 +151,7 @@ |
| 130 | 151 | <data_tablespace/> |
| 131 | 152 | <index_tablespace/> |
| 132 | 153 | <attributes> |
| 154 | + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute> | |
| 133 | 155 | <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> |
| 134 | 156 | <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> |
| 135 | 157 | <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> |
| ... | ... | @@ -437,7 +459,7 @@ |
| 437 | 459 | <optimizationLevel>9</optimizationLevel> |
| 438 | 460 | <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> |
| 439 | 461 | <jsScript_name>Script 1</jsScript_name> |
| 440 | - <jsScript_script>//Script here

// 添加站点标识
var cc_groups = qdzgroups.split(","); // 所有班次起点站数组
var zdzname = cc_groups[gno]; // 出场班次的终点站是下个班次的起始站
var endZdtype = 'E';</jsScript_script> | |
| 462 | + <jsScript_script>//Script here

// 添加站点标识
var cc_groups = qdzgroups.split(","); // 所有班次起点站数组
var zdzname = cc_groups[gno]; // 出场班次的终点站是下个班次的起始站
var endZdtype = 'E';

var destory = 0; // 未撤销flag</jsScript_script> | |
| 441 | 463 | </jsScript> </jsScripts> <fields> <field> <name>zdzname</name> |
| 442 | 464 | <rename>zdzname</rename> |
| 443 | 465 | <type>String</type> |
| ... | ... | @@ -450,6 +472,12 @@ |
| 450 | 472 | <length>-1</length> |
| 451 | 473 | <precision>-1</precision> |
| 452 | 474 | <replace>N</replace> |
| 475 | + </field> <field> <name>destory</name> | |
| 476 | + <rename>destory</rename> | |
| 477 | + <type>Integer</type> | |
| 478 | + <length>-1</length> | |
| 479 | + <precision>-1</precision> | |
| 480 | + <replace>N</replace> | |
| 453 | 481 | </field> </fields> <cluster_schema/> |
| 454 | 482 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 455 | 483 | <xloc>575</xloc> |
| ... | ... | @@ -1341,6 +1369,12 @@ |
| 1341 | 1369 | <condition>=</condition> |
| 1342 | 1370 | <name2/> |
| 1343 | 1371 | </key> |
| 1372 | + <key> | |
| 1373 | + <name>destory</name> | |
| 1374 | + <field>destroy</field> | |
| 1375 | + <condition>=</condition> | |
| 1376 | + <name2/> | |
| 1377 | + </key> | |
| 1344 | 1378 | <value> |
| 1345 | 1379 | <name>station</name> |
| 1346 | 1380 | <rename>zdzid</rename> |
| ... | ... | @@ -1677,6 +1711,12 @@ |
| 1677 | 1711 | <condition>=</condition> |
| 1678 | 1712 | <name2/> |
| 1679 | 1713 | </key> |
| 1714 | + <key> | |
| 1715 | + <name>destory</name> | |
| 1716 | + <field>destroy</field> | |
| 1717 | + <condition>=</condition> | |
| 1718 | + <name2/> | |
| 1719 | + </key> | |
| 1680 | 1720 | <value> |
| 1681 | 1721 | <name>station_name</name> |
| 1682 | 1722 | <rename>zdzname</rename> |
| ... | ... | @@ -1737,6 +1777,12 @@ |
| 1737 | 1777 | <condition>=</condition> |
| 1738 | 1778 | <name2/> |
| 1739 | 1779 | </key> |
| 1780 | + <key> | |
| 1781 | + <name>destory</name> | |
| 1782 | + <field>destroy</field> | |
| 1783 | + <condition>=</condition> | |
| 1784 | + <name2/> | |
| 1785 | + </key> | |
| 1740 | 1786 | <value> |
| 1741 | 1787 | <name>station</name> |
| 1742 | 1788 | <rename>qdzid</rename> |
| ... | ... | @@ -1845,6 +1891,12 @@ |
| 1845 | 1891 | <condition>=</condition> |
| 1846 | 1892 | <name2/> |
| 1847 | 1893 | </key> |
| 1894 | + <key> | |
| 1895 | + <name>destory</name> | |
| 1896 | + <field>destroy</field> | |
| 1897 | + <condition>=</condition> | |
| 1898 | + <name2/> | |
| 1899 | + </key> | |
| 1848 | 1900 | <value> |
| 1849 | 1901 | <name>directions</name> |
| 1850 | 1902 | <rename>sxx</rename> |
| ... | ... | @@ -1872,8 +1924,8 @@ |
| 1872 | 1924 | <schema_name/> |
| 1873 | 1925 | </partitioning> |
| 1874 | 1926 | <connection>bus_control_variable</connection> |
| 1875 | - <cache>N</cache> | |
| 1876 | - <cache_load_all>N</cache_load_all> | |
| 1927 | + <cache>Y</cache> | |
| 1928 | + <cache_load_all>Y</cache_load_all> | |
| 1877 | 1929 | <cache_size>0</cache_size> |
| 1878 | 1930 | <lookup> |
| 1879 | 1931 | <schema/> |
| ... | ... | @@ -1899,6 +1951,12 @@ |
| 1899 | 1951 | <condition>=</condition> |
| 1900 | 1952 | <name2/> |
| 1901 | 1953 | </key> |
| 1954 | + <key> | |
| 1955 | + <name>destory</name> | |
| 1956 | + <field>destroy</field> | |
| 1957 | + <condition>=</condition> | |
| 1958 | + <name2/> | |
| 1959 | + </key> | |
| 1902 | 1960 | <value> |
| 1903 | 1961 | <name>station_name</name> |
| 1904 | 1962 | <rename>zdzname_calcu</rename> |
| ... | ... | @@ -1953,6 +2011,12 @@ |
| 1953 | 2011 | <condition>=</condition> |
| 1954 | 2012 | <name2/> |
| 1955 | 2013 | </key> |
| 2014 | + <key> | |
| 2015 | + <name>destory</name> | |
| 2016 | + <field>destroy</field> | |
| 2017 | + <condition>=</condition> | |
| 2018 | + <name2/> | |
| 2019 | + </key> | |
| 1956 | 2020 | <value> |
| 1957 | 2021 | <name>directions</name> |
| 1958 | 2022 | <rename>sxx2</rename> |
| ... | ... | @@ -1989,7 +2053,7 @@ |
| 1989 | 2053 | <optimizationLevel>9</optimizationLevel> |
| 1990 | 2054 | <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> |
| 1991 | 2055 | <jsScript_name>Script 1</jsScript_name> |
| 1992 | - <jsScript_script>//Script here

// 添加站点标识
var sendZdtype = 'B';
var endZdtype = 'E';
</jsScript_script> | |
| 2056 | + <jsScript_script>//Script here

// 添加站点标识
var sendZdtype = 'B';
var endZdtype = 'E';

var destory = 0; // 未撤销flag</jsScript_script> | |
| 1993 | 2057 | </jsScript> </jsScripts> <fields> <field> <name>sendZdtype</name> |
| 1994 | 2058 | <rename>sendZdtype</rename> |
| 1995 | 2059 | <type>String</type> |
| ... | ... | @@ -2002,6 +2066,12 @@ |
| 2002 | 2066 | <length>-1</length> |
| 2003 | 2067 | <precision>-1</precision> |
| 2004 | 2068 | <replace>N</replace> |
| 2069 | + </field> <field> <name>destory</name> | |
| 2070 | + <rename>destory</rename> | |
| 2071 | + <type>Integer</type> | |
| 2072 | + <length>-1</length> | |
| 2073 | + <precision>-1</precision> | |
| 2074 | + <replace>N</replace> | |
| 2005 | 2075 | </field> </fields> <cluster_schema/> |
| 2006 | 2076 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 2007 | 2077 | <xloc>588</xloc> |
| ... | ... | @@ -2539,7 +2609,7 @@ |
| 2539 | 2609 | <optimizationLevel>9</optimizationLevel> |
| 2540 | 2610 | <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> |
| 2541 | 2611 | <jsScript_name>Script 1</jsScript_name> |
| 2542 | - <jsScript_script>//Script here

// 添加站点标识
var cc_groups = qdzgroups.split(","); // 所有班次起点站数组
var qdzname_calcu = cc_groups[gno - 2]; // 进场班次的起点站是上一个班次的终点站,这里只有上一个班次的起点站,还需要计算
var startZdtype_calcu = 'B';
var endZdtype_calcu = 'E';</jsScript_script> | |
| 2612 | + <jsScript_script>//Script here

// 添加站点标识
var cc_groups = qdzgroups.split(","); // 所有班次起点站数组
var qdzname_calcu = cc_groups[gno - 2]; // 进场班次的起点站是上一个班次的终点站,这里只有上一个班次的起点站,还需要计算
var startZdtype_calcu = 'B';
var endZdtype_calcu = 'E';

var destory = 0; // 未撤销flag</jsScript_script> | |
| 2543 | 2613 | </jsScript> </jsScripts> <fields> <field> <name>qdzname_calcu</name> |
| 2544 | 2614 | <rename>qdzname_calcu</rename> |
| 2545 | 2615 | <type>String</type> |
| ... | ... | @@ -2558,6 +2628,12 @@ |
| 2558 | 2628 | <length>-1</length> |
| 2559 | 2629 | <precision>-1</precision> |
| 2560 | 2630 | <replace>N</replace> |
| 2631 | + </field> <field> <name>destory</name> | |
| 2632 | + <rename>destory</rename> | |
| 2633 | + <type>Integer</type> | |
| 2634 | + <length>-1</length> | |
| 2635 | + <precision>-1</precision> | |
| 2636 | + <replace>N</replace> | |
| 2561 | 2637 | </field> </fields> <cluster_schema/> |
| 2562 | 2638 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 2563 | 2639 | <xloc>754</xloc> | ... | ... |
src/main/resources/datatools/ktrs/ttinfodetailDataOutput.ktr
| ... | ... | @@ -74,6 +74,27 @@ |
| 74 | 74 | <is_key_private>N</is_key_private> |
| 75 | 75 | </info> |
| 76 | 76 | <notepads> |
| 77 | + <notepad> | |
| 78 | + <note>这里有些问题
在window2012的环境下,
MySql数据库查询中如果返回中文内容的字段,这个内容乱码
解决办法,就是数据库查询全部缓存,就不乱码
linux环境下没问题</note> | |
| 79 | + <xloc>114</xloc> | |
| 80 | + <yloc>227</yloc> | |
| 81 | + <width>333</width> | |
| 82 | + <heigth>90</heigth> | |
| 83 | + <fontname>YaHei Consolas Hybrid</fontname> | |
| 84 | + <fontsize>12</fontsize> | |
| 85 | + <fontbold>N</fontbold> | |
| 86 | + <fontitalic>N</fontitalic> | |
| 87 | + <fontcolorred>0</fontcolorred> | |
| 88 | + <fontcolorgreen>0</fontcolorgreen> | |
| 89 | + <fontcolorblue>0</fontcolorblue> | |
| 90 | + <backgroundcolorred>255</backgroundcolorred> | |
| 91 | + <backgroundcolorgreen>205</backgroundcolorgreen> | |
| 92 | + <backgroundcolorblue>112</backgroundcolorblue> | |
| 93 | + <bordercolorred>100</bordercolorred> | |
| 94 | + <bordercolorgreen>100</bordercolorgreen> | |
| 95 | + <bordercolorblue>100</bordercolorblue> | |
| 96 | + <drawshadow>Y</drawshadow> | |
| 97 | + </notepad> | |
| 77 | 98 | </notepads> |
| 78 | 99 | <connection> |
| 79 | 100 | <name>bus_control_variable</name> |
| ... | ... | @@ -88,6 +109,7 @@ |
| 88 | 109 | <data_tablespace/> |
| 89 | 110 | <index_tablespace/> |
| 90 | 111 | <attributes> |
| 112 | + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute> | |
| 91 | 113 | <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> |
| 92 | 114 | <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> |
| 93 | 115 | <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> |
| ... | ... | @@ -243,6 +265,73 @@ |
| 243 | 265 | <hop> <from>路牌名字查找</from><to>排序记录</to><enabled>Y</enabled> </hop> |
| 244 | 266 | </order> |
| 245 | 267 | <step> |
| 268 | + <name>Excel输出</name> | |
| 269 | + <type>ExcelOutput</type> | |
| 270 | + <description/> | |
| 271 | + <distribute>Y</distribute> | |
| 272 | + <custom_distribution/> | |
| 273 | + <copies>1</copies> | |
| 274 | + <partitioning> | |
| 275 | + <method>none</method> | |
| 276 | + <schema_name/> | |
| 277 | + </partitioning> | |
| 278 | + <header>Y</header> | |
| 279 | + <footer>N</footer> | |
| 280 | + <encoding/> | |
| 281 | + <append>N</append> | |
| 282 | + <add_to_result_filenames>Y</add_to_result_filenames> | |
| 283 | + <file> | |
| 284 | + <name>${filepath}</name> | |
| 285 | + <extention/> | |
| 286 | + <do_not_open_newfile_init>N</do_not_open_newfile_init> | |
| 287 | + <create_parent_folder>N</create_parent_folder> | |
| 288 | + <split>N</split> | |
| 289 | + <add_date>N</add_date> | |
| 290 | + <add_time>N</add_time> | |
| 291 | + <SpecifyFormat>N</SpecifyFormat> | |
| 292 | + <date_time_format/> | |
| 293 | + <sheetname>Sheet1</sheetname> | |
| 294 | + <autosizecolums>N</autosizecolums> | |
| 295 | + <nullisblank>N</nullisblank> | |
| 296 | + <protect_sheet>N</protect_sheet> | |
| 297 | + <password>Encrypted </password> | |
| 298 | + <splitevery>0</splitevery> | |
| 299 | + <usetempfiles>N</usetempfiles> | |
| 300 | + <tempdirectory/> | |
| 301 | + </file> | |
| 302 | + <template> | |
| 303 | + <enabled>N</enabled> | |
| 304 | + <append>N</append> | |
| 305 | + <filename>template.xls</filename> | |
| 306 | + </template> | |
| 307 | + <fields> | |
| 308 | + </fields> | |
| 309 | + <custom> | |
| 310 | + <header_font_name>arial</header_font_name> | |
| 311 | + <header_font_size>10</header_font_size> | |
| 312 | + <header_font_bold>N</header_font_bold> | |
| 313 | + <header_font_italic>N</header_font_italic> | |
| 314 | + <header_font_underline>no</header_font_underline> | |
| 315 | + <header_font_orientation>horizontal</header_font_orientation> | |
| 316 | + <header_font_color>black</header_font_color> | |
| 317 | + <header_background_color>none</header_background_color> | |
| 318 | + <header_row_height>255</header_row_height> | |
| 319 | + <header_alignment>left</header_alignment> | |
| 320 | + <header_image/> | |
| 321 | + <row_font_name>arial</row_font_name> | |
| 322 | + <row_font_size>10</row_font_size> | |
| 323 | + <row_font_color>black</row_font_color> | |
| 324 | + <row_background_color>none</row_background_color> | |
| 325 | + </custom> | |
| 326 | + <cluster_schema/> | |
| 327 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 328 | + <xloc>731</xloc> | |
| 329 | + <yloc>65</yloc> | |
| 330 | + <draw>Y</draw> | |
| 331 | + </GUI> | |
| 332 | + </step> | |
| 333 | + | |
| 334 | + <step> | |
| 246 | 335 | <name>列转行</name> |
| 247 | 336 | <type>Denormaliser</type> |
| 248 | 337 | <description/> |
| ... | ... | @@ -368,6 +457,30 @@ |
| 368 | 457 | </step> |
| 369 | 458 | |
| 370 | 459 | <step> |
| 460 | + <name>字段选择</name> | |
| 461 | + <type>SelectValues</type> | |
| 462 | + <description/> | |
| 463 | + <distribute>Y</distribute> | |
| 464 | + <custom_distribution/> | |
| 465 | + <copies>1</copies> | |
| 466 | + <partitioning> | |
| 467 | + <method>none</method> | |
| 468 | + <schema_name/> | |
| 469 | + </partitioning> | |
| 470 | + <fields> <field> <name>lp_name</name> | |
| 471 | + <rename>路牌</rename> | |
| 472 | + <length>-2</length> | |
| 473 | + <precision>-2</precision> | |
| 474 | + </field> <select_unspecified>Y</select_unspecified> | |
| 475 | + </fields> <cluster_schema/> | |
| 476 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 477 | + <xloc>534</xloc> | |
| 478 | + <yloc>243</yloc> | |
| 479 | + <draw>Y</draw> | |
| 480 | + </GUI> | |
| 481 | + </step> | |
| 482 | + | |
| 483 | + <step> | |
| 371 | 484 | <name>排序记录</name> |
| 372 | 485 | <type>SortRows</type> |
| 373 | 486 | <description/> |
| ... | ... | @@ -434,97 +547,6 @@ |
| 434 | 547 | </step> |
| 435 | 548 | |
| 436 | 549 | <step> |
| 437 | - <name>Excel输出</name> | |
| 438 | - <type>ExcelOutput</type> | |
| 439 | - <description/> | |
| 440 | - <distribute>Y</distribute> | |
| 441 | - <custom_distribution/> | |
| 442 | - <copies>1</copies> | |
| 443 | - <partitioning> | |
| 444 | - <method>none</method> | |
| 445 | - <schema_name/> | |
| 446 | - </partitioning> | |
| 447 | - <header>Y</header> | |
| 448 | - <footer>N</footer> | |
| 449 | - <encoding/> | |
| 450 | - <append>N</append> | |
| 451 | - <add_to_result_filenames>Y</add_to_result_filenames> | |
| 452 | - <file> | |
| 453 | - <name>${filepath}</name> | |
| 454 | - <extention/> | |
| 455 | - <do_not_open_newfile_init>N</do_not_open_newfile_init> | |
| 456 | - <create_parent_folder>N</create_parent_folder> | |
| 457 | - <split>N</split> | |
| 458 | - <add_date>N</add_date> | |
| 459 | - <add_time>N</add_time> | |
| 460 | - <SpecifyFormat>N</SpecifyFormat> | |
| 461 | - <date_time_format/> | |
| 462 | - <sheetname>Sheet1</sheetname> | |
| 463 | - <autosizecolums>N</autosizecolums> | |
| 464 | - <nullisblank>N</nullisblank> | |
| 465 | - <protect_sheet>N</protect_sheet> | |
| 466 | - <password>Encrypted </password> | |
| 467 | - <splitevery>0</splitevery> | |
| 468 | - <usetempfiles>N</usetempfiles> | |
| 469 | - <tempdirectory/> | |
| 470 | - </file> | |
| 471 | - <template> | |
| 472 | - <enabled>N</enabled> | |
| 473 | - <append>N</append> | |
| 474 | - <filename>template.xls</filename> | |
| 475 | - </template> | |
| 476 | - <fields> | |
| 477 | - </fields> | |
| 478 | - <custom> | |
| 479 | - <header_font_name>arial</header_font_name> | |
| 480 | - <header_font_size>10</header_font_size> | |
| 481 | - <header_font_bold>N</header_font_bold> | |
| 482 | - <header_font_italic>N</header_font_italic> | |
| 483 | - <header_font_underline>no</header_font_underline> | |
| 484 | - <header_font_orientation>horizontal</header_font_orientation> | |
| 485 | - <header_font_color>black</header_font_color> | |
| 486 | - <header_background_color>none</header_background_color> | |
| 487 | - <header_row_height>255</header_row_height> | |
| 488 | - <header_alignment>left</header_alignment> | |
| 489 | - <header_image/> | |
| 490 | - <row_font_name>arial</row_font_name> | |
| 491 | - <row_font_size>10</row_font_size> | |
| 492 | - <row_font_color>black</row_font_color> | |
| 493 | - <row_background_color>none</row_background_color> | |
| 494 | - </custom> | |
| 495 | - <cluster_schema/> | |
| 496 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 497 | - <xloc>731</xloc> | |
| 498 | - <yloc>65</yloc> | |
| 499 | - <draw>Y</draw> | |
| 500 | - </GUI> | |
| 501 | - </step> | |
| 502 | - | |
| 503 | - <step> | |
| 504 | - <name>字段选择</name> | |
| 505 | - <type>SelectValues</type> | |
| 506 | - <description/> | |
| 507 | - <distribute>Y</distribute> | |
| 508 | - <custom_distribution/> | |
| 509 | - <copies>1</copies> | |
| 510 | - <partitioning> | |
| 511 | - <method>none</method> | |
| 512 | - <schema_name/> | |
| 513 | - </partitioning> | |
| 514 | - <fields> <field> <name>lp_name</name> | |
| 515 | - <rename>路牌</rename> | |
| 516 | - <length>-2</length> | |
| 517 | - <precision>-2</precision> | |
| 518 | - </field> <select_unspecified>Y</select_unspecified> | |
| 519 | - </fields> <cluster_schema/> | |
| 520 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 521 | - <xloc>534</xloc> | |
| 522 | - <yloc>243</yloc> | |
| 523 | - <draw>Y</draw> | |
| 524 | - </GUI> | |
| 525 | - </step> | |
| 526 | - | |
| 527 | - <step> | |
| 528 | 550 | <name>路牌名字查找</name> |
| 529 | 551 | <type>DBLookup</type> |
| 530 | 552 | <description/> |
| ... | ... | @@ -536,8 +558,8 @@ |
| 536 | 558 | <schema_name/> |
| 537 | 559 | </partitioning> |
| 538 | 560 | <connection>bus_control_variable</connection> |
| 539 | - <cache>N</cache> | |
| 540 | - <cache_load_all>N</cache_load_all> | |
| 561 | + <cache>Y</cache> | |
| 562 | + <cache_load_all>Y</cache_load_all> | |
| 541 | 563 | <cache_size>0</cache_size> |
| 542 | 564 | <lookup> |
| 543 | 565 | <schema/> | ... | ... |
src/main/resources/datatools/ktrs/ttinfodetailDataOutputMetaData.ktr
| ... | ... | @@ -89,6 +89,27 @@ |
| 89 | 89 | <is_key_private>N</is_key_private> |
| 90 | 90 | </info> |
| 91 | 91 | <notepads> |
| 92 | + <notepad> | |
| 93 | + <note>这里有些问题
在window2012的环境下,
MySql数据库查询中如果返回中文内容的字段,这个内容乱码
解决办法,就是数据库查询全部缓存,就不乱码
linux环境下没问题</note> | |
| 94 | + <xloc>165</xloc> | |
| 95 | + <yloc>402</yloc> | |
| 96 | + <width>333</width> | |
| 97 | + <heigth>90</heigth> | |
| 98 | + <fontname>YaHei Consolas Hybrid</fontname> | |
| 99 | + <fontsize>12</fontsize> | |
| 100 | + <fontbold>N</fontbold> | |
| 101 | + <fontitalic>N</fontitalic> | |
| 102 | + <fontcolorred>0</fontcolorred> | |
| 103 | + <fontcolorgreen>0</fontcolorgreen> | |
| 104 | + <fontcolorblue>0</fontcolorblue> | |
| 105 | + <backgroundcolorred>255</backgroundcolorred> | |
| 106 | + <backgroundcolorgreen>205</backgroundcolorgreen> | |
| 107 | + <backgroundcolorblue>112</backgroundcolorblue> | |
| 108 | + <bordercolorred>100</bordercolorred> | |
| 109 | + <bordercolorgreen>100</bordercolorgreen> | |
| 110 | + <bordercolorblue>100</bordercolorblue> | |
| 111 | + <drawshadow>Y</drawshadow> | |
| 112 | + </notepad> | |
| 92 | 113 | </notepads> |
| 93 | 114 | <connection> |
| 94 | 115 | <name>bus_control_variable</name> |
| ... | ... | @@ -103,6 +124,7 @@ |
| 103 | 124 | <data_tablespace/> |
| 104 | 125 | <index_tablespace/> |
| 105 | 126 | <attributes> |
| 127 | + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute> | |
| 106 | 128 | <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> |
| 107 | 129 | <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> |
| 108 | 130 | <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> |
| ... | ... | @@ -322,8 +344,8 @@ |
| 322 | 344 | </step> |
| 323 | 345 | |
| 324 | 346 | <step> |
| 325 | - <name>时刻表明细分组数据</name> | |
| 326 | - <type>TableInput</type> | |
| 347 | + <name>字段选择</name> | |
| 348 | + <type>SelectValues</type> | |
| 327 | 349 | <description/> |
| 328 | 350 | <distribute>Y</distribute> |
| 329 | 351 | <custom_distribution/> |
| ... | ... | @@ -332,24 +354,30 @@ |
| 332 | 354 | <method>none</method> |
| 333 | 355 | <schema_name/> |
| 334 | 356 | </partitioning> |
| 335 | - <connection>bus_control_variable</connection> | |
| 336 | - <sql>select 
fcno
, min(xl_dir) xl_dir
,min(qdz) qdz
,min(zdz) zdz
,bc_type 
from bsth_c_s_ttinfo_detail
where ttinfo = ${ttinfoid}
group by fcno,bc_type</sql> | |
| 337 | - <limit>0</limit> | |
| 338 | - <lookup/> | |
| 339 | - <execute_each_row>N</execute_each_row> | |
| 340 | - <variables_active>Y</variables_active> | |
| 341 | - <lazy_conversion_active>N</lazy_conversion_active> | |
| 342 | - <cluster_schema/> | |
| 357 | + <fields> <field> <name>fieldname</name> | |
| 358 | + <rename/> | |
| 359 | + <length>-2</length> | |
| 360 | + <precision>-2</precision> | |
| 361 | + </field> <field> <name>fieldtype</name> | |
| 362 | + <rename/> | |
| 363 | + <length>-2</length> | |
| 364 | + <precision>-2</precision> | |
| 365 | + </field> <field> <name>fcno</name> | |
| 366 | + <rename/> | |
| 367 | + <length>-2</length> | |
| 368 | + <precision>-2</precision> | |
| 369 | + </field> <select_unspecified>N</select_unspecified> | |
| 370 | + </fields> <cluster_schema/> | |
| 343 | 371 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 344 | - <xloc>56</xloc> | |
| 345 | - <yloc>185</yloc> | |
| 372 | + <xloc>533</xloc> | |
| 373 | + <yloc>325</yloc> | |
| 346 | 374 | <draw>Y</draw> |
| 347 | 375 | </GUI> |
| 348 | 376 | </step> |
| 349 | 377 | |
| 350 | 378 | <step> |
| 351 | - <name>过滤记录</name> | |
| 352 | - <type>FilterRows</type> | |
| 379 | + <name>排序记录</name> | |
| 380 | + <type>SortRows</type> | |
| 353 | 381 | <description/> |
| 354 | 382 | <distribute>Y</distribute> |
| 355 | 383 | <custom_distribution/> |
| ... | ... | @@ -358,27 +386,32 @@ |
| 358 | 386 | <method>none</method> |
| 359 | 387 | <schema_name/> |
| 360 | 388 | </partitioning> |
| 361 | -<send_true_to/> | |
| 362 | -<send_false_to/> | |
| 363 | - <compare> | |
| 364 | -<condition> | |
| 365 | - <negated>N</negated> | |
| 366 | - <leftvalue>bc_type</leftvalue> | |
| 367 | - <function>IS NOT NULL</function> | |
| 368 | - <rightvalue/> | |
| 369 | - </condition> | |
| 370 | - </compare> | |
| 389 | + <directory>%%java.io.tmpdir%%</directory> | |
| 390 | + <prefix>out</prefix> | |
| 391 | + <sort_size>1000000</sort_size> | |
| 392 | + <free_memory/> | |
| 393 | + <compress>N</compress> | |
| 394 | + <compress_variable/> | |
| 395 | + <unique_rows>N</unique_rows> | |
| 396 | + <fields> | |
| 397 | + <field> | |
| 398 | + <name>fcno</name> | |
| 399 | + <ascending>Y</ascending> | |
| 400 | + <case_sensitive>N</case_sensitive> | |
| 401 | + <presorted>N</presorted> | |
| 402 | + </field> | |
| 403 | + </fields> | |
| 371 | 404 | <cluster_schema/> |
| 372 | 405 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 373 | - <xloc>182</xloc> | |
| 374 | - <yloc>189</yloc> | |
| 406 | + <xloc>642</xloc> | |
| 407 | + <yloc>325</yloc> | |
| 375 | 408 | <draw>Y</draw> |
| 376 | 409 | </GUI> |
| 377 | 410 | </step> |
| 378 | 411 | |
| 379 | 412 | <step> |
| 380 | - <name>计算站点</name> | |
| 381 | - <type>ScriptValueMod</type> | |
| 413 | + <name>时刻表明细分组数据</name> | |
| 414 | + <type>TableInput</type> | |
| 382 | 415 | <description/> |
| 383 | 416 | <distribute>Y</distribute> |
| 384 | 417 | <custom_distribution/> |
| ... | ... | @@ -387,21 +420,17 @@ |
| 387 | 420 | <method>none</method> |
| 388 | 421 | <schema_name/> |
| 389 | 422 | </partitioning> |
| 390 | - <compatible>N</compatible> | |
| 391 | - <optimizationLevel>9</optimizationLevel> | |
| 392 | - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> | |
| 393 | - <jsScript_name>Script 1</jsScript_name> | |
| 394 | - <jsScript_script>//Script here

var zd;

if (bc_type == 'in') {
 zd = qdz;
} else if (bc_type == 'out') {
 zd = zdz;
} else if (bc_type == 'normal') {
 zd = qdz;
} else {
 zd = qdz;
}
</jsScript_script> | |
| 395 | - </jsScript> </jsScripts> <fields> <field> <name>zd</name> | |
| 396 | - <rename>zd</rename> | |
| 397 | - <type>String</type> | |
| 398 | - <length>-1</length> | |
| 399 | - <precision>-1</precision> | |
| 400 | - <replace>N</replace> | |
| 401 | - </field> </fields> <cluster_schema/> | |
| 423 | + <connection>bus_control_variable</connection> | |
| 424 | + <sql>select 
fcno
, min(xl_dir) xl_dir
,min(qdz) qdz
,min(zdz) zdz
,bc_type 
from bsth_c_s_ttinfo_detail
where ttinfo = ${ttinfoid}
group by fcno,bc_type</sql> | |
| 425 | + <limit>0</limit> | |
| 426 | + <lookup/> | |
| 427 | + <execute_each_row>N</execute_each_row> | |
| 428 | + <variables_active>Y</variables_active> | |
| 429 | + <lazy_conversion_active>N</lazy_conversion_active> | |
| 430 | + <cluster_schema/> | |
| 402 | 431 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 403 | - <xloc>300</xloc> | |
| 404 | - <yloc>190</yloc> | |
| 432 | + <xloc>56</xloc> | |
| 433 | + <yloc>185</yloc> | |
| 405 | 434 | <draw>Y</draw> |
| 406 | 435 | </GUI> |
| 407 | 436 | </step> |
| ... | ... | @@ -418,8 +447,8 @@ |
| 418 | 447 | <schema_name/> |
| 419 | 448 | </partitioning> |
| 420 | 449 | <connection>bus_control_variable</connection> |
| 421 | - <cache>N</cache> | |
| 422 | - <cache_load_all>N</cache_load_all> | |
| 450 | + <cache>Y</cache> | |
| 451 | + <cache_load_all>Y</cache_load_all> | |
| 423 | 452 | <cache_size>0</cache_size> |
| 424 | 453 | <lookup> |
| 425 | 454 | <schema/> |
| ... | ... | @@ -455,8 +484,8 @@ |
| 455 | 484 | </step> |
| 456 | 485 | |
| 457 | 486 | <step> |
| 458 | - <name>计算反范式元数据</name> | |
| 459 | - <type>ScriptValueMod</type> | |
| 487 | + <name>生成路牌字段</name> | |
| 488 | + <type>RowGenerator</type> | |
| 460 | 489 | <description/> |
| 461 | 490 | <distribute>Y</distribute> |
| 462 | 491 | <custom_distribution/> |
| ... | ... | @@ -465,39 +494,53 @@ |
| 465 | 494 | <method>none</method> |
| 466 | 495 | <schema_name/> |
| 467 | 496 | </partitioning> |
| 468 | - <compatible>N</compatible> | |
| 469 | - <optimizationLevel>9</optimizationLevel> | |
| 470 | - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> | |
| 471 | - <jsScript_name>Script 1</jsScript_name> | |
| 472 | - <jsScript_script>//Script here

var targetfieldname; // 目标字段名
var targettype; // 目标类型
var valuefieldname; // 值字段名
var keyvalue; // 关键字值

if (bc_type == 'in') {
 targetfieldname = '进场' + fcno;
} else if (bc_type == 'out') {
 targetfieldname = '出场' + fcno;
} else if (bc_type == 'normal') {
 targetfieldname = zdname + fcno;
} else {
 targetfieldname = zdname + fcno;
} 

targettype = 'String';
valuefieldname = 'fcsj';
keyvalue = fcno;
</jsScript_script> | |
| 473 | - </jsScript> </jsScripts> <fields> <field> <name>targetfieldname</name> | |
| 474 | - <rename>targetfieldname</rename> | |
| 475 | - <type>String</type> | |
| 476 | - <length>-1</length> | |
| 477 | - <precision>-1</precision> | |
| 478 | - <replace>N</replace> | |
| 479 | - </field> <field> <name>targettype</name> | |
| 480 | - <rename>targettype</rename> | |
| 497 | + <fields> | |
| 498 | + <field> | |
| 499 | + <name>fieldname</name> | |
| 481 | 500 | <type>String</type> |
| 501 | + <format/> | |
| 502 | + <currency/> | |
| 503 | + <decimal/> | |
| 504 | + <group/> | |
| 505 | + <nullif>路牌</nullif> | |
| 482 | 506 | <length>-1</length> |
| 483 | 507 | <precision>-1</precision> |
| 484 | - <replace>N</replace> | |
| 485 | - </field> <field> <name>valuefieldname</name> | |
| 486 | - <rename>valuefieldname</rename> | |
| 508 | + <set_empty_string>N</set_empty_string> | |
| 509 | + </field> | |
| 510 | + <field> | |
| 511 | + <name>fieldtype</name> | |
| 487 | 512 | <type>String</type> |
| 513 | + <format/> | |
| 514 | + <currency/> | |
| 515 | + <decimal/> | |
| 516 | + <group/> | |
| 517 | + <nullif>String</nullif> | |
| 488 | 518 | <length>-1</length> |
| 489 | 519 | <precision>-1</precision> |
| 490 | - <replace>N</replace> | |
| 491 | - </field> <field> <name>keyvalue</name> | |
| 492 | - <rename>keyvalue</rename> | |
| 493 | - <type>String</type> | |
| 520 | + <set_empty_string>N</set_empty_string> | |
| 521 | + </field> | |
| 522 | + <field> | |
| 523 | + <name>fcno</name> | |
| 524 | + <type>Integer</type> | |
| 525 | + <format/> | |
| 526 | + <currency/> | |
| 527 | + <decimal/> | |
| 528 | + <group/> | |
| 529 | + <nullif>0</nullif> | |
| 494 | 530 | <length>-1</length> |
| 495 | 531 | <precision>-1</precision> |
| 496 | - <replace>N</replace> | |
| 497 | - </field> </fields> <cluster_schema/> | |
| 532 | + <set_empty_string>N</set_empty_string> | |
| 533 | + </field> | |
| 534 | + </fields> | |
| 535 | + <limit>1</limit> | |
| 536 | + <never_ending>N</never_ending> | |
| 537 | + <interval_in_ms>5000</interval_in_ms> | |
| 538 | + <row_time_field>now</row_time_field> | |
| 539 | + <last_time_field>FiveSecondsAgo</last_time_field> | |
| 540 | + <cluster_schema/> | |
| 498 | 541 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 499 | - <xloc>410</xloc> | |
| 500 | - <yloc>64</yloc> | |
| 542 | + <xloc>530</xloc> | |
| 543 | + <yloc>194</yloc> | |
| 501 | 544 | <draw>Y</draw> |
| 502 | 545 | </GUI> |
| 503 | 546 | </step> |
| ... | ... | @@ -539,8 +582,8 @@ |
| 539 | 582 | </step> |
| 540 | 583 | |
| 541 | 584 | <step> |
| 542 | - <name>字段选择</name> | |
| 543 | - <type>SelectValues</type> | |
| 585 | + <name>计算反范式元数据</name> | |
| 586 | + <type>ScriptValueMod</type> | |
| 544 | 587 | <description/> |
| 545 | 588 | <distribute>Y</distribute> |
| 546 | 589 | <custom_distribution/> |
| ... | ... | @@ -549,30 +592,46 @@ |
| 549 | 592 | <method>none</method> |
| 550 | 593 | <schema_name/> |
| 551 | 594 | </partitioning> |
| 552 | - <fields> <field> <name>fieldname</name> | |
| 553 | - <rename/> | |
| 554 | - <length>-2</length> | |
| 555 | - <precision>-2</precision> | |
| 556 | - </field> <field> <name>fieldtype</name> | |
| 557 | - <rename/> | |
| 558 | - <length>-2</length> | |
| 559 | - <precision>-2</precision> | |
| 560 | - </field> <field> <name>fcno</name> | |
| 561 | - <rename/> | |
| 562 | - <length>-2</length> | |
| 563 | - <precision>-2</precision> | |
| 564 | - </field> <select_unspecified>N</select_unspecified> | |
| 565 | - </fields> <cluster_schema/> | |
| 595 | + <compatible>N</compatible> | |
| 596 | + <optimizationLevel>9</optimizationLevel> | |
| 597 | + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> | |
| 598 | + <jsScript_name>Script 1</jsScript_name> | |
| 599 | + <jsScript_script>//Script here

var targetfieldname; // 目标字段名
var targettype; // 目标类型
var valuefieldname; // 值字段名
var keyvalue; // 关键字值

if (bc_type == 'in') {
 targetfieldname = '进场' + fcno;
} else if (bc_type == 'out') {
 targetfieldname = '出场' + fcno;
} else if (bc_type == 'normal') {
 targetfieldname = zdname + fcno;
} else {
 targetfieldname = zdname + fcno;
} 

targettype = 'String';
valuefieldname = 'fcsj';
keyvalue = fcno;
</jsScript_script> | |
| 600 | + </jsScript> </jsScripts> <fields> <field> <name>targetfieldname</name> | |
| 601 | + <rename>targetfieldname</rename> | |
| 602 | + <type>String</type> | |
| 603 | + <length>-1</length> | |
| 604 | + <precision>-1</precision> | |
| 605 | + <replace>N</replace> | |
| 606 | + </field> <field> <name>targettype</name> | |
| 607 | + <rename>targettype</rename> | |
| 608 | + <type>String</type> | |
| 609 | + <length>-1</length> | |
| 610 | + <precision>-1</precision> | |
| 611 | + <replace>N</replace> | |
| 612 | + </field> <field> <name>valuefieldname</name> | |
| 613 | + <rename>valuefieldname</rename> | |
| 614 | + <type>String</type> | |
| 615 | + <length>-1</length> | |
| 616 | + <precision>-1</precision> | |
| 617 | + <replace>N</replace> | |
| 618 | + </field> <field> <name>keyvalue</name> | |
| 619 | + <rename>keyvalue</rename> | |
| 620 | + <type>String</type> | |
| 621 | + <length>-1</length> | |
| 622 | + <precision>-1</precision> | |
| 623 | + <replace>N</replace> | |
| 624 | + </field> </fields> <cluster_schema/> | |
| 566 | 625 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 567 | - <xloc>533</xloc> | |
| 568 | - <yloc>325</yloc> | |
| 626 | + <xloc>410</xloc> | |
| 627 | + <yloc>64</yloc> | |
| 569 | 628 | <draw>Y</draw> |
| 570 | 629 | </GUI> |
| 571 | 630 | </step> |
| 572 | 631 | |
| 573 | 632 | <step> |
| 574 | - <name>生成路牌字段</name> | |
| 575 | - <type>RowGenerator</type> | |
| 633 | + <name>计算站点</name> | |
| 634 | + <type>ScriptValueMod</type> | |
| 576 | 635 | <description/> |
| 577 | 636 | <distribute>Y</distribute> |
| 578 | 637 | <custom_distribution/> |
| ... | ... | @@ -581,60 +640,28 @@ |
| 581 | 640 | <method>none</method> |
| 582 | 641 | <schema_name/> |
| 583 | 642 | </partitioning> |
| 584 | - <fields> | |
| 585 | - <field> | |
| 586 | - <name>fieldname</name> | |
| 587 | - <type>String</type> | |
| 588 | - <format/> | |
| 589 | - <currency/> | |
| 590 | - <decimal/> | |
| 591 | - <group/> | |
| 592 | - <nullif>路牌</nullif> | |
| 593 | - <length>-1</length> | |
| 594 | - <precision>-1</precision> | |
| 595 | - <set_empty_string>N</set_empty_string> | |
| 596 | - </field> | |
| 597 | - <field> | |
| 598 | - <name>fieldtype</name> | |
| 643 | + <compatible>N</compatible> | |
| 644 | + <optimizationLevel>9</optimizationLevel> | |
| 645 | + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type> | |
| 646 | + <jsScript_name>Script 1</jsScript_name> | |
| 647 | + <jsScript_script>//Script here

var zd;

if (bc_type == 'in') {
 zd = qdz;
} else if (bc_type == 'out') {
 zd = zdz;
} else if (bc_type == 'normal') {
 zd = qdz;
} else {
 zd = qdz;
}
</jsScript_script> | |
| 648 | + </jsScript> </jsScripts> <fields> <field> <name>zd</name> | |
| 649 | + <rename>zd</rename> | |
| 599 | 650 | <type>String</type> |
| 600 | - <format/> | |
| 601 | - <currency/> | |
| 602 | - <decimal/> | |
| 603 | - <group/> | |
| 604 | - <nullif>String</nullif> | |
| 605 | - <length>-1</length> | |
| 606 | - <precision>-1</precision> | |
| 607 | - <set_empty_string>N</set_empty_string> | |
| 608 | - </field> | |
| 609 | - <field> | |
| 610 | - <name>fcno</name> | |
| 611 | - <type>Integer</type> | |
| 612 | - <format/> | |
| 613 | - <currency/> | |
| 614 | - <decimal/> | |
| 615 | - <group/> | |
| 616 | - <nullif>0</nullif> | |
| 617 | 651 | <length>-1</length> |
| 618 | 652 | <precision>-1</precision> |
| 619 | - <set_empty_string>N</set_empty_string> | |
| 620 | - </field> | |
| 621 | - </fields> | |
| 622 | - <limit>1</limit> | |
| 623 | - <never_ending>N</never_ending> | |
| 624 | - <interval_in_ms>5000</interval_in_ms> | |
| 625 | - <row_time_field>now</row_time_field> | |
| 626 | - <last_time_field>FiveSecondsAgo</last_time_field> | |
| 627 | - <cluster_schema/> | |
| 653 | + <replace>N</replace> | |
| 654 | + </field> </fields> <cluster_schema/> | |
| 628 | 655 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 629 | - <xloc>530</xloc> | |
| 630 | - <yloc>194</yloc> | |
| 656 | + <xloc>300</xloc> | |
| 657 | + <yloc>190</yloc> | |
| 631 | 658 | <draw>Y</draw> |
| 632 | 659 | </GUI> |
| 633 | 660 | </step> |
| 634 | 661 | |
| 635 | 662 | <step> |
| 636 | - <name>排序记录</name> | |
| 637 | - <type>SortRows</type> | |
| 663 | + <name>过滤记录</name> | |
| 664 | + <type>FilterRows</type> | |
| 638 | 665 | <description/> |
| 639 | 666 | <distribute>Y</distribute> |
| 640 | 667 | <custom_distribution/> |
| ... | ... | @@ -643,25 +670,20 @@ |
| 643 | 670 | <method>none</method> |
| 644 | 671 | <schema_name/> |
| 645 | 672 | </partitioning> |
| 646 | - <directory>%%java.io.tmpdir%%</directory> | |
| 647 | - <prefix>out</prefix> | |
| 648 | - <sort_size>1000000</sort_size> | |
| 649 | - <free_memory/> | |
| 650 | - <compress>N</compress> | |
| 651 | - <compress_variable/> | |
| 652 | - <unique_rows>N</unique_rows> | |
| 653 | - <fields> | |
| 654 | - <field> | |
| 655 | - <name>fcno</name> | |
| 656 | - <ascending>Y</ascending> | |
| 657 | - <case_sensitive>N</case_sensitive> | |
| 658 | - <presorted>N</presorted> | |
| 659 | - </field> | |
| 660 | - </fields> | |
| 673 | +<send_true_to/> | |
| 674 | +<send_false_to/> | |
| 675 | + <compare> | |
| 676 | +<condition> | |
| 677 | + <negated>N</negated> | |
| 678 | + <leftvalue>bc_type</leftvalue> | |
| 679 | + <function>IS NOT NULL</function> | |
| 680 | + <rightvalue/> | |
| 681 | + </condition> | |
| 682 | + </compare> | |
| 661 | 683 | <cluster_schema/> |
| 662 | 684 | <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> |
| 663 | - <xloc>642</xloc> | |
| 664 | - <yloc>325</yloc> | |
| 685 | + <xloc>182</xloc> | |
| 686 | + <yloc>189</yloc> | |
| 665 | 687 | <draw>Y</draw> |
| 666 | 688 | </GUI> |
| 667 | 689 | </step> | ... | ... |
src/main/resources/datatools/ktrs/ttinfodetailoutputforedit.ktr
| ... | ... | @@ -89,6 +89,27 @@ |
| 89 | 89 | <is_key_private>N</is_key_private> |
| 90 | 90 | </info> |
| 91 | 91 | <notepads> |
| 92 | + <notepad> | |
| 93 | + <note>这里有些问题
在window2012的环境下,
MySql数据库查询中如果返回中文内容的字段,这个内容乱码
解决办法,就是数据库查询全部缓存,就不乱码
linux环境下没问题</note> | |
| 94 | + <xloc>135</xloc> | |
| 95 | + <yloc>299</yloc> | |
| 96 | + <width>333</width> | |
| 97 | + <heigth>90</heigth> | |
| 98 | + <fontname>YaHei Consolas Hybrid</fontname> | |
| 99 | + <fontsize>12</fontsize> | |
| 100 | + <fontbold>N</fontbold> | |
| 101 | + <fontitalic>N</fontitalic> | |
| 102 | + <fontcolorred>0</fontcolorred> | |
| 103 | + <fontcolorgreen>0</fontcolorgreen> | |
| 104 | + <fontcolorblue>0</fontcolorblue> | |
| 105 | + <backgroundcolorred>255</backgroundcolorred> | |
| 106 | + <backgroundcolorgreen>205</backgroundcolorgreen> | |
| 107 | + <backgroundcolorblue>112</backgroundcolorblue> | |
| 108 | + <bordercolorred>100</bordercolorred> | |
| 109 | + <bordercolorgreen>100</bordercolorgreen> | |
| 110 | + <bordercolorblue>100</bordercolorblue> | |
| 111 | + <drawshadow>Y</drawshadow> | |
| 112 | + </notepad> | |
| 92 | 113 | </notepads> |
| 93 | 114 | <connection> |
| 94 | 115 | <name>bus_control_variable</name> |
| ... | ... | @@ -103,6 +124,7 @@ |
| 103 | 124 | <data_tablespace/> |
| 104 | 125 | <index_tablespace/> |
| 105 | 126 | <attributes> |
| 127 | + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute> | |
| 106 | 128 | <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> |
| 107 | 129 | <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> |
| 108 | 130 | <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> |
| ... | ... | @@ -4544,8 +4566,8 @@ |
| 4544 | 4566 | <schema_name/> |
| 4545 | 4567 | </partitioning> |
| 4546 | 4568 | <connection>bus_control_variable</connection> |
| 4547 | - <cache>N</cache> | |
| 4548 | - <cache_load_all>N</cache_load_all> | |
| 4569 | + <cache>Y</cache> | |
| 4570 | + <cache_load_all>Y</cache_load_all> | |
| 4549 | 4571 | <cache_size>0</cache_size> |
| 4550 | 4572 | <lookup> |
| 4551 | 4573 | <schema/> |
| ... | ... | @@ -4598,8 +4620,8 @@ |
| 4598 | 4620 | <schema_name/> |
| 4599 | 4621 | </partitioning> |
| 4600 | 4622 | <connection>bus_control_variable</connection> |
| 4601 | - <cache>N</cache> | |
| 4602 | - <cache_load_all>N</cache_load_all> | |
| 4623 | + <cache>Y</cache> | |
| 4624 | + <cache_load_all>Y</cache_load_all> | |
| 4603 | 4625 | <cache_size>0</cache_size> |
| 4604 | 4626 | <lookup> |
| 4605 | 4627 | <schema/> | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/.bower.json
0 → 100644
| 1 | +{ | |
| 2 | + "name": "handsontable", | |
| 3 | + "description": "Spreadsheet-like data grid editor that provides copy/paste functionality compatible with Excel/Google Docs", | |
| 4 | + "version": "0.24.3", | |
| 5 | + "main": [ | |
| 6 | + "./dist/handsontable.js", | |
| 7 | + "./dist/handsontable.css" | |
| 8 | + ], | |
| 9 | + "homepage": "http://handsontable.com/", | |
| 10 | + "repository": { | |
| 11 | + "type": "git", | |
| 12 | + "url": "https://github.com/handsontable/handsontable.git" | |
| 13 | + }, | |
| 14 | + "authors": [ | |
| 15 | + "Handsoncode", | |
| 16 | + "Handsoncode <hello@handsontable.com>" | |
| 17 | + ], | |
| 18 | + "keywords": [ | |
| 19 | + "data", | |
| 20 | + "grid", | |
| 21 | + "table", | |
| 22 | + "editor", | |
| 23 | + "grid-editor", | |
| 24 | + "data-grid", | |
| 25 | + "data-table", | |
| 26 | + "spreadsheet", | |
| 27 | + "excel", | |
| 28 | + "tabular-data", | |
| 29 | + "edit-cell", | |
| 30 | + "editable-table", | |
| 31 | + "data-spreadsheet" | |
| 32 | + ], | |
| 33 | + "ignore": [ | |
| 34 | + "**/.*", | |
| 35 | + "components", | |
| 36 | + "demo", | |
| 37 | + "node_modules", | |
| 38 | + "src", | |
| 39 | + "test" | |
| 40 | + ], | |
| 41 | + "dependencies": { | |
| 42 | + "zeroclipboard": "^2.2.0", | |
| 43 | + "moment": "^2.9.0", | |
| 44 | + "pikaday": "^1.3.2" | |
| 45 | + }, | |
| 46 | + "devDependencies": { | |
| 47 | + "chroma-js": "~0.5.6" | |
| 48 | + }, | |
| 49 | + "_release": "0.24.3", | |
| 50 | + "_resolution": { | |
| 51 | + "type": "version", | |
| 52 | + "tag": "0.24.3", | |
| 53 | + "commit": "eb19e2e0a364f0f535380238ddb10a2dd4fc150a" | |
| 54 | + }, | |
| 55 | + "_source": "https://github.com/handsontable/handsontable.git", | |
| 56 | + "_target": "~0.24.0", | |
| 57 | + "_originalSource": "handsontable" | |
| 58 | +} | |
| 0 | 59 | \ No newline at end of file | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/CHANGELOG.md
0 → 100644
| 1 | +All releases are described at https://github.com/handsontable/handsontable/releases | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/CNAME
0 → 100644
| 1 | +handsontable.com | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/CONTRIBUTING.md
0 → 100644
| 1 | +# Contributing to Handsontable | |
| 2 | + | |
| 3 | +Your contributions to the project are very welcome. If you would like to fix a bug or propose a new feature, you can submit a Pull Request. | |
| 4 | + | |
| 5 | +To help us merge your Pull Request, please make sure you follow these points: | |
| 6 | + | |
| 7 | +1. Please make your fix on a separate branch. This makes merging much easier. | |
| 8 | +2. Do not edit files in `dist/` directory (e.g: `handsontable.js`, `handsontable.css`, `handsontable.full.js`, `handsontable.full.css`). Instead, try to edit files inside the `src/` directory and then use `grunt` to make a build. More information about this on wiki page [Building](https://github.com/handsontable/handsontable/wiki/Building). | |
| 9 | +3. **Very important:** For any change that you make, **please try to also add a test case(s)** in `tests/jasmine/spec/` or `src/3rdparty/walkontable/test/jasmine/spec/`. This helps us understand the issue and make sure that it will stay fixed forever. See [Testing](https://github.com/handsontable/handsontable/wiki/Testing) | |
| 10 | +4. **Very important:** Please review our [coding style](https://github.com/handsontable/handsontable/wiki/Coding-style) for instructions on how to maintain a fork and submit patches. | |
| 11 | +5. Describe the problem in the Pull Request description (of course you would do it, why do I mention that?) | |
| 12 | + | |
| 13 | +Thank you for your commitment! | |
| 14 | + | |
| 15 | +## Team rules | |
| 16 | + | |
| 17 | +The Handsontable team utilizes Git-Flow. See [How we use Git-Flow](https://github.com/handsontable/handsontable/wiki/How-we-use-Git-Flow) | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/Gruntfile.js
0 → 100644
| 1 | +/** | |
| 2 | + * This file is used to build Handsontable from `src/*` | |
| 3 | + * | |
| 4 | + * Installation: | |
| 5 | + * 1. Install Grunt CLI (`npm install -g grunt-cli`) | |
| 6 | + * 1. Install Grunt 0.4.0 and other dependencies (`npm install`) | |
| 7 | + * | |
| 8 | + * Build: | |
| 9 | + * Execute `grunt` from root directory of this directory (where Gruntfile.js is) | |
| 10 | + * To execute automatically after each change, execute `grunt --force default watch` | |
| 11 | + * To execute build followed by the test run, execute `grunt test` | |
| 12 | + * | |
| 13 | + * Result: | |
| 14 | + * building Handsontable will create files: | |
| 15 | + * - dist/handsontable.js | |
| 16 | + * - dist/handsontable.css | |
| 17 | + * - dist/handsontable.full.js | |
| 18 | + * - dist/handsontable.full.css | |
| 19 | + * - dist/handsontable.full.min.js | |
| 20 | + * - dist/handsontable.full.min.css | |
| 21 | + * | |
| 22 | + * See http://gruntjs.com/getting-started for more information about Grunt | |
| 23 | + */ | |
| 24 | +var browsers = [ | |
| 25 | + { | |
| 26 | + browserName: 'firefox', | |
| 27 | + platform: 'Windows 7' | |
| 28 | + }, | |
| 29 | + { | |
| 30 | + browserName: 'chrome', | |
| 31 | + platform: 'Windows 7' | |
| 32 | + }, | |
| 33 | + { | |
| 34 | + browserName: 'opera', | |
| 35 | + platform: 'Windows 7' | |
| 36 | + }, | |
| 37 | + //{ | |
| 38 | + // browserName: 'internet explorer', | |
| 39 | + // version: '8', | |
| 40 | + // platform: 'Windows 7' | |
| 41 | + //}, | |
| 42 | + //{ | |
| 43 | + // browserName: 'internet explorer', | |
| 44 | + // version: '9', | |
| 45 | + // platform: 'Windows 7' | |
| 46 | + //}, | |
| 47 | + { | |
| 48 | + browserName: 'internet explorer', | |
| 49 | + version: '10', | |
| 50 | + platform: 'Windows 8' | |
| 51 | + } | |
| 52 | +]; | |
| 53 | + | |
| 54 | +module.exports = function(grunt) { | |
| 55 | + | |
| 56 | + require('time-grunt')(grunt); | |
| 57 | + require('load-grunt-tasks')(grunt); | |
| 58 | + | |
| 59 | + grunt.initConfig({ | |
| 60 | + pkg: grunt.file.readJSON('package.json'), | |
| 61 | + gitinfo: {}, | |
| 62 | + | |
| 63 | + meta: { | |
| 64 | + src: [ | |
| 65 | + 'src/*.js', | |
| 66 | + 'src/editors/*.js', | |
| 67 | + 'src/plugins/**/!(*.spec).js', | |
| 68 | + 'src/renderers/*.js', | |
| 69 | + 'src/validators/*.js', | |
| 70 | + 'src/shims/*.js', | |
| 71 | + 'src/3rdparty/*.js' | |
| 72 | + ], | |
| 73 | + walkontable: [ | |
| 74 | + 'src/3rdparty/walkontable/src/**/*.js' | |
| 75 | + ], | |
| 76 | + vendor: [ | |
| 77 | + 'lib/numeral/numeral.js' | |
| 78 | + ] | |
| 79 | + }, | |
| 80 | + | |
| 81 | + watch: { | |
| 82 | + options: { | |
| 83 | + livereload: true // works with Chrome LiveReload extension. See: https://github.com/gruntjs/grunt-contrib-watch | |
| 84 | + }, | |
| 85 | + files: [ | |
| 86 | + 'src/**/*(*.js|*.css|*.html)', | |
| 87 | + '!src/3rdparty/walkontable/test/**/*', | |
| 88 | + 'lib/**/*(*.js|*.css)' | |
| 89 | + ], | |
| 90 | + tasks: ['build-dev'] | |
| 91 | + }, | |
| 92 | + | |
| 93 | + jasmine: { | |
| 94 | + options: { | |
| 95 | + page: { | |
| 96 | + viewportSize: { | |
| 97 | + width: 1200, | |
| 98 | + height: 1000 | |
| 99 | + } | |
| 100 | + }, | |
| 101 | + }, | |
| 102 | + handsontableStandalone: { | |
| 103 | + src: [ | |
| 104 | + 'dist/handsontable.js', | |
| 105 | + 'demo/js/numeral.de-de.js', | |
| 106 | + 'demo/js/backbone/lodash.underscore.js', | |
| 107 | + 'demo/js/backbone/backbone.js', | |
| 108 | + 'demo/js/backbone/backbone-relational/backbone-relational.js', | |
| 109 | + 'demo/js/jquery-ui/js/jquery-ui.custom.js', | |
| 110 | + 'plugins/removeRow/handsontable.removeRow.js' | |
| 111 | + ], | |
| 112 | + options: { | |
| 113 | + specs: [ | |
| 114 | + 'test/jasmine/spec/*Spec.js', | |
| 115 | + 'test/jasmine/spec/!(mobile)*/*Spec.js', | |
| 116 | + 'src/plugins/*/test/*.spec.js', | |
| 117 | + 'plugins/*/test/*.spec.js', | |
| 118 | + 'test/jasmine/spec/MemoryLeakTest.js' | |
| 119 | + ], | |
| 120 | + styles: [ | |
| 121 | + 'test/jasmine/css/SpecRunner.css', | |
| 122 | + 'dist/handsontable.min.css', | |
| 123 | + 'plugins/removeRow/handsontable.removeRow.css', | |
| 124 | + 'demo/js/jquery-ui/css/ui-bootstrap/jquery-ui.custom.css', | |
| 125 | + 'demo/js/pikaday/css/pikaday.css' | |
| 126 | + ], | |
| 127 | + vendor: [ | |
| 128 | + 'demo/js/jquery.min.js', | |
| 129 | + 'lib/numeral/numeral.js', | |
| 130 | + 'demo/js/moment/moment.js', | |
| 131 | + 'demo/js/pikaday/pikaday.js', | |
| 132 | + 'demo/js/ZeroClipboard.js', | |
| 133 | + 'test/jasmine/lib/jasmine-extensions.js' | |
| 134 | + ], | |
| 135 | + helpers: [ | |
| 136 | + 'test/jasmine/spec/SpecHelper.js', | |
| 137 | + 'test/jasmine/lib/nodeShim.js', | |
| 138 | + 'test/jasmine/spec/test-init.js' | |
| 139 | + ], | |
| 140 | + outfile: 'test/jasmine/SpecRunner.html', | |
| 141 | + template: 'test/jasmine/templates/SpecRunner.tmpl', | |
| 142 | + keepRunner: true | |
| 143 | + } | |
| 144 | + }, | |
| 145 | + handsontableFull: { | |
| 146 | + src: [ | |
| 147 | + 'dist/handsontable.full.min.js', | |
| 148 | + 'demo/js/numeral.de-de.js', | |
| 149 | + 'demo/js/backbone/lodash.underscore.js', | |
| 150 | + 'demo/js/backbone/backbone.js', | |
| 151 | + 'demo/js/backbone/backbone-relational/backbone-relational.js', | |
| 152 | + 'demo/js/jquery-ui/js/jquery-ui.custom.js', | |
| 153 | + 'plugins/removeRow/handsontable.removeRow.js' | |
| 154 | + ], | |
| 155 | + options: { | |
| 156 | + specs: [ | |
| 157 | + 'test/jasmine/spec/*Spec.js', | |
| 158 | + 'test/jasmine/spec/!(mobile)*/*Spec.js', | |
| 159 | + 'src/plugins/*/test/*.spec.js', | |
| 160 | + 'plugins/*/test/*.spec.js', | |
| 161 | + 'test/jasmine/spec/MemoryLeakTest.js' | |
| 162 | + ], | |
| 163 | + styles: [ | |
| 164 | + 'test/jasmine/css/SpecRunner.css', | |
| 165 | + 'dist/handsontable.min.css', | |
| 166 | + 'plugins/removeRow/handsontable.removeRow.css', | |
| 167 | + 'demo/js/jquery-ui/css/ui-bootstrap/jquery-ui.custom.css', | |
| 168 | + 'demo/js/pikaday/css/pikaday.css' | |
| 169 | + ], | |
| 170 | + vendor: [ | |
| 171 | + 'demo/js/jquery.min.js', | |
| 172 | + 'demo/js/moment/moment.js', | |
| 173 | + 'test/jasmine/lib/jasmine-extensions.js' | |
| 174 | + ], | |
| 175 | + helpers: [ | |
| 176 | + 'test/jasmine/spec/SpecHelper.js', | |
| 177 | + 'test/jasmine/lib/nodeShim.js', | |
| 178 | + 'test/jasmine/spec/test-init.js' | |
| 179 | + ], | |
| 180 | + outfile: 'test/jasmine/SpecRunner.html', | |
| 181 | + template: 'test/jasmine/templates/SpecRunner.tmpl', | |
| 182 | + keepRunner: true | |
| 183 | + } | |
| 184 | + }, | |
| 185 | + walkontable: { | |
| 186 | + src: [ | |
| 187 | + 'dist/handsontable.min.js' | |
| 188 | + ], | |
| 189 | + options: { | |
| 190 | + specs: [ | |
| 191 | + 'src/3rdparty/walkontable/test/jasmine/spec/**/*.spec.js' | |
| 192 | + ], | |
| 193 | + styles: [ | |
| 194 | + 'src/3rdparty/walkontable/css/walkontable.css' | |
| 195 | + ], | |
| 196 | + vendor: [ | |
| 197 | + 'demo/js/jquery.min.js', | |
| 198 | + 'lib/numeral/numeral.js', | |
| 199 | + 'demo/js/moment/moment.js', | |
| 200 | + 'demo/js/pikaday/pikaday.js', | |
| 201 | + 'demo/js/ZeroClipboard.js', | |
| 202 | + 'demo/js/numeral.de-de.js' | |
| 203 | + ], | |
| 204 | + helpers: [ | |
| 205 | + 'src/3rdparty/walkontable/test/jasmine/SpecHelper.js', | |
| 206 | + 'test/jasmine/lib/nodeShim.js', | |
| 207 | + 'src/3rdparty/walkontable/test/jasmine/test-init.js' | |
| 208 | + | |
| 209 | + ], | |
| 210 | + outfile: 'src/3rdparty/walkontable/test/jasmine/SpecRunner.html', | |
| 211 | + template: 'test/jasmine/templates/SpecRunner.tmpl', | |
| 212 | + keepRunner: true | |
| 213 | + } | |
| 214 | + }, | |
| 215 | + mobile: { | |
| 216 | + src: [ | |
| 217 | + 'dist/handsontable.min.js', | |
| 218 | + 'demo/js/numeral.de-de.js', | |
| 219 | + 'demo/js/backbone/lodash.underscore.js', | |
| 220 | + 'demo/js/backbone/backbone.js', | |
| 221 | + 'demo/js/backbone/backbone-relational/backbone-relational.js', | |
| 222 | + 'demo/js/jquery-ui/js/jquery-ui.custom.js', | |
| 223 | + 'plugins/removeRow/handsontable.removeRow.js' | |
| 224 | + ], | |
| 225 | + options: { | |
| 226 | + specs: [ | |
| 227 | + 'test/jasmine/spec/mobile/*Spec.js', | |
| 228 | + 'src/plugins/*/test/mobile/*.spec.js' | |
| 229 | + ], | |
| 230 | + styles: [ | |
| 231 | + 'test/jasmine/css/SpecRunner.css', | |
| 232 | + 'dist/handsontable.min.css', | |
| 233 | + 'plugins/removeRow/handsontable.removeRow.css', | |
| 234 | + 'demo/js/jquery-ui/css/ui-bootstrap/jquery-ui.custom.css', | |
| 235 | + 'demo/js/pikaday/css/pikaday.css' | |
| 236 | + ], | |
| 237 | + vendor: [ | |
| 238 | + 'demo/js/jquery.min.js', | |
| 239 | + 'lib/numeral/numeral.js', | |
| 240 | + 'demo/js/ZeroClipboard.js', | |
| 241 | + 'demo/js/moment/moment.js', | |
| 242 | + 'demo/js/pikaday/pikaday.js', | |
| 243 | + 'test/jasmine/lib/jasmine-extensions.js' | |
| 244 | + ], | |
| 245 | + helpers: [ | |
| 246 | + 'test/jasmine/spec/SpecHelper.js', | |
| 247 | + 'test/jasmine/spec/MobileSpecHelper.js', | |
| 248 | + 'test/jasmine/lib/nodeShim.js', | |
| 249 | + 'test/jasmine/spec/test-init.js' | |
| 250 | + ], | |
| 251 | + outfile: 'test/jasmine/MobileSpecRunner.html', | |
| 252 | + template: 'test/jasmine/templates/SpecRunner.tmpl', | |
| 253 | + keepRunner: true | |
| 254 | + } | |
| 255 | + } | |
| 256 | + }, | |
| 257 | + | |
| 258 | + connect: { | |
| 259 | + server: { | |
| 260 | + options: { | |
| 261 | + port: 8080, | |
| 262 | + base: '.', | |
| 263 | + keepalive: true | |
| 264 | + } | |
| 265 | + }, | |
| 266 | + sauce: { | |
| 267 | + options: { | |
| 268 | + port: 9999, | |
| 269 | + base: '.', | |
| 270 | + keepalive: false | |
| 271 | + } | |
| 272 | + } | |
| 273 | + }, | |
| 274 | + 'saucelabs-jasmine': { | |
| 275 | + handsontable: { | |
| 276 | + options: { | |
| 277 | + urls: ['http://localhost:9999/test/jasmine/SpecRunner.html'], | |
| 278 | + build: '<%= pkg.version %>-<%= gitinfo.local.branch.current.name %>', | |
| 279 | + concurrency: 3, | |
| 280 | + browsers: browsers, | |
| 281 | + testname: 'Development test (Handsontable)' | |
| 282 | + } | |
| 283 | + }, | |
| 284 | + walkontable: { | |
| 285 | + options: { | |
| 286 | + urls: ['http://localhost:9999/src/3rdparty/walkontable/test/jasmine/SpecRunner.html'], | |
| 287 | + build: '<%= pkg.version %>-<%= gitinfo.local.branch.current.name %>', | |
| 288 | + concurrency: 3, | |
| 289 | + browsers: browsers, | |
| 290 | + testname: 'Development test (Walkontable)' | |
| 291 | + } | |
| 292 | + } | |
| 293 | + }, | |
| 294 | + | |
| 295 | + jshint: { | |
| 296 | + options: { | |
| 297 | + jshintrc: true | |
| 298 | + }, | |
| 299 | + handsontable: '<%= meta.src %>', | |
| 300 | + walkontable: '<%= meta.walkontable %>' | |
| 301 | + }, | |
| 302 | + | |
| 303 | + jscs: { | |
| 304 | + handsontable: { | |
| 305 | + files: { | |
| 306 | + src: ['<%= meta.src %>', '!src/shims/classes.js'] | |
| 307 | + } | |
| 308 | + }, | |
| 309 | + walkontable: { | |
| 310 | + files: { | |
| 311 | + src: ['<%= meta.walkontable %>', '!src/shims/classes.js'] | |
| 312 | + } | |
| 313 | + }, | |
| 314 | + options: { | |
| 315 | + config: '.jscsrc', | |
| 316 | + esnext: true, | |
| 317 | + verbose: true | |
| 318 | + } | |
| 319 | + }, | |
| 320 | + | |
| 321 | + hotBuilder: { | |
| 322 | + handsontable: { | |
| 323 | + files: { | |
| 324 | + dist: 'package.json' | |
| 325 | + } | |
| 326 | + }, | |
| 327 | + handsontableDev: { | |
| 328 | + files: { | |
| 329 | + dist: 'package.json' | |
| 330 | + }, | |
| 331 | + options: { | |
| 332 | + devMode: true | |
| 333 | + } | |
| 334 | + }, | |
| 335 | + handsontableCustom: { | |
| 336 | + files: { | |
| 337 | + dist: 'package.json' | |
| 338 | + }, | |
| 339 | + options: { | |
| 340 | + disableUI: false | |
| 341 | + } | |
| 342 | + }, | |
| 343 | + options: { | |
| 344 | + minify: true | |
| 345 | + } | |
| 346 | + } | |
| 347 | + }); | |
| 348 | + | |
| 349 | + // Default task. | |
| 350 | + grunt.registerTask('default', ['jscs', 'jshint', 'gitinfo', 'build']); | |
| 351 | + grunt.registerTask('build', ['hotBuilder:handsontable']); | |
| 352 | + grunt.registerTask('build-dev', ['hotBuilder:handsontableDev']); | |
| 353 | + grunt.registerTask('build-custom', ['hotBuilder:handsontableCustom']); | |
| 354 | + grunt.registerTask('test', ['default', 'jasmine:handsontableStandalone', 'jasmine:handsontableFull', 'jasmine:walkontable', 'jasmine:mobile:build']); | |
| 355 | + grunt.registerTask('test:handsontable', ['default', 'jasmine:handsontableStandalone']); | |
| 356 | + grunt.registerTask('test:handsontableStandalone', ['test:handsontable']); | |
| 357 | + grunt.registerTask('test:handsontableFull', ['default', 'jasmine:handsontableFull']); | |
| 358 | + grunt.registerTask('test:walkontable', ['default', 'jasmine:walkontable']); | |
| 359 | + grunt.registerTask('test:mobile', ['default', 'jasmine:mobile:build']); | |
| 360 | + grunt.registerTask('sauce', ['default', 'connect:sauce', 'saucelabs-jasmine:walkontable', 'saucelabs-jasmine:handsontable']); | |
| 361 | + grunt.registerTask('sauce:handsontable', ['default', 'connect:sauce', 'saucelabs-jasmine:handsontable']); | |
| 362 | + grunt.registerTask('sauce:walkontable', ['default', 'connect:sauce', 'saucelabs-jasmine:walkontable']); | |
| 363 | + | |
| 364 | + grunt.registerTask('test-handsontable-standalone', ['default', 'jasmine:handsontableStandalone']); | |
| 365 | + grunt.registerTask('test-handsontable-full', ['default', 'jasmine:handsontableFull']); | |
| 366 | + grunt.registerTask('test-handsontable', ['test-handsontable-standalone']); | |
| 367 | + | |
| 368 | + grunt.loadTasks('tasks'); | |
| 369 | + grunt.loadNpmTasks('hot-builder'); | |
| 370 | + grunt.loadNpmTasks('grunt-jscs'); | |
| 371 | +}; | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/LICENSE
0 → 100644
| 1 | +(The MIT License) | |
| 2 | + | |
| 3 | +Copyright (c) 2012-2014 Marcin Warpechowski | |
| 4 | +Copyright (c) 2015 Handsoncode sp. z o.o. <hello@handsoncode.net> | |
| 5 | + | |
| 6 | +Permission is hereby granted, free of charge, to any person obtaining | |
| 7 | +a copy of this software and associated documentation files (the | |
| 8 | +'Software'), to deal in the Software without restriction, including | |
| 9 | +without limitation the rights to use, copy, modify, merge, publish, | |
| 10 | +distribute, sublicense, and/or sell copies of the Software, and to | |
| 11 | +permit persons to whom the Software is furnished to do so, subject to | |
| 12 | +the following conditions: | |
| 13 | + | |
| 14 | +The above copyright notice and this permission notice shall be | |
| 15 | +included in all copies or substantial portions of the Software. | |
| 16 | + | |
| 17 | +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, | |
| 18 | +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
| 19 | +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
| 20 | +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
| 21 | +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
| 22 | +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
| 23 | +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/README.md
0 → 100644
| 1 | +# Handsontable [](https://travis-ci.org/handsontable/handsontable) | |
| 2 | + | |
| 3 | +Handsontable is a data grid component with an Excel-like appearance. Built in JavaScript, it integrates with any data source and comes with [features](http://docs.handsontable.com/0.17.0/tutorial-features.html) like data validation, sorting, grouping, data binding or column ordering. Actively supported by the Handsoncode team and the GitHub community. | |
| 4 | + | |
| 5 | +Check out the demos at http://handsontable.com/examples.html or fork the example on | |
| 6 | +[JSFiddle](http://jsfiddle.net/js_ziggle/hU6Kz/3228/) to see Handsontable in action. | |
| 7 | + | |
| 8 | +- - - | |
| 9 | + | |
| 10 | +### Quick start | |
| 11 | + | |
| 12 | +1. A recommended way to install Handsontable is through [Bower](http://bower.io/search/?q=handsontable) package manager using the following command: | |
| 13 | + | |
| 14 | + `bower install handsontable --save` | |
| 15 | + | |
| 16 | + Alternatively, you can [download it in a ZIP file](https://github.com/handsontable/handsontable/archive/master.zip). | |
| 17 | + | |
| 18 | +2. After Handsontable is downloaded, embed the code into your project. All the files that you need are in the `dist\` directory: | |
| 19 | + | |
| 20 | + ```html | |
| 21 | + <script src="dist/handsontable.full.js"></script> | |
| 22 | + <link rel="stylesheet" media="screen" href="dist/handsontable.full.css"> | |
| 23 | + ``` | |
| 24 | + | |
| 25 | +3. Then, create a new `Handsontable` object, passing a reference to an empty div as a first argument. After that, load some data if you wish: | |
| 26 | + | |
| 27 | + ```html | |
| 28 | + <div id="example"></div> | |
| 29 | + | |
| 30 | + <script> | |
| 31 | + var data = [ | |
| 32 | + ["", "Kia", "Nissan", "Toyota", "Honda"], | |
| 33 | + ["2008", 10, 11, 12, 13], | |
| 34 | + ["2009", 20, 11, 14, 13], | |
| 35 | + ["2010", 30, 15, 12, 13] | |
| 36 | + ]; | |
| 37 | + | |
| 38 | + var container = document.getElementById('example'); | |
| 39 | + var hot = new Handsontable(container, | |
| 40 | + { | |
| 41 | + data: data | |
| 42 | + }); | |
| 43 | + </script> | |
| 44 | + ``` | |
| 45 | + | |
| 46 | +### API Reference | |
| 47 | + | |
| 48 | +- [Core methods](http://docs.handsontable.com/Core.html) | |
| 49 | +- [Options](http://docs.handsontable.com/Options.html) | |
| 50 | +- [Hooks](http://docs.handsontable.com/Hooks.html) | |
| 51 | + | |
| 52 | +## AMD support | |
| 53 | + | |
| 54 | +If you use a modular script loader than Handsontable is not bound to the global object and will fit nicely in your build process. You can require Handsontable just like any other module. | |
| 55 | + | |
| 56 | +```javascript | |
| 57 | +require(['handsontable'], function(Handsontable) { | |
| 58 | + var hot = new Handsontable(document.getElementById('example'), { | |
| 59 | + data: [[1, 2, 3, 4], [1, 2, 3, 4]] | |
| 60 | + }); | |
| 61 | +}); | |
| 62 | +``` | |
| 63 | + | |
| 64 | +## CommonJS module support | |
| 65 | + | |
| 66 | +If you use a CommonJS compatible environment you can use the require function to import Handsontable. | |
| 67 | + | |
| 68 | + | |
| 69 | +```javascript | |
| 70 | +var handsontable = require('handsontable'); | |
| 71 | +``` | |
| 72 | + | |
| 73 | +To bundle handsontable with [Browserify](http://browserify.org) you must specify the module names of all required modules by Handsontable: | |
| 74 | + | |
| 75 | +`browserify main.js -o bundle.js -r moment -r pikaday -r zeroclipboard` | |
| 76 | + | |
| 77 | +### Troubleshooting | |
| 78 | + | |
| 79 | +Please follow this guidelines when reporting bugs and feature requests: | |
| 80 | + | |
| 81 | +1. Use [GitHub Issues](https://github.com/handsontable/handsontable/issues) board to report bugs and feature requests (not our email address) | |
| 82 | +2. Please **always** write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it. | |
| 83 | +3. If possible, please add a JSFiddle link that shows the problem (start by forking [this fiddle](http://jsfiddle.net/js_ziggle/hU6Kz/3228/)). It saves us much time. | |
| 84 | +4. If you can't reproduce it on JSFiddle, please add a screenshot that shows the problem. JSFiddle is much more appreciated because it lets us start fixing straight away. | |
| 85 | + | |
| 86 | +Thanks for understanding! | |
| 87 | + | |
| 88 | +### Compatibility | |
| 89 | + | |
| 90 | +Handsontable is compatible with IE 9+, Firefox, Chrome, Safari and Opera. | |
| 91 | + | |
| 92 | +### Want to help? | |
| 93 | + | |
| 94 | +Please see [CONTRIBUTING.md](CONTRIBUTING.md) | |
| 95 | + | |
| 96 | +### Changelog | |
| 97 | + | |
| 98 | +To see the list of recent changes, see [Releases section](https://github.com/handsontable/handsontable/releases). | |
| 99 | + | |
| 100 | +### License | |
| 101 | + | |
| 102 | +The MIT License (see the [LICENSE](https://github.com/handsontable/handsontable/blob/master/LICENSE) file for the full text) | |
| 103 | + | |
| 104 | +### Contact | |
| 105 | + | |
| 106 | +You can contact us at hello@handsontable.com. | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/bower.json
0 → 100644
| 1 | +{ | |
| 2 | + "name": "handsontable", | |
| 3 | + "description": "Spreadsheet-like data grid editor that provides copy/paste functionality compatible with Excel/Google Docs", | |
| 4 | + "version": "0.24.3", | |
| 5 | + "main": ["./dist/handsontable.js", "./dist/handsontable.css"], | |
| 6 | + "homepage": "http://handsontable.com/", | |
| 7 | + "repository": { | |
| 8 | + "type": "git", | |
| 9 | + "url": "https://github.com/handsontable/handsontable.git" | |
| 10 | + }, | |
| 11 | + "authors": [ | |
| 12 | + "Handsoncode", "Handsoncode <hello@handsontable.com>" | |
| 13 | + ], | |
| 14 | + "keywords": [ | |
| 15 | + "data", | |
| 16 | + "grid", | |
| 17 | + "table", | |
| 18 | + "editor", | |
| 19 | + "grid-editor", | |
| 20 | + "data-grid", | |
| 21 | + "data-table", | |
| 22 | + "spreadsheet", | |
| 23 | + "excel", | |
| 24 | + "tabular-data", | |
| 25 | + "edit-cell", | |
| 26 | + "editable-table", | |
| 27 | + "data-spreadsheet" | |
| 28 | + ], | |
| 29 | + "ignore": [ | |
| 30 | + "**/.*", | |
| 31 | + "components", | |
| 32 | + "demo", | |
| 33 | + "node_modules", | |
| 34 | + "src", | |
| 35 | + "test" | |
| 36 | + ], | |
| 37 | + "dependencies": { | |
| 38 | + "zeroclipboard": "^2.2.0", | |
| 39 | + "moment": "^2.9.0", | |
| 40 | + "pikaday": "^1.3.2" | |
| 41 | + }, | |
| 42 | + "devDependencies": { | |
| 43 | + "chroma-js": "~0.5.6" | |
| 44 | + } | |
| 45 | +} | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/dist/README.md
0 → 100644
| 1 | +# Handsontable distributions | |
| 2 | + | |
| 3 | +## Full distribution (recommended) | |
| 4 | + | |
| 5 | +The full distribution allows you to use Handsontable by just including 2 files: | |
| 6 | +```html | |
| 7 | +<script src="dist/handsontable.full.js"></script> | |
| 8 | +<link rel="stylesheet" media="screen" href="dist/handsontable.full.css"> | |
| 9 | +``` | |
| 10 | +(It may also require Pikaday and moment.js, if you're using the Datepicker for date input) | |
| 11 | + | |
| 12 | +**handsontable.full.js** and **handsontable.full.css** are compiled with ___all___ the needed dependencies. | |
| 13 | + | |
| 14 | +Using this has the same effect as loading all the dependencies from the Bare distribution (see below). | |
| 15 | + | |
| 16 | +## Bare distribution | |
| 17 | + | |
| 18 | +If you are a "Bob the Builder" kind of hacker, you will need to load Handsontable JS, CSS and their dependencies: | |
| 19 | +```html | |
| 20 | +<!-- Required dependencies (as external scripts) --> | |
| 21 | +<script src="lib/pikaday/pikaday.js"></script> | |
| 22 | +<script src="lib/moment/moment.js"></script> | |
| 23 | +<script src="lib/zeroclipboard/ZeroClipboard.js"></script> | |
| 24 | +<!-- Handsontable bare files --> | |
| 25 | +<script src="dist/handsontable.js"></script> | |
| 26 | +<link rel="stylesheet" media="screen" href="dist/handsontable.css"> | |
| 27 | +``` | |
| 28 | + | |
| 29 | +**handsontable.js** and **handsontable.css** are compiled ___without___ the needed dependencies. | |
| 30 | + | |
| 31 | +## Custom distribution | |
| 32 | + | |
| 33 | +If you want to build your own custom Handsontable package distribution check out our [tool](https://github.com/handsontable/hot-builder) designed for this. | ... | ... |
src/main/resources/static/assets/bower_components/handsontable/dist/handsontable.css
0 → 100644
| 1 | +/*! | |
| 2 | +(The MIT License) | |
| 3 | + | |
| 4 | +Copyright (c) 2012-2014 Marcin Warpechowski | |
| 5 | +Copyright (c) 2015 Handsoncode sp. z o.o. <hello@handsoncode.net> | |
| 6 | + | |
| 7 | +Permission is hereby granted, free of charge, to any person obtaining | |
| 8 | +a copy of this software and associated documentation files (the | |
| 9 | +'Software'), to deal in the Software without restriction, including | |
| 10 | +without limitation the rights to use, copy, modify, merge, publish, | |
| 11 | +distribute, sublicense, and/or sell copies of the Software, and to | |
| 12 | +permit persons to whom the Software is furnished to do so, subject to | |
| 13 | +the following conditions: | |
| 14 | + | |
| 15 | +The above copyright notice and this permission notice shall be | |
| 16 | +included in all copies or substantial portions of the Software. | |
| 17 | + | |
| 18 | +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, | |
| 19 | +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
| 20 | +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
| 21 | +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
| 22 | +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
| 23 | +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
| 24 | +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| 25 | + | |
| 26 | +*/ | |
| 27 | +.handsontable { | |
| 28 | + position: relative; | |
| 29 | +} | |
| 30 | + | |
| 31 | +.handsontable .hide{ | |
| 32 | + display: none; | |
| 33 | +} | |
| 34 | +.handsontable .relative { | |
| 35 | + position: relative; | |
| 36 | +} | |
| 37 | + | |
| 38 | +.handsontable.htAutoSize { | |
| 39 | + visibility: hidden; | |
| 40 | + left: -99000px; | |
| 41 | + position: absolute; | |
| 42 | + top: -99000px; | |
| 43 | +} | |
| 44 | + | |
| 45 | +.handsontable .wtHider { | |
| 46 | + width: 0; | |
| 47 | +} | |
| 48 | + | |
| 49 | +.handsontable .wtSpreader { | |
| 50 | + position: relative; | |
| 51 | + width: 0; /*must be 0, otherwise blank space appears in scroll demo after scrolling max to the right */ | |
| 52 | + height: auto; | |
| 53 | +} | |
| 54 | + | |
| 55 | +.handsontable table, | |
| 56 | +.handsontable tbody, | |
| 57 | +.handsontable thead, | |
| 58 | +.handsontable td, | |
| 59 | +.handsontable th, | |
| 60 | +.handsontable input, | |
| 61 | +.handsontable textarea, | |
| 62 | +.handsontable div { | |
| 63 | + box-sizing: content-box; | |
| 64 | + -webkit-box-sizing: content-box; | |
| 65 | + -moz-box-sizing: content-box; | |
| 66 | +} | |
| 67 | + | |
| 68 | +.handsontable input, | |
| 69 | +.handsontable textarea { | |
| 70 | + min-height: initial; | |
| 71 | +} | |
| 72 | + | |
| 73 | +.handsontable table.htCore { | |
| 74 | + border-collapse: separate; | |
| 75 | + /*it must be separate, otherwise there are offset miscalculations in WebKit: http://stackoverflow.com/questions/2655987/border-collapse-differences-in-ff-and-webkit*/ | |
| 76 | + /*this actually only changes appearance of user selection - does not make text unselectable | |
| 77 | + -webkit-user-select: none; | |
| 78 | + -khtml-user-select: none; | |
| 79 | + -moz-user-select: none; | |
| 80 | + -o-user-select: none; | |
| 81 | + -ms-user-select: none; | |
| 82 | + /*user-select: none; /*no browser supports unprefixed version*/ | |
| 83 | + border-spacing: 0; | |
| 84 | + margin: 0; | |
| 85 | + border-width: 0; | |
| 86 | + table-layout: fixed; | |
| 87 | + width: 0; | |
| 88 | + outline-width: 0; | |
| 89 | + /* reset bootstrap table style. for more info see: https://github.com/handsontable/handsontable/issues/224 */ | |
| 90 | + max-width: none; | |
| 91 | + max-height: none; | |
| 92 | +} | |
| 93 | + | |
| 94 | +.handsontable col { | |
| 95 | + width: 50px; | |
| 96 | +} | |
| 97 | + | |
| 98 | +.handsontable col.rowHeader { | |
| 99 | + width: 50px; | |
| 100 | +} | |
| 101 | + | |
| 102 | +.handsontable th, | |
| 103 | +.handsontable td { | |
| 104 | + border-top-width: 0; | |
| 105 | + border-left-width: 0; | |
| 106 | + border-right: 1px solid #CCC; | |
| 107 | + border-bottom: 1px solid #CCC; | |
| 108 | + height: 22px; | |
| 109 | + empty-cells: show; | |
| 110 | + line-height: 21px; | |
| 111 | + padding: 0 4px 0 4px; | |
| 112 | + /* top, bottom padding different than 0 is handled poorly by FF with HTML5 doctype */ | |
| 113 | + background-color: #FFF; | |
| 114 | + vertical-align: top; | |
| 115 | + overflow: hidden; | |
| 116 | + outline-width: 0; | |
| 117 | + white-space: pre-line; | |
| 118 | + /* preserve new line character in cell */ | |
| 119 | +} | |
| 120 | + | |
| 121 | +.handsontable td.htInvalid { | |
| 122 | + background-color: #ff4c42 !important; /*gives priority over td.area selection background*/ | |
| 123 | +} | |
| 124 | + | |
| 125 | +.handsontable td.htNoWrap { | |
| 126 | + white-space: nowrap; | |
| 127 | +} | |
| 128 | + | |
| 129 | +.handsontable th:last-child { | |
| 130 | + /*Foundation framework fix*/ | |
| 131 | + border-right: 1px solid #CCC; | |
| 132 | + border-bottom: 1px solid #CCC; | |
| 133 | +} | |
| 134 | + | |
| 135 | +.handsontable tr:first-child th.htNoFrame, | |
| 136 | +.handsontable th:first-child.htNoFrame, | |
| 137 | +.handsontable th.htNoFrame { | |
| 138 | + border-left-width: 0; | |
| 139 | + background-color: white; | |
| 140 | + border-color: #FFF; | |
| 141 | +} | |
| 142 | + | |
| 143 | +.handsontable th:first-child, | |
| 144 | +.handsontable td:first-of-type, | |
| 145 | +.handsontable .htNoFrame + th, | |
| 146 | +.handsontable .htNoFrame + td { | |
| 147 | + border-left: 1px solid #CCC; | |
| 148 | +} | |
| 149 | + | |
| 150 | +.handsontable.htRowHeaders thead tr th:nth-child(2) { | |
| 151 | + border-left: 1px solid #CCC; | |
| 152 | +} | |
| 153 | + | |
| 154 | +.handsontable tr:first-child th, | |
| 155 | +.handsontable tr:first-child td { | |
| 156 | + border-top: 1px solid #CCC; | |
| 157 | +} | |
| 158 | + | |
| 159 | +.ht_master:not(.innerBorderLeft) ~ .handsontable tbody tr th, | |
| 160 | +.ht_master:not(.innerBorderLeft) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child | |
| 161 | +{ | |
| 162 | + border-right-width: 0; | |
| 163 | +} | |
| 164 | + | |
| 165 | +.ht_master:not(.innerBorderTop) thead tr:last-child th, | |
| 166 | +.ht_master:not(.innerBorderTop) ~ .handsontable thead tr:last-child th, | |
| 167 | +.ht_master:not(.innerBorderTop) thead tr.lastChild th, | |
| 168 | +.ht_master:not(.innerBorderTop) ~ .handsontable thead tr.lastChild th { | |
| 169 | + border-bottom-width: 0; | |
| 170 | +} | |
| 171 | + | |
| 172 | +.handsontable th { | |
| 173 | + background-color: #EEE; | |
| 174 | + color: #222; | |
| 175 | + text-align: center; | |
| 176 | + font-weight: normal; | |
| 177 | + white-space: nowrap; | |
| 178 | +} | |
| 179 | + | |
| 180 | +.handsontable thead th { | |
| 181 | + padding: 0; | |
| 182 | +} | |
| 183 | + | |
| 184 | +.handsontable th.active { | |
| 185 | + background-color: #CCC; | |
| 186 | +} | |
| 187 | + | |
| 188 | +.handsontable thead th .relative { | |
| 189 | + padding: 2px 4px; | |
| 190 | +} | |
| 191 | + | |
| 192 | +/* plugins */ | |
| 193 | + | |
| 194 | +.handsontable .manualColumnMover { | |
| 195 | + position: fixed; | |
| 196 | + left: 0; | |
| 197 | + top: 0; | |
| 198 | + background-color: transparent; | |
| 199 | + width: 5px; | |
| 200 | + height: 25px; | |
| 201 | + z-index: 999; | |
| 202 | + cursor: move; | |
| 203 | +} | |
| 204 | + | |
| 205 | +.handsontable .manualRowMover { | |
| 206 | + position: fixed; | |
| 207 | + left: -4px; | |
| 208 | + top: 0; | |
| 209 | + background-color: transparent; | |
| 210 | + height: 5px; | |
| 211 | + width: 50px; | |
| 212 | + z-index: 999; | |
| 213 | + cursor: move; | |
| 214 | +} | |
| 215 | + | |
| 216 | +.handsontable .manualColumnMoverGuide, | |
| 217 | +.handsontable .manualRowMoverGuide { | |
| 218 | + position: fixed; | |
| 219 | + left: 0; | |
| 220 | + top: 0; | |
| 221 | + background-color: #CCC; | |
| 222 | + width: 25px; | |
| 223 | + height: 25px; | |
| 224 | + opacity: 0.7; | |
| 225 | + display: none; | |
| 226 | +} | |
| 227 | + | |
| 228 | +.handsontable .manualColumnMoverGuide.active, | |
| 229 | +.handsontable .manualRowMoverGuide.active { | |
| 230 | + display: block; | |
| 231 | +} | |
| 232 | + | |
| 233 | +.handsontable .manualColumnMover:hover, | |
| 234 | +.handsontable .manualColumnMover.active, | |
| 235 | +.handsontable .manualRowMover:hover, | |
| 236 | +.handsontable .manualRowMover.active{ | |
| 237 | + background-color: #88F; | |
| 238 | +} | |
| 239 | + | |
| 240 | +/* row + column resizer*/ | |
| 241 | + | |
| 242 | +.handsontable .manualColumnResizer { | |
| 243 | + position: fixed; | |
| 244 | + top: 0; | |
| 245 | + cursor: col-resize; | |
| 246 | + z-index: 110; | |
| 247 | + width: 5px; | |
| 248 | + height: 25px; | |
| 249 | +} | |
| 250 | + | |
| 251 | +.handsontable .manualRowResizer { | |
| 252 | + position: fixed; | |
| 253 | + left: 0; | |
| 254 | + cursor: row-resize; | |
| 255 | + z-index: 110; | |
| 256 | + height: 5px; | |
| 257 | + width: 50px; | |
| 258 | +} | |
| 259 | + | |
| 260 | +.handsontable .manualColumnResizer:hover, | |
| 261 | +.handsontable .manualColumnResizer.active, | |
| 262 | +.handsontable .manualRowResizer:hover, | |
| 263 | +.handsontable .manualRowResizer.active { | |
| 264 | + background-color: #AAB; | |
| 265 | +} | |
| 266 | + | |
| 267 | +.handsontable .manualColumnResizerGuide { | |
| 268 | + position: fixed; | |
| 269 | + right: 0; | |
| 270 | + top: 0; | |
| 271 | + background-color: #AAB; | |
| 272 | + display: none; | |
| 273 | + width: 0; | |
| 274 | + border-right: 1px dashed #777; | |
| 275 | + margin-left: 5px; | |
| 276 | +} | |
| 277 | + | |
| 278 | +.handsontable .manualRowResizerGuide { | |
| 279 | + position: fixed; | |
| 280 | + left: 0; | |
| 281 | + bottom: 0; | |
| 282 | + background-color: #AAB; | |
| 283 | + display: none; | |
| 284 | + height: 0; | |
| 285 | + border-bottom: 1px dashed #777; | |
| 286 | + margin-top: 5px; | |
| 287 | +} | |
| 288 | + | |
| 289 | +.handsontable .manualColumnResizerGuide.active, | |
| 290 | +.handsontable .manualRowResizerGuide.active { | |
| 291 | + display: block; | |
| 292 | +} | |
| 293 | + | |
| 294 | +.handsontable .columnSorting { | |
| 295 | + position: relative; | |
| 296 | +} | |
| 297 | + | |
| 298 | +.handsontable .columnSorting:hover { | |
| 299 | + text-decoration: underline; | |
| 300 | + cursor: pointer; | |
| 301 | +} | |
| 302 | + | |
| 303 | +.handsontable .columnSorting.ascending::after { | |
| 304 | + content: '\25B2'; | |
| 305 | + color: #5f5f5f; | |
| 306 | + position: absolute; | |
| 307 | + right: -15px; | |
| 308 | +} | |
| 309 | + | |
| 310 | +.handsontable .columnSorting.descending::after { | |
| 311 | + content: '\25BC'; | |
| 312 | + color: #5f5f5f; | |
| 313 | + position: absolute; | |
| 314 | + right: -15px; | |
| 315 | +} | |
| 316 | + | |
| 317 | +.handsontable th.beforeHiddenColumn { | |
| 318 | + position: relative; | |
| 319 | +} | |
| 320 | + | |
| 321 | +.handsontable th.beforeHiddenColumn::after, | |
| 322 | +.handsontable th.afterHiddenColumn::before { | |
| 323 | + content: '\25C0'; | |
| 324 | + color: #bbb; | |
| 325 | + position: absolute; | |
| 326 | + right: 1px; | |
| 327 | + top: 2px; | |
| 328 | + font-size: 5pt; | |
| 329 | +} | |
| 330 | + | |
| 331 | +.handsontable th.afterHiddenColumn { | |
| 332 | + position: relative; | |
| 333 | +} | |
| 334 | + | |
| 335 | +.handsontable th.afterHiddenColumn::before { | |
| 336 | + left: 1px; | |
| 337 | + top: 2px; | |
| 338 | + right: auto; | |
| 339 | + content: '\25B6'; | |
| 340 | +} | |
| 341 | + | |
| 342 | +.handsontable td.afterHiddenColumn.firstVisible { | |
| 343 | + border-left: 1px solid #CCC; | |
| 344 | +} | |
| 345 | + | |
| 346 | +.handsontable thead th.hiddenHeader { | |
| 347 | + display: none; | |
| 348 | +} | |
| 349 | + | |
| 350 | +/* border line */ | |
| 351 | + | |
| 352 | +.handsontable .wtBorder { | |
| 353 | + position: absolute; | |
| 354 | + font-size: 0; | |
| 355 | +} | |
| 356 | +.handsontable .wtBorder.hidden{ | |
| 357 | + display:none !important; | |
| 358 | +} | |
| 359 | + | |
| 360 | +.handsontable td.area { | |
| 361 | + background: -moz-linear-gradient(top, rgba(181,209,255,0.34) 0%, rgba(181,209,255,0.34) 100%); /* FF3.6+ */ | |
| 362 | + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(181,209,255,0.34)), color-stop(100%,rgba(181,209,255,0.34))); /* Chrome,Safari4+ */ | |
| 363 | + background: -webkit-linear-gradient(top, rgba(181,209,255,0.34) 0%,rgba(181,209,255,0.34) 100%); /* Chrome10+,Safari5.1+ */ | |
| 364 | + background: -o-linear-gradient(top, rgba(181,209,255,0.34) 0%,rgba(181,209,255,0.34) 100%); /* Opera 11.10+ */ | |
| 365 | + background: -ms-linear-gradient(top, rgba(181,209,255,0.34) 0%,rgba(181,209,255,0.34) 100%); /* IE10+ */ | |
| 366 | + background: linear-gradient(to bottom, rgba(181,209,255,0.34) 0%,rgba(181,209,255,0.34) 100%); /* W3C */ | |
| 367 | + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#57b5d1ff', endColorstr='#57b5d1ff',GradientType=0 ); /* IE6-9 */ | |
| 368 | + background-color: #fff; | |
| 369 | +} | |
| 370 | + | |
| 371 | +/* fill handle */ | |
| 372 | + | |
| 373 | +.handsontable .wtBorder.corner { | |
| 374 | + font-size: 0; | |
| 375 | + cursor: crosshair; | |
| 376 | +} | |
| 377 | + | |
| 378 | +.handsontable .htBorder.htFillBorder { | |
| 379 | + background: red; | |
| 380 | + width: 1px; | |
| 381 | + height: 1px; | |
| 382 | +} | |
| 383 | + | |
| 384 | +.handsontableInput { | |
| 385 | + border:none; | |
| 386 | + outline-width: 0; | |
| 387 | + margin: 0 ; | |
| 388 | + padding: 1px 5px 0 5px; | |
| 389 | + font-family: inherit; | |
| 390 | + line-height: 21px; | |
| 391 | + font-size: inherit; | |
| 392 | + box-shadow: 0 0 0 2px #5292F7 inset; | |
| 393 | + resize: none; | |
| 394 | + /*below are needed to overwrite stuff added by jQuery UI Bootstrap theme*/ | |
| 395 | + display: inline-block; | |
| 396 | + color: #000; | |
| 397 | + border-radius: 0; | |
| 398 | + background-color: #FFF; | |
| 399 | + /*overwrite styles potentionally made by a framework*/ | |
| 400 | +} | |
| 401 | + | |
| 402 | +.handsontableInputHolder { | |
| 403 | + position: absolute; | |
| 404 | + top: 0; | |
| 405 | + left: 0; | |
| 406 | + z-index: 100; | |
| 407 | +} | |
| 408 | + | |
| 409 | +.htSelectEditor { | |
| 410 | + -webkit-appearance: menulist-button !important; | |
| 411 | + position: absolute; | |
| 412 | + width: auto; | |
| 413 | +} | |
| 414 | + | |
| 415 | +/* | |
| 416 | +TextRenderer readOnly cell | |
| 417 | +*/ | |
| 418 | + | |
| 419 | +.handsontable .htDimmed { | |
| 420 | + color: #777; | |
| 421 | +} | |
| 422 | + | |
| 423 | +.handsontable .htSubmenu { | |
| 424 | + position: relative; | |
| 425 | +} | |
| 426 | + | |
| 427 | +.handsontable .htSubmenu :after{ | |
| 428 | + content: '▶'; | |
| 429 | + color: #777; | |
| 430 | + position: absolute; | |
| 431 | + right: 5px; | |
| 432 | +} | |
| 433 | + | |
| 434 | + | |
| 435 | +/* | |
| 436 | +TextRenderer horizontal alignment | |
| 437 | +*/ | |
| 438 | +.handsontable .htLeft{ | |
| 439 | + text-align: left; | |
| 440 | +} | |
| 441 | +.handsontable .htCenter{ | |
| 442 | + text-align: center; | |
| 443 | +} | |
| 444 | +.handsontable .htRight{ | |
| 445 | + text-align: right; | |
| 446 | +} | |
| 447 | +.handsontable .htJustify{ | |
| 448 | + text-align: justify; | |
| 449 | +} | |
| 450 | +/* | |
| 451 | +TextRenderer vertical alignment | |
| 452 | +*/ | |
| 453 | +.handsontable .htTop{ | |
| 454 | + vertical-align: top; | |
| 455 | +} | |
| 456 | +.handsontable .htMiddle{ | |
| 457 | + vertical-align: middle; | |
| 458 | +} | |
| 459 | +.handsontable .htBottom{ | |
| 460 | + vertical-align: bottom; | |
| 461 | +} | |
| 462 | + | |
| 463 | +/* | |
| 464 | +TextRenderer placeholder value | |
| 465 | +*/ | |
| 466 | + | |
| 467 | +.handsontable .htPlaceholder { | |
| 468 | + color: #999; | |
| 469 | +} | |
| 470 | + | |
| 471 | +/* | |
| 472 | +AutocompleteRenderer down arrow | |
| 473 | +*/ | |
| 474 | + | |
| 475 | +.handsontable .htAutocompleteArrow { | |
| 476 | + float: right; | |
| 477 | + font-size: 10px; | |
| 478 | + color: #EEE; | |
| 479 | + cursor: default; | |
| 480 | + width: 16px; | |
| 481 | + text-align: center; | |
| 482 | +} | |
| 483 | + | |
| 484 | +.handsontable td .htAutocompleteArrow:hover { | |
| 485 | + color: #777; | |
| 486 | +} | |
| 487 | + | |
| 488 | +.handsontable td.area .htAutocompleteArrow { | |
| 489 | + color: #d3d3d3; | |
| 490 | +} | |
| 491 | + | |
| 492 | +/* | |
| 493 | +CheckboxRenderer | |
| 494 | +*/ | |
| 495 | + | |
| 496 | +.handsontable .htCheckboxRendererInput.noValue { | |
| 497 | + opacity: 0.5; | |
| 498 | +} | |
| 499 | +.handsontable .htCheckboxRendererLabel { | |
| 500 | + cursor: pointer; | |
| 501 | + display: inline-block; | |
| 502 | + width: 100%; | |
| 503 | +} | |
| 504 | + | |
| 505 | +/* | |
| 506 | +NumericRenderer | |
| 507 | +*/ | |
| 508 | + | |
| 509 | +.handsontable .htNumeric { | |
| 510 | + text-align: right; | |
| 511 | +} | |
| 512 | + | |
| 513 | +/* | |
| 514 | +Comment For Cell | |
| 515 | +*/ | |
| 516 | +.htCommentCell{ | |
| 517 | + position: relative; | |
| 518 | +} | |
| 519 | +.htCommentCell:after{ | |
| 520 | + content: ''; | |
| 521 | + position: absolute; | |
| 522 | + top: 0; | |
| 523 | + right: 0; | |
| 524 | + border-left: 6px solid transparent; | |
| 525 | + border-top: 6px solid red; | |
| 526 | +} | |
| 527 | + | |
| 528 | +@-webkit-keyframes opacity-hide { | |
| 529 | + from { | |
| 530 | + opacity: 1; | |
| 531 | + } | |
| 532 | + to { | |
| 533 | + opacity: 0; | |
| 534 | + /*display: none;*/ | |
| 535 | + } | |
| 536 | +} | |
| 537 | +@keyframes opacity-hide { | |
| 538 | + from { | |
| 539 | + /*display: block;*/ | |
| 540 | + opacity: 1; | |
| 541 | + } | |
| 542 | + to { | |
| 543 | + opacity: 0; | |
| 544 | + /*display: none;*/ | |
| 545 | + } | |
| 546 | +} | |
| 547 | + | |
| 548 | +@-webkit-keyframes opacity-show { | |
| 549 | + from { | |
| 550 | + opacity: 0; | |
| 551 | + /*display: none;*/ | |
| 552 | + } | |
| 553 | + to { | |
| 554 | + opacity: 1; | |
| 555 | + /*display: block;*/ | |
| 556 | + } | |
| 557 | +} | |
| 558 | +@keyframes opacity-show { | |
| 559 | + from { | |
| 560 | + opacity: 0; | |
| 561 | + /*display: none;*/ | |
| 562 | + } | |
| 563 | + to { | |
| 564 | + opacity: 1; | |
| 565 | + /*display: block;*/ | |
| 566 | + } | |
| 567 | +} | |
| 568 | + | |
| 569 | +/** | |
| 570 | + * Handsontable in Handsontable | |
| 571 | + */ | |
| 572 | + | |
| 573 | +.handsontable .handsontable.ht_clone_top .wtHider { | |
| 574 | + padding: 0 0 5px 0; | |
| 575 | +} | |
| 576 | + | |
| 577 | +/* removing shadows, TODO: remove the commented code and this comment */ | |
| 578 | +/*.handsontable .handsontable:not(.ht_master) table {*/ | |
| 579 | + /*-webkit-box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.4);*/ | |
| 580 | + /*box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.4);*/ | |
| 581 | +/*}*/ | |
| 582 | + | |
| 583 | +/** | |
| 584 | +* Autocomplete Editor | |
| 585 | +*/ | |
| 586 | +.handsontable .autocompleteEditor.handsontable { | |
| 587 | + padding-right: 17px; | |
| 588 | +} | |
| 589 | +.handsontable .autocompleteEditor.handsontable.htMacScroll { | |
| 590 | + padding-right: 15px; | |
| 591 | +} | |
| 592 | + | |
| 593 | + | |
| 594 | +/** | |
| 595 | + * Handsontable listbox theme | |
| 596 | + */ | |
| 597 | + | |
| 598 | +.handsontable.listbox { | |
| 599 | + margin: 0; | |
| 600 | +} | |
| 601 | + | |
| 602 | +.handsontable.listbox .ht_master table { | |
| 603 | + border: 1px solid #ccc; | |
| 604 | + border-collapse: separate; | |
| 605 | + background: white; | |
| 606 | +} | |
| 607 | + | |
| 608 | +.handsontable.listbox th, | |
| 609 | +.handsontable.listbox tr:first-child th, | |
| 610 | +.handsontable.listbox tr:last-child th, | |
| 611 | +.handsontable.listbox tr:first-child td, | |
| 612 | +.handsontable.listbox td { | |
| 613 | + border-color: transparent; | |
| 614 | +} | |
| 615 | + | |
| 616 | +.handsontable.listbox th, | |
| 617 | +.handsontable.listbox td { | |
| 618 | + white-space: nowrap; | |
| 619 | + text-overflow: ellipsis; | |
| 620 | +} | |
| 621 | + | |
| 622 | +.handsontable.listbox td.htDimmed { | |
| 623 | + cursor: default; | |
| 624 | + color: inherit; | |
| 625 | + font-style: inherit; | |
| 626 | +} | |
| 627 | + | |
| 628 | +.handsontable.listbox .wtBorder { | |
| 629 | + visibility: hidden; | |
| 630 | +} | |
| 631 | + | |
| 632 | +.handsontable.listbox tr td.current, | |
| 633 | +.handsontable.listbox tr:hover td { | |
| 634 | + background: #eee; | |
| 635 | +} | |
| 636 | + | |
| 637 | +.ht_clone_top { | |
| 638 | + z-index: 101; | |
| 639 | +} | |
| 640 | + | |
| 641 | +.ht_clone_left { | |
| 642 | + z-index: 102; | |
| 643 | +} | |
| 644 | + | |
| 645 | +.ht_clone_top_left_corner, | |
| 646 | +.ht_clone_bottom_left_corner { | |
| 647 | + z-index: 103; | |
| 648 | +} | |
| 649 | + | |
| 650 | +.ht_clone_debug { | |
| 651 | + z-index: 103; | |
| 652 | +} | |
| 653 | + | |
| 654 | +.handsontable td.htSearchResult { | |
| 655 | + background: #fcedd9; | |
| 656 | + color: #583707; | |
| 657 | +} | |
| 658 | + | |
| 659 | +/* | |
| 660 | +Cell borders | |
| 661 | +*/ | |
| 662 | +.htBordered{ | |
| 663 | + /*box-sizing: border-box !important;*/ | |
| 664 | + border-width: 1px; | |
| 665 | +} | |
| 666 | +.htBordered.htTopBorderSolid { | |
| 667 | + border-top-style: solid; | |
| 668 | + border-top-color: #000; | |
| 669 | +} | |
| 670 | +.htBordered.htRightBorderSolid { | |
| 671 | + border-right-style: solid; | |
| 672 | + border-right-color: #000; | |
| 673 | +} | |
| 674 | +.htBordered.htBottomBorderSolid { | |
| 675 | + border-bottom-style: solid; | |
| 676 | + border-bottom-color: #000; | |
| 677 | +} | |
| 678 | +.htBordered.htLeftBorderSolid { | |
| 679 | + border-left-style: solid; | |
| 680 | + border-left-color: #000; | |
| 681 | +} | |
| 682 | + | |
| 683 | +.htCommentTextArea{ | |
| 684 | + -moz-box-shadow: 1px 1px 2px #bbb; | |
| 685 | + -webkit-box-shadow: 1px 1px 2px #bbb; | |
| 686 | + background-color: #FFFACD; | |
| 687 | + border: 1px solid #999; | |
| 688 | + box-shadow: 1px 1px 2px #bbb; | |
| 689 | + font-family: 'Arial'; | |
| 690 | +} | |
| 691 | + | |
| 692 | +.handsontable tbody tr th:nth-last-child(2) { | |
| 693 | + border-right: 1px solid #CCC; | |
| 694 | +} | |
| 695 | + | |
| 696 | +.handsontable thead tr:nth-last-child(2) th.htGroupIndicatorContainer { | |
| 697 | + border-bottom: 1px solid #CCC; | |
| 698 | + padding-bottom: 5px; | |
| 699 | +} | |
| 700 | + | |
| 701 | + | |
| 702 | +.ht_clone_top_left_corner thead tr th:nth-last-child(2) { | |
| 703 | + border-right: 1px solid #CCC; | |
| 704 | +} | |
| 705 | + | |
| 706 | +.htCollapseButton { | |
| 707 | + width: 10px; | |
| 708 | + height: 10px; | |
| 709 | + line-height: 10px; | |
| 710 | + text-align: center; | |
| 711 | + border-radius: 5px; | |
| 712 | + border: 1px solid #f3f3f3; | |
| 713 | + -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); | |
| 714 | + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); | |
| 715 | + cursor: pointer; | |
| 716 | + margin-bottom: 3px; | |
| 717 | + position: relative; | |
| 718 | +} | |
| 719 | + | |
| 720 | +.htCollapseButton:after { | |
| 721 | + content: ""; | |
| 722 | + height: 300%; | |
| 723 | + width: 1px; | |
| 724 | + display: block; | |
| 725 | + background: #ccc; | |
| 726 | + margin-left: 4px; | |
| 727 | + position: absolute; | |
| 728 | + /*top: -300%;*/ | |
| 729 | + bottom: 10px; | |
| 730 | +} | |
| 731 | + | |
| 732 | + | |
| 733 | +thead .htCollapseButton { | |
| 734 | + right: 5px; | |
| 735 | + position: absolute; | |
| 736 | + top: 5px; | |
| 737 | + background: #fff; | |
| 738 | +} | |
| 739 | + | |
| 740 | +thead .htCollapseButton:after { | |
| 741 | + height: 1px; | |
| 742 | + width: 700%; | |
| 743 | + right: 10px; | |
| 744 | + top: 4px; | |
| 745 | +} | |
| 746 | + | |
| 747 | +.handsontable tr th .htExpandButton { | |
| 748 | + position: absolute; | |
| 749 | + width: 10px; | |
| 750 | + height: 10px; | |
| 751 | + line-height: 10px; | |
| 752 | + text-align: center; | |
| 753 | + border-radius: 5px; | |
| 754 | + border: 1px solid #f3f3f3; | |
| 755 | + -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); | |
| 756 | + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); | |
| 757 | + cursor: pointer; | |
| 758 | + top: 0; | |
| 759 | + display: none; | |
| 760 | +} | |
| 761 | + | |
| 762 | +.handsontable thead tr th .htExpandButton { | |
| 763 | + /*left: 5px;*/ | |
| 764 | + top: 5px; | |
| 765 | +} | |
| 766 | + | |
| 767 | +.handsontable tr th .htExpandButton.clickable { | |
| 768 | + display: block; | |
| 769 | +} | |
| 770 | + | |
| 771 | +.collapsibleIndicator { | |
| 772 | + position: absolute; | |
| 773 | + top: 50%; | |
| 774 | + transform: translate(0% ,-50%); | |
| 775 | + right: 5px; | |
| 776 | + border: 1px solid #A6A6A6; | |
| 777 | + line-height: 10px; | |
| 778 | + color: #222; | |
| 779 | + border-radius: 10px; | |
| 780 | + font-size: 10px; | |
| 781 | + width: 10px; | |
| 782 | + height: 10px; | |
| 783 | + cursor: pointer; | |
| 784 | + -webkit-box-shadow: 0px 0px 0px 6px rgba(238,238,238,1); | |
| 785 | + -moz-box-shadow: 0px 0px 0px 6px rgba(238,238,238,1); | |
| 786 | + box-shadow: 0px 0px 0px 6px rgba(238,238,238,1); | |
| 787 | + background: #eee; | |
| 788 | +} | |
| 789 | + | |
| 790 | +.handsontable col.hidden { | |
| 791 | + width: 0 !important; | |
| 792 | +} | |
| 793 | + | |
| 794 | +.handsontable table tr th.lightRightBorder { | |
| 795 | + border-right: 1px solid #E6E6E6; | |
| 796 | +} | |
| 797 | + | |
| 798 | +.handsontable tr.hidden, | |
| 799 | +.handsontable tr.hidden td, | |
| 800 | +.handsontable tr.hidden th { | |
| 801 | + display: none; | |
| 802 | +} | |
| 803 | + | |
| 804 | +.ht_master, | |
| 805 | +.ht_clone_left, | |
| 806 | +.ht_clone_top, | |
| 807 | +.ht_clone_bottom { | |
| 808 | + overflow: hidden; | |
| 809 | +} | |
| 810 | + | |
| 811 | +.ht_master .wtHolder { | |
| 812 | + overflow: auto; | |
| 813 | +} | |
| 814 | + | |
| 815 | +.ht_clone_left .wtHolder { | |
| 816 | + overflow-x: hidden; | |
| 817 | + overflow-y: auto; | |
| 818 | +} | |
| 819 | + | |
| 820 | +.ht_clone_top .wtHolder, | |
| 821 | +.ht_clone_bottom .wtHolder { | |
| 822 | + overflow-x: auto; | |
| 823 | + overflow-y: hidden; | |
| 824 | +} | |
| 825 | + | |
| 826 | + | |
| 827 | +/*WalkontableDebugOverlay*/ | |
| 828 | + | |
| 829 | +.wtDebugHidden { | |
| 830 | + display: none; | |
| 831 | +} | |
| 832 | + | |
| 833 | +.wtDebugVisible { | |
| 834 | + display: block; | |
| 835 | + -webkit-animation-duration: 0.5s; | |
| 836 | + -webkit-animation-name: wtFadeInFromNone; | |
| 837 | + animation-duration: 0.5s; | |
| 838 | + animation-name: wtFadeInFromNone; | |
| 839 | +} | |
| 840 | + | |
| 841 | +@keyframes wtFadeInFromNone { | |
| 842 | + 0% { | |
| 843 | + display: none; | |
| 844 | + opacity: 0; | |
| 845 | + } | |
| 846 | + | |
| 847 | + 1% { | |
| 848 | + display: block; | |
| 849 | + opacity: 0; | |
| 850 | + } | |
| 851 | + | |
| 852 | + 100% { | |
| 853 | + display: block; | |
| 854 | + opacity: 1; | |
| 855 | + } | |
| 856 | +} | |
| 857 | + | |
| 858 | +@-webkit-keyframes wtFadeInFromNone { | |
| 859 | + 0% { | |
| 860 | + display: none; | |
| 861 | + opacity: 0; | |
| 862 | + } | |
| 863 | + | |
| 864 | + 1% { | |
| 865 | + display: block; | |
| 866 | + opacity: 0; | |
| 867 | + } | |
| 868 | + | |
| 869 | + 100% { | |
| 870 | + display: block; | |
| 871 | + opacity: 1; | |
| 872 | + } | |
| 873 | +} | |
| 874 | +/* | |
| 875 | + | |
| 876 | + Handsontable Mobile Text Editor stylesheet | |
| 877 | + | |
| 878 | + */ | |
| 879 | + | |
| 880 | +.handsontable.mobile, | |
| 881 | +.handsontable.mobile .wtHolder { | |
| 882 | + -webkit-touch-callout:none; | |
| 883 | + -webkit-user-select:none; | |
| 884 | + -khtml-user-select:none; | |
| 885 | + -moz-user-select:none; | |
| 886 | + -ms-user-select:none; | |
| 887 | + user-select:none; | |
| 888 | + -webkit-tap-highlight-color:rgba(0,0,0,0); | |
| 889 | + -webkit-overflow-scrolling: touch; | |
| 890 | +} | |
| 891 | + | |
| 892 | +.htMobileEditorContainer { | |
| 893 | + display: none; | |
| 894 | + position: absolute; | |
| 895 | + top: 0; | |
| 896 | + width: 70%; | |
| 897 | + height: 54pt; | |
| 898 | + background: #f8f8f8; | |
| 899 | + border-radius: 20px; | |
| 900 | + border: 1px solid #ebebeb; | |
| 901 | + z-index: 999; | |
| 902 | + box-sizing: border-box; | |
| 903 | + -webkit-box-sizing: border-box; | |
| 904 | + -webkit-text-size-adjust: none; | |
| 905 | +} | |
| 906 | + | |
| 907 | +.topLeftSelectionHandle:not(.ht_master .topLeftSelectionHandle), | |
| 908 | +.topLeftSelectionHandle-HitArea:not(.ht_master .topLeftSelectionHandle-HitArea) { | |
| 909 | + z-index: 9999; | |
| 910 | +} | |
| 911 | + | |
| 912 | +/* Initial left/top coordinates - overwritten when actual position is set */ | |
| 913 | +.topLeftSelectionHandle, | |
| 914 | +.topLeftSelectionHandle-HitArea, | |
| 915 | +.bottomRightSelectionHandle, | |
| 916 | +.bottomRightSelectionHandle-HitArea { | |
| 917 | + left: -10000px; | |
| 918 | + top: -10000px; | |
| 919 | +} | |
| 920 | + | |
| 921 | +.htMobileEditorContainer.active { | |
| 922 | + display: block; | |
| 923 | +} | |
| 924 | + | |
| 925 | +.htMobileEditorContainer .inputs { | |
| 926 | + position: absolute; | |
| 927 | + right: 210pt; | |
| 928 | + bottom: 10pt; | |
| 929 | + top: 10pt; | |
| 930 | + left: 14px; | |
| 931 | + height: 34pt; | |
| 932 | +} | |
| 933 | + | |
| 934 | +.htMobileEditorContainer .inputs textarea { | |
| 935 | + font-size: 13pt; | |
| 936 | + border: 1px solid #a1a1a1; | |
| 937 | + -webkit-appearance: none; | |
| 938 | + -webkit-box-shadow: none; | |
| 939 | + -moz-box-shadow: none; | |
| 940 | + box-shadow: none; | |
| 941 | + position: absolute; | |
| 942 | + left: 14px; | |
| 943 | + right: 14px; | |
| 944 | + top: 0; | |
| 945 | + bottom: 0; | |
| 946 | + padding: 7pt; | |
| 947 | +} | |
| 948 | + | |
| 949 | +.htMobileEditorContainer .cellPointer { | |
| 950 | + position: absolute; | |
| 951 | + top: -13pt; | |
| 952 | + height: 0; | |
| 953 | + width: 0; | |
| 954 | + left: 30px; | |
| 955 | + | |
| 956 | + border-left: 13pt solid transparent; | |
| 957 | + border-right: 13pt solid transparent; | |
| 958 | + border-bottom: 13pt solid #ebebeb; | |
| 959 | +} | |
| 960 | + | |
| 961 | +.htMobileEditorContainer .cellPointer.hidden { | |
| 962 | + display: none; | |
| 963 | +} | |
| 964 | + | |
| 965 | +.htMobileEditorContainer .cellPointer:before { | |
| 966 | + content: ''; | |
| 967 | + display: block; | |
| 968 | + position: absolute; | |
| 969 | + top: 2px; | |
| 970 | + height: 0; | |
| 971 | + width: 0; | |
| 972 | + left: -13pt; | |
| 973 | + | |
| 974 | + border-left: 13pt solid transparent; | |
| 975 | + border-right: 13pt solid transparent; | |
| 976 | + border-bottom: 13pt solid #f8f8f8; | |
| 977 | +} | |
| 978 | + | |
| 979 | +.htMobileEditorContainer .moveHandle { | |
| 980 | + position: absolute; | |
| 981 | + top: 10pt; | |
| 982 | + left: 5px; | |
| 983 | + width: 30px; | |
| 984 | + bottom: 0px; | |
| 985 | + cursor: move; | |
| 986 | + z-index: 9999; | |
| 987 | +} | |
| 988 | + | |
| 989 | +.htMobileEditorContainer .moveHandle:after { | |
| 990 | + content: "..\a..\a..\a.."; | |
| 991 | + white-space: pre; | |
| 992 | + line-height: 10px; | |
| 993 | + font-size: 20pt; | |
| 994 | + display: inline-block; | |
| 995 | + margin-top: -8px; | |
| 996 | + color: #ebebeb; | |
| 997 | +} | |
| 998 | + | |
| 999 | +.htMobileEditorContainer .positionControls { | |
| 1000 | + width: 205pt; | |
| 1001 | + position: absolute; | |
| 1002 | + right: 5pt; | |
| 1003 | + top: 0; | |
| 1004 | + bottom: 0; | |
| 1005 | +} | |
| 1006 | + | |
| 1007 | +.htMobileEditorContainer .positionControls > div { | |
| 1008 | + width: 50pt; | |
| 1009 | + height: 100%; | |
| 1010 | + float: left; | |
| 1011 | +} | |
| 1012 | + | |
| 1013 | +.htMobileEditorContainer .positionControls > div:after { | |
| 1014 | + content: " "; | |
| 1015 | + display: block; | |
| 1016 | + width: 15pt; | |
| 1017 | + height: 15pt; | |
| 1018 | + text-align: center; | |
| 1019 | + line-height: 50pt; | |
| 1020 | +} | |
| 1021 | + | |
| 1022 | +.htMobileEditorContainer .leftButton:after, | |
| 1023 | +.htMobileEditorContainer .rightButton:after, | |
| 1024 | +.htMobileEditorContainer .upButton:after, | |
| 1025 | +.htMobileEditorContainer .downButton:after { | |
| 1026 | + transform-origin: 5pt 5pt; | |
| 1027 | + -webkit-transform-origin: 5pt 5pt; | |
| 1028 | + margin: 21pt 0 0 21pt; | |
| 1029 | +} | |
| 1030 | + | |
| 1031 | +.htMobileEditorContainer .leftButton:after { | |
| 1032 | + border-top: 2px solid #288ffe; | |
| 1033 | + border-left: 2px solid #288ffe; | |
| 1034 | + -webkit-transform: rotate(-45deg); | |
| 1035 | + /*margin-top: 17pt;*/ | |
| 1036 | + /*margin-left: 20pt;*/ | |
| 1037 | +} | |
| 1038 | +.htMobileEditorContainer .leftButton:active:after { | |
| 1039 | + border-color: #cfcfcf; | |
| 1040 | +} | |
| 1041 | + | |
| 1042 | +.htMobileEditorContainer .rightButton:after { | |
| 1043 | + border-top: 2px solid #288ffe; | |
| 1044 | + border-left: 2px solid #288ffe; | |
| 1045 | + -webkit-transform: rotate(135deg); | |
| 1046 | + /*margin-top: 17pt;*/ | |
| 1047 | + /*margin-left: 10pt;*/ | |
| 1048 | +} | |
| 1049 | +.htMobileEditorContainer .rightButton:active:after { | |
| 1050 | + border-color: #cfcfcf; | |
| 1051 | +} | |
| 1052 | + | |
| 1053 | +.htMobileEditorContainer .upButton:after { | |
| 1054 | + /*border-top: 2px solid #cfcfcf;*/ | |
| 1055 | + border-top: 2px solid #288ffe; | |
| 1056 | + border-left: 2px solid #288ffe; | |
| 1057 | + -webkit-transform: rotate(45deg); | |
| 1058 | + /*margin-top: 22pt;*/ | |
| 1059 | + /*margin-left: 15pt;*/ | |
| 1060 | +} | |
| 1061 | +.htMobileEditorContainer .upButton:active:after { | |
| 1062 | + border-color: #cfcfcf; | |
| 1063 | +} | |
| 1064 | + | |
| 1065 | +.htMobileEditorContainer .downButton:after { | |
| 1066 | + border-top: 2px solid #288ffe; | |
| 1067 | + border-left: 2px solid #288ffe; | |
| 1068 | + -webkit-transform: rotate(225deg); | |
| 1069 | + /*margin-top: 15pt;*/ | |
| 1070 | + /*margin-left: 15pt;*/ | |
| 1071 | +} | |
| 1072 | +.htMobileEditorContainer .downButton:active:after { | |
| 1073 | + border-color: #cfcfcf; | |
| 1074 | +} | |
| 1075 | + | |
| 1076 | +.handsontable.hide-tween { | |
| 1077 | + -webkit-animation: opacity-hide 0.3s; | |
| 1078 | + animation: opacity-hide 0.3s; | |
| 1079 | + animation-fill-mode: forwards; | |
| 1080 | + -webkit-animation-fill-mode: forwards; | |
| 1081 | +} | |
| 1082 | + | |
| 1083 | +.handsontable.show-tween { | |
| 1084 | + -webkit-animation: opacity-show 0.3s; | |
| 1085 | + animation: opacity-show 0.3s; | |
| 1086 | + animation-fill-mode: forwards; | |
| 1087 | + -webkit-animation-fill-mode: forwards; | |
| 1088 | +} | |
| 1089 | +/*! | |
| 1090 | + * Handsontable ContextMenu | |
| 1091 | + */ | |
| 1092 | + | |
| 1093 | +.htContextMenu { | |
| 1094 | + display: none; | |
| 1095 | + position: absolute; | |
| 1096 | + z-index: 1060; /* needs to be higher than 1050 - z-index for Twitter Bootstrap modal (#1569) */ | |
| 1097 | +} | |
| 1098 | + | |
| 1099 | +.htContextMenu .ht_clone_top, | |
| 1100 | +.htContextMenu .ht_clone_left, | |
| 1101 | +.htContextMenu .ht_clone_corner, | |
| 1102 | +.htContextMenu .ht_clone_debug { | |
| 1103 | + display: none; | |
| 1104 | +} | |
| 1105 | + | |
| 1106 | +.htContextMenu table.htCore { | |
| 1107 | + border: 1px solid #bbb; | |
| 1108 | + border-bottom-width: 2px; | |
| 1109 | + border-right-width: 2px; | |
| 1110 | +} | |
| 1111 | + | |
| 1112 | +.htContextMenu .wtBorder { | |
| 1113 | + visibility: hidden; | |
| 1114 | +} | |
| 1115 | + | |
| 1116 | +.htContextMenu table tbody tr td { | |
| 1117 | + background: white; | |
| 1118 | + border-width: 0; | |
| 1119 | + padding: 4px 6px 0 6px; | |
| 1120 | + cursor: pointer; | |
| 1121 | + overflow: hidden; | |
| 1122 | + white-space: nowrap; | |
| 1123 | + text-overflow: ellipsis; | |
| 1124 | +} | |
| 1125 | + | |
| 1126 | +.htContextMenu table tbody tr td:first-child { | |
| 1127 | + border: 0; | |
| 1128 | +} | |
| 1129 | + | |
| 1130 | +.htContextMenu table tbody tr td.htDimmed { | |
| 1131 | + font-style: normal; | |
| 1132 | + color: #323232; | |
| 1133 | +} | |
| 1134 | + | |
| 1135 | +.htContextMenu table tbody tr td.current, | |
| 1136 | +.htContextMenu table tbody tr td.zeroclipboard-is-hover { | |
| 1137 | + background: #e9e9e9; | |
| 1138 | +} | |
| 1139 | + | |
| 1140 | +.htContextMenu table tbody tr td.htSeparator { | |
| 1141 | + border-top: 1px solid #bbb; | |
| 1142 | + height: 0; | |
| 1143 | + padding: 0; | |
| 1144 | + cursor: default; | |
| 1145 | +} | |
| 1146 | + | |
| 1147 | +.htContextMenu table tbody tr td.htDisabled { | |
| 1148 | + color: #999; | |
| 1149 | +} | |
| 1150 | + | |
| 1151 | +.htContextMenu table tbody tr td.htDisabled:hover { | |
| 1152 | + background: #fff; | |
| 1153 | + color: #999; | |
| 1154 | + cursor: default; | |
| 1155 | +} | |
| 1156 | + | |
| 1157 | +.htContextMenu table tbody tr.htHidden { | |
| 1158 | + display: none; | |
| 1159 | +} | |
| 1160 | + | |
| 1161 | +.htContextMenu table tbody tr td .htItemWrapper { | |
| 1162 | + margin-left: 10px; | |
| 1163 | + margin-right: 6px; | |
| 1164 | +} | |
| 1165 | + | |
| 1166 | +.htContextMenu table tbody tr td div span.selected { | |
| 1167 | + margin-top: -2px; | |
| 1168 | + position: absolute; | |
| 1169 | + left: 4px; | |
| 1170 | +} | |
| 1171 | + | |
| 1172 | +.htContextMenu .ht_master .wtHolder { | |
| 1173 | + overflow: hidden; | |
| 1174 | +} | ... | ... |