SvnLog.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.ma.SvnLog', {
  3. extend : 'Ext.app.Controller',
  4. requires : [ 'erp.util.BaseUtil' ],
  5. views : [ 'ma.SvnLog', 'core.form.FtDateField' ],
  6. refs : [ {
  7. ref : 'date',
  8. selector : '#date'
  9. }, {
  10. ref : 'remark',
  11. selector : '#remark'
  12. }, {
  13. ref : 'grid',
  14. selector : '#grid'
  15. }, {
  16. ref: 'paging',
  17. selector : '#grid > pagingtoolbar'
  18. }, {
  19. ref: 'switch',
  20. selector : '#switch'
  21. }, {
  22. ref: 'svninfo',
  23. selector : '#svninfo'
  24. }],
  25. init : function() {
  26. this.BaseUtil = Ext.create('erp.util.BaseUtil');
  27. var me = this;
  28. this.control({
  29. '#refresh' : {
  30. click : function(btn) {
  31. if (me.getPaging().fireEvent('beforechange', me.getPaging(), 1) !== false){
  32. me.search(0);
  33. }
  34. }
  35. },
  36. '#close' : {
  37. click : function() {
  38. this.BaseUtil.getActiveTab().close();
  39. }
  40. },
  41. '#date' : {
  42. afterrender : function(field) {
  43. field.setValues(me.getDateArea('m', -1), me.getDateArea('d', 0));
  44. }
  45. },
  46. '#grid' : {
  47. afterrender : function() {
  48. me.search(0);
  49. }
  50. },
  51. '#switch' : {
  52. change : function() {
  53. me.search(0);
  54. }
  55. },
  56. 'button' : {
  57. click : function(btn) {
  58. if (btn.param) {
  59. var a = btn.param[0], b = btn.param[2], m = btn.param[1], n = btn.param[3];
  60. me.getDate().setValues(me.getDateArea(a, m), me.getDateArea(b, n));
  61. if (me.getPaging().fireEvent('beforechange', me.getPaging(), 1) !== false){
  62. me.search(0);
  63. }
  64. }
  65. }
  66. },
  67. '#svninfo' : {
  68. afterrender: function(field) {
  69. // 系统程序版本
  70. Ext.Ajax.request({
  71. url: basePath + 'common/svninfo.html',
  72. callback: function(scope, success, response) {
  73. if(response.status == 200) {
  74. field.setValue(response.responseText);
  75. }
  76. }
  77. });
  78. }
  79. },
  80. '#svnlast' : {
  81. afterrender: function(field) {
  82. // 系统程序版本
  83. Ext.Ajax.request({
  84. url: basePath + 'ma/svn/version.action',
  85. callback: function(scope, success, response) {
  86. if(response.status == 200) {
  87. var rs = Ext.decode(response.responseText);
  88. field.setValue(rs.version);
  89. }
  90. }
  91. });
  92. }
  93. }
  94. });
  95. },
  96. getDateArea : function(type, val) {
  97. var today = new Date(), year = today.getFullYear(), month = today.getMonth(), day = today.getDate();
  98. if (type == 'd') {
  99. return new Date(year, month, day + val);
  100. } else if (type == 'm') {
  101. return new Date(year, month + val, val == 0 ? 1 : day);
  102. } else if (type == 'y') {
  103. return new Date(year + val, val == 0 ? 0 : month, val == 0 ? 1 : day);
  104. }
  105. },
  106. search : function(start) {
  107. var me = this, store = me.getGrid().store;
  108. store.load({
  109. params : {
  110. start : start,
  111. limit : store.pageSize,
  112. condition : me.toUnicode(me.getCondition())
  113. }
  114. });
  115. },
  116. getCondition : function() {
  117. var date = this.getDate().value,
  118. remark = this.getRemark().value,
  119. onlyNew = this.getSwitch().getValue(),
  120. version = this.getSvninfo().getValue(),
  121. str = '';
  122. if (date != null && date.length > 0) {
  123. str += ' log_date ' + date;
  124. }
  125. if (remark != null && remark.length > 0) {
  126. if (str.length > 0)
  127. str += ' and ';
  128. str += ' log_remark like \'%' + remark + '%\'';
  129. }
  130. if (onlyNew && version != null) {
  131. if (str.length > 0)
  132. str += ' and ';
  133. str += ' log_version > ' + version;
  134. }
  135. return str;
  136. },
  137. toUnicode : function(s) {
  138. return s.replace(/([\u4E00-\u9FA5]|[\uFE30-\uFFA0])/g, function() {
  139. return "\\u" + RegExp["$1"].charCodeAt(0).toString(16);
  140. });
  141. }
  142. });