-
-### 二、手写模拟数据耗费时间 ###
-
-从设计阶段之后到联调之前,前端需要编写大量的自测数据来自测(尤其层级嵌套或CASE较多的情况会比较麻烦)。有了RAP告别手写自测数据,RAP会根据最新的接口文档动态实时的产生模拟数据,且结合MockJS支持深度定制的数据模拟规则。“一处写好,大家共享。”不管是自测、做DEMO,RAP在数据模拟上都可用最少时间,达到最大产出。对于前端,RAP模拟请求返回生成靠谱的自测数据,对于后端,RAP根据接口文档中定义的参数格式伪造实际请求以此测试后端实际接口的准确性。
-
-### 三、有规范却不执行 ###
-
-这是实际常见到的问题,定义好了接口,联调的时候发现实际数据不符合规则或前端手写的自测数据错误导致前端未正确处理。RAP MOCK保证前端代码对接口正确的处理,同时,RAP会根据接口文档中的结构动态验证后端实际返回的正确性,在联调前扫清所有后端格式错误。
-
-### 四、文档维护 & 实时性 ###
-
-传统的接口文档若不进行持续的维护,将会逐渐失效。没有实时性的文档很快将会变成废品,RAP集中式的文档编辑,实时生效的前后端工具将RAP中的接口文档变成强依赖。RAP中的接口文档一旦修改,所有的自动化功能都将受其影响,反之也保证了RAP中的文档始终是最新的。
-
-## 特点介绍 ##
-
-### 一、方便快捷的创建、共享文档 ###
-
-RAP中对接口文档的编辑提供了一套可视化界面,编辑操作像Excel一样方便简单。比如您可以展开、收缩层级嵌套的参数结构,查看、切换不同历史版本,一键复制、移动参数(包括层级嵌套的复杂参数)。为方便离线查看,您也可以导出接口文档(Word文档)。在即将问世的v1.0新版RAP中,我们还会增加:
-注入规范验证(强制接口命名规范)、接口模板等提升文档易用性的功能。
-针对RD、FE、QA不同的角色提供不同的视图及功能。比如后端更关注接口地址,前端更关心业务逻辑中划分的”页面“或”模块“。我们将持续提升产品易用性。RAP的核心是接口文档,因此文档编辑的用户体验是我们非常重视的,有了较好的文档编辑用户体验,用户才愿意用RAP去维护文档,并充分利用这些结构化的数据将更多工作自动化。
-
-### 二:RAP MOCK,“设计阶段,所有服务全跑通” ###
-
-在设计阶段写好接口文档后,RAP会根据接口文档中的请求路径、接口数据自动生成所有的服务接口。在联调前,所有MOCK服务全部可跑通,并根据文档变化实时更新,前端自测将变得更加简单。
-
-RAP的MOCK数据是动态生成的,默认数据会有自己的初始行为,您也能通过标签精细的控制数据生成的逻辑。这也为后续我们创建”响应参数“的数据创造基础。目前RAP支持[MockJS](http://mockjs.com)和RAP MOCK两种Mock规则,后续还会进行更多扩充
-。
-
-
-### 三:集合THX平台发挥更大的优势 ###
-
-RAP生成的数据通过跨平台Crox模板引擎可打通多平台,意味着RAP MOCK的用武之地不再局限于JSONP、JSON形式的接口,Velocity、Smarty等后端模板语言调用RAP MOCK服务依然可行,实现“一处编写、到处使用。”
-
-我们后续还将与THX其它产品做深度结合,发挥更多的作用。
-
-## RAP发展历程 ##
-
-RAP第一版在2010年中完成开发,历经了3年多的实际应用,无论是文档编辑、前端MOCK服务、后端自测工具还是自动化测试等功能都较为成熟。我们在用户体验、操作细节上也做了很多的努力。
-
-在文档结构化后再利用上,接口文档是第一个尝试,我们也在努力挖掘更多的可再利用文档,用以提升其它的重复劳动,我们也在努力让现有功能更加完善。无论你是前端、后端还是测试,有了RAP,文档共享和开发将更为方便。
-
-## RAP v1.0 ##
-
-在即将到来的RAPv1.0版本中,我们会增加分布式的NodeJS客户端,支持Web服务器与RAP的深度结合,利用反向代理解决Mock服务跨域问题,支持离线存取,分散服务器Mock压力,并在客户端实现更多强大的功能。
-
-
-
-
-
-## 关于RAP ##
-
-RAP由阿里妈妈用户体验部开发,属于[THX](http://thx.alibaba-inc.com)平台的产品之一。欢迎大家访问[RAP主站](http://rap.alibaba-inc.com),有任何疑问欢迎邮件至:[huoyong.msb@taobao.com](mailto:huoyong.msb@taobao.com)。RAP诚挚的期待您的光临!
diff --git a/README.md b/README.md
index 3d7ab027b..ee6094f5d 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,29 @@
-Rigel Automation Platform
-===
- @version v0.8.1
- @author Bosn(霍雍), wangjeaf(思竹)
- @weibo http://weibo.com/bosn, http://github.com/wangjeaf
- @mail bosn@outlook.com, wangjeaf@gmail.com
+# RAP
+
+* [Official Site 官网](http://thx.github.io/RAP)
+* [Wiki/Documents/Manual Wiki/文档/手册](http://github.com/thx/RAP/wiki)
+* [Video Introduction 视频介绍](http://vodcdn.video.taobao.com/player/ugc/tb_ugc_pieces_core_player_loader.swf?version=1.0.20150330&vid=11622279&uid=11051796&p=1&t=1&rid=&random=6666)
+* [Tutorial 教程](http://thx.github.io/RAP/study.html)
+* [Issues 反馈问题](http://github.com/thx/RAP/issues)
-什么是RAP?
---------------------------------------
+RAP can help web engineers create interface doc efficiently, and generate mock data, validate real request by analyzing interface data. With structured API data, RAP can do more while we can do less.
-在前后端分离的开发模式下,我们通常需要定义一份`接口文档`来规范接口的具体信息。如一个请求的地址、有几个参数、参数名称及类型含义等等。`RAP` 首先方便团队录入、查看和管理这些接口文档,并通过分析结构化的文档数据,重复利用并生成自测数据、提供自测控制台等等... 大幅度提升开发效率。
+RAP可帮助WEB工程师高效建立接口文档,并生成Mock数据、校验真实接口。通过结构化的API数据,RAP可以做的更多,我们可以做的更少。
+
+ 一直被抄袭,从未被超越... 2010年到现在良心制作,绝对不是KPI的悲剧产物...
+
+* 新浪微博:[@Bosn](http://weibo.com/bosn)
+* 技术支持:582755829 (旺旺群)
+
+## About 关于
-- [文档中心](http://thx.alibaba-inc.com/RAP/)
+ @version v0.11.2 (Apr. 28 2015 updated)
+ @author @bosn @wangjeaf
+ @director @limu @xinglie
+ @dependency MockJS(@nuysoft)
+ @contact bosn@outlook.com, wangjeaf@gmail.com
+
+## Contributors List 贡献者
+
+`@nunnly`, `@xinglie`
diff --git a/WebContent/WEB-INF/lib/codehaus.jackson.core-1.5.4.jar b/WebContent/WEB-INF/lib/codehaus.jackson.core-1.5.4.jar
new file mode 100644
index 000000000..61c72dce6
Binary files /dev/null and b/WebContent/WEB-INF/lib/codehaus.jackson.core-1.5.4.jar differ
diff --git a/WebContent/WEB-INF/lib/codehaus.jackson.mapper-1.5.4.jar b/WebContent/WEB-INF/lib/codehaus.jackson.mapper-1.5.4.jar
new file mode 100644
index 000000000..3bc7833b1
Binary files /dev/null and b/WebContent/WEB-INF/lib/codehaus.jackson.mapper-1.5.4.jar differ
diff --git a/WebContent/WEB-INF/lib/commons-codec-1.6.jar b/WebContent/WEB-INF/lib/commons-codec-1.6.jar
new file mode 100644
index 000000000..ee1bc49ac
Binary files /dev/null and b/WebContent/WEB-INF/lib/commons-codec-1.6.jar differ
diff --git a/WebContent/WEB-INF/lib/commons-logging-1.1.3.jar b/WebContent/WEB-INF/lib/commons-logging-1.1.3.jar
new file mode 100644
index 000000000..ab5125407
Binary files /dev/null and b/WebContent/WEB-INF/lib/commons-logging-1.1.3.jar differ
diff --git a/WebContent/WEB-INF/lib/fluent-hc-4.3.3.jar b/WebContent/WEB-INF/lib/fluent-hc-4.3.3.jar
new file mode 100644
index 000000000..609769160
Binary files /dev/null and b/WebContent/WEB-INF/lib/fluent-hc-4.3.3.jar differ
diff --git a/WebContent/WEB-INF/lib/httpclient-4.3.3.jar b/WebContent/WEB-INF/lib/httpclient-4.3.3.jar
new file mode 100644
index 000000000..6c46bffe4
Binary files /dev/null and b/WebContent/WEB-INF/lib/httpclient-4.3.3.jar differ
diff --git a/WebContent/WEB-INF/lib/httpclient-cache-4.3.3.jar b/WebContent/WEB-INF/lib/httpclient-cache-4.3.3.jar
new file mode 100644
index 000000000..082430d21
Binary files /dev/null and b/WebContent/WEB-INF/lib/httpclient-cache-4.3.3.jar differ
diff --git a/WebContent/WEB-INF/lib/httpcore-4.3.2.jar b/WebContent/WEB-INF/lib/httpcore-4.3.2.jar
new file mode 100644
index 000000000..813ec2348
Binary files /dev/null and b/WebContent/WEB-INF/lib/httpcore-4.3.2.jar differ
diff --git a/WebContent/WEB-INF/lib/httpmime-4.3.3.jar b/WebContent/WEB-INF/lib/httpmime-4.3.3.jar
new file mode 100644
index 000000000..f2b1cf7c8
Binary files /dev/null and b/WebContent/WEB-INF/lib/httpmime-4.3.3.jar differ
diff --git a/WebContent/WEB-INF/lib/jakarta.commons.lang-2.4.jar b/WebContent/WEB-INF/lib/jakarta.commons.lang-2.4.jar
new file mode 100644
index 000000000..532939eca
Binary files /dev/null and b/WebContent/WEB-INF/lib/jakarta.commons.lang-2.4.jar differ
diff --git a/WebContent/WEB-INF/lib/log4j-1.2.15.jar b/WebContent/WEB-INF/lib/jakarta.log4j-1.2.15.jar
similarity index 100%
rename from WebContent/WEB-INF/lib/log4j-1.2.15.jar
rename to WebContent/WEB-INF/lib/jakarta.log4j-1.2.15.jar
diff --git a/WebContent/WEB-INF/lib/javax.mail.jar b/WebContent/WEB-INF/lib/javax.mail.jar
new file mode 100644
index 000000000..ca7eca7d9
Binary files /dev/null and b/WebContent/WEB-INF/lib/javax.mail.jar differ
diff --git a/WebContent/WEB-INF/lib/log4j-api-2.0.2.jar b/WebContent/WEB-INF/lib/log4j-api-2.0.2.jar
new file mode 100644
index 000000000..35a9a5b60
Binary files /dev/null and b/WebContent/WEB-INF/lib/log4j-api-2.0.2.jar differ
diff --git a/WebContent/WEB-INF/lib/log4j-core-2.0.2.jar b/WebContent/WEB-INF/lib/log4j-core-2.0.2.jar
new file mode 100644
index 000000000..6588c3155
Binary files /dev/null and b/WebContent/WEB-INF/lib/log4j-core-2.0.2.jar differ
diff --git a/WebContent/WEB-INF/lib/mail.jar b/WebContent/WEB-INF/lib/mail.jar
deleted file mode 100644
index aa357d4b9..000000000
Binary files a/WebContent/WEB-INF/lib/mail.jar and /dev/null differ
diff --git a/WebContent/WEB-INF/lib/org.slf4j.slf4j-api-1.5.6.jar b/WebContent/WEB-INF/lib/org.slf4j.slf4j-api-1.5.6.jar
new file mode 100644
index 000000000..9b4221694
Binary files /dev/null and b/WebContent/WEB-INF/lib/org.slf4j.slf4j-api-1.5.6.jar differ
diff --git a/WebContent/WEB-INF/lib/org.slf4j.slf4j-log4j12-1.5.6.jar b/WebContent/WEB-INF/lib/org.slf4j.slf4j-log4j12-1.5.6.jar
new file mode 100644
index 000000000..0c40e9c8b
Binary files /dev/null and b/WebContent/WEB-INF/lib/org.slf4j.slf4j-log4j12-1.5.6.jar differ
diff --git a/WebContent/WEB-INF/lib/pinyin4j-2.5.0.jar b/WebContent/WEB-INF/lib/pinyin4j-2.5.0.jar
new file mode 100644
index 000000000..e8ede137a
Binary files /dev/null and b/WebContent/WEB-INF/lib/pinyin4j-2.5.0.jar differ
diff --git a/WebContent/WEB-INF/lib/prettytime-3.2.3.Final.jar b/WebContent/WEB-INF/lib/prettytime-3.2.3.Final.jar
new file mode 100644
index 000000000..55a84c387
Binary files /dev/null and b/WebContent/WEB-INF/lib/prettytime-3.2.3.Final.jar differ
diff --git a/WebContent/WEB-INF/toolbox.xml b/WebContent/WEB-INF/toolbox.xml
index 92fe92234..fe6d4c7de 100644
--- a/WebContent/WEB-INF/toolbox.xml
+++ b/WebContent/WEB-INF/toolbox.xml
@@ -1,17 +1,27 @@
-
-| 用户名: | $!curUser.account | @@ -71,19 +72,19 @@上次登录: | $!curUser.lastLoginDateStr | |||||||||||||||||||||||||
|
diff --git a/WebContent/account/mySetting.vm b/WebContent/account/mySetting.vm
new file mode 100644
index 000000000..9b931ee9f
--- /dev/null
+++ b/WebContent/account/mySetting.vm
@@ -0,0 +1,150 @@
+
+#parse('/tcom/template.rap.vm')
+
+
+
+
+
+
+ #bodyEnd
+
+
diff --git a/WebContent/account/register.vm b/WebContent/account/register.vm
index 3677b4351..d4ae4f19c 100644
--- a/WebContent/account/register.vm
+++ b/WebContent/account/register.vm
@@ -1,45 +1,46 @@
-
+
#parse('/tcom/template.rap.vm')
-
-
- 不要鸡冻,这个功能还木有做完,霍雍和思竹吃饭饭去了
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- #bodyEnd
-
+
+
+
-
-
-
- 用户名:
-
-
-
- 密码:
-
-
-
- 确认密码:
-
-
-
- Email:
-
-
-
- 名字:
-
-
-
-
-
-
- $!errMsg
-
+
+ #bodyEnd
+
diff --git a/WebContent/bcom/contentWithoutEscape.cb.vm b/WebContent/bcom/contentWithoutEscape.cb.vm
index 39013f8ac..2044ad03d 100644
--- a/WebContent/bcom/contentWithoutEscape.cb.vm
+++ b/WebContent/bcom/contentWithoutEscape.cb.vm
@@ -1 +1 @@
-$!content
\ No newline at end of file
+$!content
\ No newline at end of file
diff --git a/WebContent/common/redirect.vm b/WebContent/common/redirect.vm
index 64e7e0e81..d85883540 100644
--- a/WebContent/common/redirect.vm
+++ b/WebContent/common/redirect.vm
@@ -1,4 +1,4 @@
-
+
diff --git a/WebContent/demo/a.js b/WebContent/demo/a.js
new file mode 100644
index 000000000..0e11d983e
--- /dev/null
+++ b/WebContent/demo/a.js
@@ -0,0 +1,13 @@
+define(function(require, exports, module) {
+ var $ = require('jquery');
+ exports.go = function() {
+ $.ajax({
+ url : 'data.json',
+ dataType : 'json',
+ type : 'get',
+ success : function(data) {
+ $('body').html(JSON.stringify(data, null, 4));
+ }
+ });
+ }
+})
\ No newline at end of file
diff --git a/WebContent/demo/mock.plugin/casebox/case1_seajs_jquery_preload.html b/WebContent/demo/mock.plugin/casebox/case1_seajs_jquery_preload.html
new file mode 100644
index 000000000..c6f548e8a
--- /dev/null
+++ b/WebContent/demo/mock.plugin/casebox/case1_seajs_jquery_preload.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+ 用户名:
+
+
+
+ 密码:
+
+
+
+ 确认密码:
+
+
+
+ Email:
+
+
+
+ 名字:
+
+
+
+
+
+
+ + #if($errMsg)$errMsg#else 用户名已存在,或其它错误。 #end
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebContent/demo/mock.plugin/index.htm b/WebContent/demo/mock.plugin/index.htm
index 8deba87b9..b2c54b501 100644
--- a/WebContent/demo/mock.plugin/index.htm
+++ b/WebContent/demo/mock.plugin/index.htm
@@ -6,17 +6,17 @@
-
+
diff --git a/WebContent/demo/seajs-plugin.html b/WebContent/demo/seajs-plugin.html
new file mode 100644
index 000000000..88296830a
--- /dev/null
+++ b/WebContent/demo/seajs-plugin.html
@@ -0,0 +1,24 @@
+
+
+
+
++ RAP plugin case1: seajs jquery preload issue. + +LOG: + +
-
- ERROR+RAP出错啦!
+
-
#if($errMsg)$errMsg
- #else
+ #else
当你不幸走入该页面时,说明系统出现了不可处理的错误,或您进行了比较BT的操作导致系统不能处理,相关信息我们已经记录,并且会尽快解决,当然,也欢迎您联系平台的维护人员,谢谢哟。 T.T
#end
diff --git a/WebContent/index.htm b/WebContent/index.htm
index 8075d7ed8..f08f2e4c5 100644
--- a/WebContent/index.htm
+++ b/WebContent/index.htm
@@ -1,4 +1,4 @@
-
+
diff --git a/WebContent/mock/createPluginScript.vm b/WebContent/mock/createPluginScript.vm
index c7e749752..04f399245 100644
--- a/WebContent/mock/createPluginScript.vm
+++ b/WebContent/mock/createPluginScript.vm
@@ -1,3 +1,4 @@
+#include('/stat/js/util/console-compability.js')
#include('/stat/js/util/structureValidator.js')
#include('/stat/js/util/mock-min.js')
#parse('/stat/js/util/mock.plugin.js')
\ No newline at end of file
diff --git a/WebContent/mock/dist/mock-min.map b/WebContent/mock/dist/mock-min.map
new file mode 100644
index 000000000..95a2f6069
--- /dev/null
+++ b/WebContent/mock/dist/mock-min.map
@@ -0,0 +1 @@
+{"version":3,"file":"dist/mock-min.js","sources":["dist/mock.js"],"names":["undefined","find","options","match","expected","actual","Util","type","test","sUrlType","Mock","_mocked","item","rurl","url","rtype","toLowerCase","convert","isFunction","template","mock","version","extend","name","src","copy","clone","target","arguments","i","length","this","isArray","isObject","each","obj","iterator","context","key","call","String","Object","prototype","toString","split","value","isObjectOrArray","isNumeric","isNaN","parseFloat","isFinite","keys","hasOwnProperty","push","values","heredoc","fn","replace","noop","Random","boolean","min","max","cur","parseInt","Math","random","bool","natural","round","integer","int","float","dmin","dmax","ret","dcount","character","pool","pools","lower","upper","number","symbol","alpha","charAt","char","string","text","str","range","start","stop","step","len","ceil","idx","Array","patternLetters","yyyy","yy","date","getFullYear","slice","y","MM","m","getMonth","M","dd","d","getDate","HH","h","getHours","H","hh","mm","getMinutes","ss","s","getSeconds","SS","ms","getMilliseconds","S","A","a","T","rformat","RegExp","re","join","format","$0","flag","callee","randomDate","Date","getTime","time","datetime","now","unit","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getDay","ad_size","screen_size","video_size","image","size","background","foreground","pick","indexOf","img","apply","brandColors","4ormat","500px","About.me (blue)","About.me (yellow)","Addvocate","Adobe","Aim","Amazon","Android","Angie's List","AOL","Atlassian","Behance","Big Cartel","bitly","Blogger","Boeing","Booking.com","Carbonmade","Cheddar","Code School","Delicious","Dell","Designmoo","Deviantart","Designer News","Devour","DEWALT","Disqus (blue)","Disqus (orange)","Dribbble","Dropbox","Drupal","Dunked","eBay","Ember","Engadget","Envato","Etsy","Evernote","Fab.com","Facebook","Firefox","Flickr (blue)","Flickr (pink)","Forrst","Foursquare","Garmin","GetGlue","Gimmebar","GitHub","Google Blue","Google Green","Google Red","Google Yellow","Google+","Grooveshark","Groupon","Hacker News","HelloWallet","Heroku (light)","Heroku (dark)","HootSuite","Houzz","HTML5","IKEA","IMDb","Instagram","Intel","Intuit","Kickstarter","kippt","Kodery","LastFM","LinkedIn","Livestream","Lumo","Mixpanel","Meetup","Nokia","NVIDIA","Opera","Path","PayPal (dark)","PayPal (light)","Pinboard","Pinterest","PlayStation","Pocket","Prezi","Pusha","Quora","QUOTE.fm","Rdio","Readability","Red Hat","Resource","Rockpack","Roon","RSS","Salesforce","Samsung","Shopify","Skype","Snagajob","Softonic","SoundCloud","Space Box","Spotify","Sprint","Squarespace","StackOverflow","Staples","Status Chart","Stripe","StudyBlue","StumbleUpon","T-Mobile","Technorati","The Next Web","Treehouse","Trulia","Tumblr","Twitch.tv","Twitter","TYPO3","Ubuntu","Ustream","Verizon","Vimeo","Vine","Virb","Virgin Media","Wooga","WordPress (blue)","WordPress (orange)","WordPress (grey)","Wunderlist","XBOX","XING","Yahoo!","Yandex","Yelp","YouTube","Zalongo","Zendesk","Zerply","Zootool","brands","b","dataImage","canvas","document","createElement","ctx","getContext","width","height","text_height","font","textAlign","textBaseline","fillStyle","fillRect","fillText","toDataURL","color","colour","floor","capitalize","word","toUpperCase","substr","arr","shuffle","old","result","index","splice","paragraph","sentence","title","first","names","concat","last","middle","domain","tld","email","ip","tlds","areas","area","regions","region","address","city","phone","areacode","street","street_suffixes","street_suffix","states","state","zip","todo","d4","d6","d8","d12","d20","d100","guid","id","sum","rank","autoIncrementInteger","increment","inc","rkey","rrange","rplaceholder","Handle","gen","rule","parameters","count","decimal","point","path","templatePath","currentContext","templateCurrentContext","root","templateRoot","parsedName","array","j","pop","object","fnKeys","parsedKey","parts","placeholders","ph","phed","placeholder","function","_all","templateContext","exec","lkey","okey","params","eval","error","handle","mockjax","jQuery","mockxhr","readyState","status","statusText","open","send","onload","setRequestHeader","getAllResponseHeaders","getResponseHeader","statusCode","abort","prefilter","originalOptions","dataFilter","converters","xhr","dataType","ajaxPrefilter","Zepto","__original_ajax","ajax","responseText","responseXML","timeoutTimer","data","success","complete","KISSY","add","_original_ajax","io","module","exports","define","amd","cmd","requires","Mock4Tpl","tpl","input","helpers","partials","parse","Handlebars","debug","node","isString","ast","parseOptions","__path","console","log","group","JSON","stringify","preLength","groupEnd","ma","option","rComment","comments","lastIndex","Function","val","def","Error","mocked","program","statements","mustache","contextLength","unshift","isHelper","hash","block","inverse","Helpers","custom","shift","pair","pairs","ID","prev","valType","preOptions","depth","partial","partialName","content","PARTIAL_NAME","DATA","STRING","INTEGER","BOOLEAN","comment","unless","XTemplate","Mock4XTpl","use","xtpl","xparse","compiler","RunTime","commands","subTpls","other","hold","parseVal","expr","queryArray","prop","query","queryObject","set","if","with","_","__","___","include","tplExpression","expression","unaryExpression","multiplicativeExpression","additiveExpression","op1","op2","pow","relationalExpression","equalityExpression","conditionalAndExpression","conditionalOrExpression","fix"],"mappings":"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"}
\ No newline at end of file
diff --git a/WebContent/org/group/index.css b/WebContent/org/group/index.css
index 72f366b69..67842e42d 100644
--- a/WebContent/org/group/index.css
+++ b/WebContent/org/group/index.css
@@ -85,28 +85,6 @@
overflow: hidden;
}
-@-webkit-keyframes spaceboots {
- 0% { -webkit-transform: translate(2px, 1px) rotate(0deg); }
- 10% { -webkit-transform: translate(-1px, -2px) rotate(-1deg); }
- 20% { -webkit-transform: translate(-3px, 0px) rotate(1deg); }
- 30% { -webkit-transform: translate(0px, 2px) rotate(0deg); }
- 40% { -webkit-transform: translate(1px, -1px) rotate(1deg); }
- 50% { -webkit-transform: translate(-1px, 2px) rotate(-1deg); }
- 60% { -webkit-transform: translate(-3px, 1px) rotate(0deg); }
- 70% { -webkit-transform: translate(2px, 1px) rotate(-1deg); }
- 80% { -webkit-transform: translate(-1px, -1px) rotate(1deg); }
- 90% { -webkit-transform: translate(2px, 2px) rotate(0deg); }
- 100% { -webkit-transform: translate(1px, -2px) rotate(-1deg); }
-}
-.shake {
- -webkit-animation-name: spaceboots;
- -webkit-animation-duration: 0.8s;
- -webkit-transform-origin:50% 50%;
- -webkit-animation-iteration-count: 2;
- -webkit-animation-timing-function: linear;
- display:inline-block
-}
-
.groups-con .groups .group .box .status {
position: absolute;
bottom: 0;
@@ -237,32 +215,11 @@
.project-target .productline {width: 30%; float: left; margin-left: 10px;}
.project-target .group {width: 30%; float: left; margin-left: 10px;}
-.project-autocomplete-con {
- width: 400px; font-size: 14px; position: absolute; left: 0; top: 35px; background-color: #FFF; border: 1px solid #CCC; z-index: 1000
-}
-.project-autocomplete-con ul {
- margin-bottom: 0;
-}
-.project-autocomplete-con li {
- cursor: pointer; padding: 6px 11px; line-height: 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
-}
-.project-autocomplete-con li:nth-child(odd) {
- background-color: #F9F9F9;
-}
-.project-autocomplete-con li:hover, .project-autocomplete-con li.active {
- background-color: #F2F2F2;
-}
-.search-project-con {
- width: 400px; display: inline-block; margin-left: 20px; position: relative;
-}
-
-.search-project-con .glyphicon-search {
- position: absolute;
- font-size: 14px;
- right: 8px;
- top: 10px;
- color: #CCC;
-}
-.project-search-inputer {
- padding-right: 25px;
+.groups .status .creator {
+ position: absolute;
+ font-size: 12px;
+ color: #FFF;
+ text-shadow: 0 0 2px rgba(0,0,0,.4);
+ right: 2px;
+ bottom: 0;
}
\ No newline at end of file
diff --git a/WebContent/org/group/index.js b/WebContent/org/group/index.js
index f9abdc7ac..5d4bbc945 100644
--- a/WebContent/org/group/index.js
+++ b/WebContent/org/group/index.js
@@ -114,74 +114,79 @@ $(function() {
})
}
}
- getUsers(function(users) {
- $.confirm({
- content: $.render($('#create-proj-tmpl').text(), {
- name: name,
- desc: desc,
- users: pickeds
- }),
- title: '修改项目',
- confirmText: '确认修改',
- showCallback: function() {
- var that = this;
- $(this).find('input[type=text]').focus();
- $(this).find('.picking-user').delegate('.unpick-btn', 'click', function() {
- $(this).parent('.picked-user').remove();
- });
- $(this).find('.accounts-inputer').keyup(function() {
+ $.confirm({
+ content: $.render($('#create-proj-tmpl').text(), {
+ name: name ? name.replace(/"/g, "") : "",
+ desc: desc,
+ users: pickeds
+ }),
+ title: '修改项目',
+ confirmText: '确认修改',
+ showCallback: function() {
+ var that = this;
+ $(this).find('input[type=text]').focus();
+ $(this).find('.picking-user').delegate('.unpick-btn', 'click', function() {
+ $(this).parent('.picked-user').remove();
+ });
+
+ getUsers(function(users) {
+ $('.user-loading').hide();
+ $(that).find('.accounts-inputer').keyup(function() {
$.autocomplete(that, users);
}).focus(function() {
$.autocomplete(that, users);
});
- },
- confirmClicked: function() {
- var inputer = $(this).find('input[type=text]');
- if (inputer.val().trim() == '') {
- inputer.addClass('shake');
- inputer.focus();
- setTimeout(function() {
- inputer && inputer.removeClass('shake');
- }, 1000);
+ });
+ },
+ confirmClicked: function() {
+ var inputer = $(this).find('input[type=text]');
+ if (inputer.val().trim() == '') {
+ inputer.addClass('shake');
+ inputer.focus();
+ setTimeout(function() {
+ inputer && inputer.removeClass('shake');
+ }, 1000);
+ return;
+ }
+ var tmpl = $('#create-proj-success-tmpl').text();
+ var modal = $(this);
+ var accounts = $(this).find('.picked-user');
+ var values = [];
+ for(var i = 0, l = accounts.length; i < l; i++) {
+ var current = $(accounts[i]);
+ values.push(current.data('account') + '(' + current.data('name') + ')')
+ }
+ $.post($.route('org.project.update'), {
+ id: id,
+ name: inputer.val(),
+ desc: $(this).find('textarea.desc').val(),
+ accounts: values.join(', ')
+ }, function(data) {
+ if (data.code != '200') {
+ modal.modal('hide');
+ alert(data.msg);
return;
}
- var tmpl = $('#create-proj-success-tmpl').text();
- var modal = $(this);
- var accounts = $(this).find('.picked-user');
- var values = [];
- for(var i = 0, l = accounts.length; i < l; i++) {
- var current = $(accounts[i]);
- values.push(current.data('account') + '(' + current.data('name') + ')')
- }
- $.post($.route('org.project.update'), {
- id: id,
- name: inputer.val(),
- desc: $(this).find('textarea.desc').val(),
- accounts: values.join(', ')
- }, function(data) {
- if (data.code != '200') {
- modal.modal('hide');
- alert(data.msg);
- return;
- }
- var data = data.result;
- data.status = data.status || '刚刚更新';
- var html = $.render(tmpl, data);
- box.replaceWith(html);
- modal.modal('hide');
- }, "JSON")
- }
- });
+ var data = data.result;
+ data.status = data.status || '刚刚更新';
+ var html = $.render(tmpl, data);
+ box.replaceWith(html);
+ modal.modal('hide');
+ }, "JSON")
+ }
});
})
.delegate('.box .glyphicon-export', 'click', function() {
var id = $(this).data('id');
var url = '';
+ var host = location && location.host ? location.host : '/';
$.message({
- content: '',
+ content: '',
title: '复制RAP插件地址',
showCallback: function() {
- $('#rap-plugin-inputer').focus();
+ var ele = $('#rap-plugin-inputer')[0];
+ ele.focus();
+ ele.selectionEnd = ele.value.length;
}
});
})
@@ -212,55 +217,56 @@ $(function() {
.delegate('.box-to-add', 'click', function() {
var that = this;
var groupId = $(this).data('groupid');
- getUsers(function(users) {
- $.confirm({
- content: $.render($('#create-proj-tmpl').text(), {}),
- title: '创建项目',
- confirmText: '确认创建',
- showCallback: function() {
- var that = this;
- $(this).find('input[type=text]').focus();
- $(this).find('.picking-user').delegate('.unpick-btn', 'click', function() {
- $(this).parent('.picked-user').remove();
- });
- $(this).find('.accounts-inputer').keyup(function() {
+ $.confirm({
+ content: $.render($('#create-proj-tmpl').text(), {}),
+ title: '创建项目',
+ confirmText: '确认创建',
+ showCallback: function() {
+ var that = this;
+ $(this).find('input[type=text]').focus();
+ $(this).find('.picking-user').delegate('.unpick-btn', 'click', function() {
+ $(this).parent('.picked-user').remove();
+ });
+ getUsers(function(users) {
+ $('.user-loading').hide();
+ $(that).find('.accounts-inputer').keyup(function() {
$.autocomplete(that, users);
}).focus(function() {
$.autocomplete(that, users);
});
- },
- confirmClicked: function() {
- var inputer = $(this).find('input[type=text]');
- if (inputer.val().trim() == '') {
- inputer.addClass('shake');
- inputer.focus();
- setTimeout(function() {
- inputer && inputer.removeClass('shake');
- }, 1000);
- return;
- }
- var tmpl = $('#create-proj-success-tmpl').text();
- var modal = $(this);
- var accounts = $(this).find('.picked-user');
- var values = [];
- for(var i = 0, l = accounts.length; i < l; i++) {
- var current = $(accounts[i]);
- values.push(current.data('account') + '(' + current.data('name') + ')')
- }
- $.post($.route('org.project.create'), {
- groupId: groupId,
- name: inputer.val(),
- desc: $(this).find('textarea.desc').val(),
- accounts: values.join(', ')
- }, function(data) {
- var data = data.result;
- data.status = data.status || '刚刚创建';
- var html = $.render(tmpl, data);
- $(that).before(html);
- modal.modal('hide');
- }, "JSON")
+ });
+ },
+ confirmClicked: function() {
+ var inputer = $(this).find('input[type=text]');
+ if (inputer.val().trim() == '') {
+ inputer.addClass('shake');
+ inputer.focus();
+ setTimeout(function() {
+ inputer && inputer.removeClass('shake');
+ }, 1000);
+ return;
}
- });
+ var tmpl = $('#create-proj-success-tmpl').text();
+ var modal = $(this);
+ var accounts = $(this).find('.picked-user');
+ var values = [];
+ for(var i = 0, l = accounts.length; i < l; i++) {
+ var current = $(accounts[i]);
+ values.push(current.data('account') + '(' + current.data('name') + ')')
+ }
+ $.post($.route('org.project.create'), {
+ groupId: groupId,
+ name: inputer.val(),
+ desc: $(this).find('textarea.desc').val(),
+ accounts: values.join(', ')
+ }, function(data) {
+ var data = data.result;
+ data.status = data.status || '刚刚创建';
+ var html = $.render(tmpl, data);
+ $(that).before(html);
+ modal.modal('hide');
+ }, "JSON")
+ }
});
})
.delegate('.save-update-group', 'click', function() {
diff --git a/WebContent/org/group/index.vm b/WebContent/org/group/index.vm
index 296c57f67..21a5ce6d9 100644
--- a/WebContent/org/group/index.vm
+++ b/WebContent/org/group/index.vm
@@ -1,9 +1,10 @@
-
+
#parse('/tcom/template.rap.vm')
{{name}}
{{desc}}
{{status}}
+ {{status}}@{{creator.name}}
{{#important}}
{{/important}}
@@ -66,9 +67,10 @@
{{name}}
{{desc}}
{{status}}
+ {{status}}@{{creator.name}}
+
@@ -91,13 +93,13 @@
-
+
-
+
@@ -107,6 +109,7 @@
{{account}} ({{name}})×
{{/users}}
+ 项目成员列表加载中,请稍候~
diff --git a/WebContent/org/home/index.js b/WebContent/org/home/index.js
index f29c93949..e6a2130ed 100644
--- a/WebContent/org/home/index.js
+++ b/WebContent/org/home/index.js
@@ -4,12 +4,17 @@ $(function() {
// console.log(data.isOk);
//}, 'JSON');
+ if (!-[1,]) { // IE 6-8
+ $('#browserCheckAlert').show();
+ }
+
var NAME_MAP = {
'user': '我的项目',
'star': '重要项目',
- 'heart': '我关注的项目'
+ 'heart': '我关注的项目',
+ 'tag': '我加入的项目'
};
-
+
var PL_ID = null;
var CORP_ID = null;
function getUsers(callback) {
@@ -23,69 +28,69 @@ $(function() {
callback(users);
}, "JSON");
}
-
+
function handleAddClick() {
- var that = this;
- var btn = $(this);
- if (btn.data('shown')) {
- return;
- }
- btn.data('shown', 1);
+ var that = this;
+ var btn = $(this);
+ if (btn.data('shown')) {
+ return;
+ }
+ btn.data('shown', 1);
var groupId = $(this).data('groupid');
-
+
$.confirm({
content: $.render($('#create-proj-tmpl').text(), {}),
title: '创建项目',
confirmText: '确认创建',
cancelCallback: function() {
- btn.data('shown', 0);
+ btn.data('shown', 0);
},
showCallback: function() {
- btn.data('shown', 0);
+ btn.data('shown', 0);
var that = this;
$(this).find('input[type=text]').focus();
$(this).find('.picking-user').delegate('.unpick-btn', 'click', function() {
$(this).parent('.picked-user').remove();
});
-
+ $('.tip').tooltip();
$('.project-target .team').change(function() {
var corpId = $(this).val();
if (corpId === '') {
- CORP_ID = '';
- $('.create-new-entity-container').html('');
+ CORP_ID = '';
+ $('.create-new-entity-container').html('');
return;
}
var text = $(this).find('[value=' + corpId + ']').text();
-
+
fillSelectAsync('org.productline.all', {
corpId: corpId
}, $('#option-list-tmpl').text(), '.project-target .productline', function() {
- showCreateProductlineBtn(corpId, text);
+ showCreateProductlineBtn(corpId, text);
});
});
-
+
$('.project-target .productline').change(function() {
var plId = $(this).val();
if (!plId) {
- PL_ID = '';
- $('.create-new-entity-container').html('');
+ PL_ID = '';
+ $('.create-new-entity-container').html('');
return;
}
var text = $(this).find('[value=' + plId + ']').text();
- fillSelectAsync('org.group.all', {
+ fillSelectAsync('org.home.grouplist', {
productLineId: plId
}, $('#option-list-tmpl').text(), '.project-target .group', function() {
- showCreateGroupBtn(plId, text);
+ showCreateGroupBtn(plId, text);
});
});
-
+
getUsers(function(users) {
- $('.user-loading').hide();
- $(that).find('.accounts-inputer').keyup(function() {
- $.autocomplete(that, users);
- }).focus(function() {
- $.autocomplete(that, users);
- });
+ $('.user-loading').hide();
+ $(that).find('.accounts-inputer').keyup(function() {
+ $.autocomplete(that, users);
+ }).focus(function() {
+ $.autocomplete(that, users);
+ });
});
},
confirmClicked: function() {
@@ -133,16 +138,16 @@ $(function() {
}
});
}
-
+
function handleViewProjectClick() {
- var box = $(this);
+ var box = $(this);
box = box.parents('.box');
var projId = box.data('projid');
- window.open($.route('workspace.mine') + '?projectId=' + projId);
+ window.location = ($.route('workspace.mine') + '?projectId=' + projId);
}
-
+
function handleEditProjectClick() {
- var id = $(this).data('id');
+ var id = $(this).data('id');
var box = $(this).parents('.box');
var name = box.find('.info .title').html();
var desc = box.find('.info .intro').html();
@@ -161,7 +166,7 @@ $(function() {
}
$.confirm({
content: $.render($('#update-proj-tmpl').text(), {
- name: name,
+ name: name ? name.replace(/"/g, "") : "",
desc: desc,
users: pickeds
}),
@@ -173,14 +178,14 @@ $(function() {
$(this).find('.picking-user').delegate('.unpick-btn', 'click', function() {
$(this).parent('.picked-user').remove();
});
-
+ $('.tip').tooltip();
getUsers(function(users) {
- $('.user-loading').hide();
- $(that).find('.accounts-inputer').keyup(function() {
- $.autocomplete(that, users);
- }).focus(function() {
- $.autocomplete(that, users);
- });
+ $('.user-loading').hide();
+ $(that).find('.accounts-inputer').keyup(function() {
+ $.autocomplete(that, users);
+ }).focus(function() {
+ $.autocomplete(that, users);
+ });
});
},
confirmClicked: function() {
@@ -221,125 +226,128 @@ $(function() {
}
});
}
-
+
function handleRapPluginClick() {
- var id = $(this).data('id');
- var url = '';
- $.message({
- content: '',
+ var id = $(this).data('id');
+ var url = '';
+ var host = location && location.host ? location.host : '/';
+ $.message({
+ content: '',
title: '复制RAP插件地址',
showCallback: function() {
- $('#rap-plugin-inputer').focus();
+ var ele = $('#rap-plugin-inputer')[0];
+ ele.focus();
+ ele.selectionEnd = ele.value.length;
}
- });
+ });
}
-
+
function handleCreateProductline() {
- $.confirm({
- content: $.render($('#create-productline').text(), {}),
- title: '添加产品线',
- confirmText: '确定',
- showCallback: function() {
- $(this).find('input[type=text]').focus();
- },
- confirmClicked: function() {
- var inputer = $(this).find('input[type=text]');
- if (inputer.val().trim() == '') {
- inputer.addClass('shake');
- inputer.focus();
- setTimeout(function() {
- inputer && inputer.removeClass('shake');
- }, 1000);
- return;
- }
- var modal = $(this);
- var value = inputer.val().trim();
- $.post($.route('org.productline.create'), {
- corpId: CORP_ID,
- name: value
- }, function(data) {
- var productlines = data.items;
- if (!productlines) {
- alert('创建失败,请稍后再试');
- return;
- }
- var pl = productlines[0];
- showCreateGroupBtn(pl.id, pl.name)
- resetGroupSelect();
- var select = appendOptions('.project-target .productline', pl.id, pl.name);
- setTimeout(function() {
- select.find('[value=""]').text('--请选择--');
- select.val(pl.id);
- }, 100);
- modal.modal('hide');
- }, "JSON")
- }
- });
+ $.confirm({
+ content: $.render($('#create-productline').text(), {}),
+ title: '添加产品线',
+ confirmText: '确定',
+ showCallback: function() {
+ $(this).find('input[type=text]').focus();
+ },
+ confirmClicked: function() {
+ var inputer = $(this).find('input[type=text]');
+ if (inputer.val().trim() === '') {
+ inputer.addClass('shake');
+ inputer.focus();
+ setTimeout(function() {
+ inputer && inputer.removeClass('shake');
+ }, 1000);
+ return;
+ }
+ var modal = $(this);
+ var value = inputer.val().trim();
+ $.post($.route('org.productline.create'), {
+ corpId: CORP_ID,
+ name: value
+ }, function(data) {
+ var productlines = data.items;
+ if (!productlines) {
+ alert('创建失败,请稍后再试');
+ return;
+ }
+ var pl = productlines[0];
+ showCreateGroupBtn(pl.id, pl.name);
+ resetGroupSelect();
+ var select = appendOptions('.project-target .productline', pl.id, pl.name);
+ setTimeout(function() {
+ select.find('[value=""]').text('--请选择--');
+ select.val(pl.id);
+ }, 100);
+ modal.modal('hide');
+ }, "JSON");
+ }
+ });
}
-
+
function appendOptions(selector, value, text) {
- return $(selector).append('')
+ return $(selector).append('');
}
-
+
function showCreateGroupBtn(id, name) {
- PL_ID = id;
- $('.create-new-entity-container').hide().html(
- '为 “' + name + '” 产品线创建新分组 ').slideDown();
+ PL_ID = id;
+ $('.create-new-entity-container').hide().html(
+ '为 “' + name + '” 产品线创建新分组 ').slideDown();
}
-
+
function showCreateProductlineBtn(id, name) {
- CORP_ID = id;
- $('.create-new-entity-container').hide().html(
- '为 “' + name + '” 创建新产品线 ').slideDown();
+ CORP_ID = id;
+ $('.create-new-entity-container').hide().html(
+ '为 “' + name + '” 创建新产品线 ').slideDown();
}
-
+
function resetGroupSelect() {
- $('.project-target .group').html('')
+ $('.project-target .group').html('');
}
-
+
function handleCreateGroup() {
- $.confirm({
- content: $('#create-group-tmpl').text(),
- title: '创建分组',
- confirmText: '确认创建',
- showCallback: function() {
- $(this).find('input[type=text]').focus();
- },
- confirmClicked: function() {
- var tmpl = $('#group-tmpl').text();
- var inputer = $(this).find('input[type=text]');
- if (inputer.val().trim() == '') {
- inputer.addClass('shake');
- inputer.focus();
- setTimeout(function() {
- inputer && inputer.removeClass('shake');
- }, 1000);
- return;
- }
- var modal = $(this);
- $.post($.route('org.group.create'), {
- productLineId: PL_ID,
- name: inputer.val().trim()
- }, function(data) {
- var groups = data.groups;
- if (!groups) {
- alert('创建失败,请稍后再试');
- return;
- }
- var group = groups[0];
- var select = $('.project-target .group').append('');
- setTimeout(function() {
- select.find('[value=""]').text('--请选择--');
- select.val(group.id);
- }, 100);
- modal.modal('hide');
- }, "JSON")
- }
- });
+ $.confirm({
+ content: $('#create-group-tmpl').text(),
+ title: '创建分组',
+ confirmText: '确认创建',
+ showCallback: function() {
+ $(this).find('input[type=text]').focus();
+ },
+ confirmClicked: function() {
+ var tmpl = $('#group-tmpl').text();
+ var inputer = $(this).find('input[type=text]');
+ if (inputer.val().trim() === '') {
+ inputer.addClass('shake');
+ inputer.focus();
+ setTimeout(function() {
+ inputer && inputer.removeClass('shake');
+ }, 1000);
+ return;
+ }
+ var modal = $(this);
+ $.post($.route('org.group.create'), {
+ productLineId: PL_ID,
+ name: inputer.val().trim()
+ }, function(data) {
+ var groups = data.groups;
+ if (!groups) {
+ alert('创建失败,请稍后再试');
+ return;
+ }
+ var group = groups[0];
+ var select = $('.project-target .group').append('');
+ setTimeout(function() {
+ select.find('[value=""]').text('--请选择--');
+ select.val(group.id);
+ }, 100);
+ modal.modal('hide');
+ }, "JSON");
+ }
+ });
}
-
+
function handleDeleteClick() {
- var id = $(this).data('id');
+ var id = $(this).data('id');
var box = $(this).parents('.box');
$.confirm({
content: '删除以后不可恢复,请谨慎操作',
@@ -369,14 +377,14 @@ $(function() {
.delegate('.box .glyphicon-pencil', 'click', handleEditProjectClick)
.delegate('.box .glyphicon-export', 'click', handleRapPluginClick)
.delegate('.create-productline', 'click', handleCreateProductline)
- .delegate('.create-group', 'click', handleCreateGroup)
+ .delegate('.create-group', 'click', handleCreateGroup)
.delegate('.box .glyphicon-trash', 'click', handleDeleteClick);
}
function fillSelectAsync(route, params, tmpl, target, callback) {
callback && callback();
$(target).html($.render(tmpl, {
- items: [{id: '', name: '加载中...'}]
+ items: [{id: '', name: '加载中...'}]
}));
$.get($.route(route), params, function(data) {
if (data.groups) {
@@ -508,11 +516,25 @@ $(function() {
function render() {
var tmpl = $('#group-tmpl').text();
$.get($.route('org.home.projects'), {}, function(data) {
+ var newGroup = [];
+ for(var i = 0, l = data.groups.length; i < l; i++) {
+ if (data.groups[i].type == 'user') {
+ var group = data.groups[i];
+ for(var j = 0; j < group.projects.length; j++) {
+ if (group.projects[j].related) {
+ newGroup.push(group.projects[j]);
+ group.projects.splice(j, 1);
+ j --;
+ }
+ }
+ }
+ }
+ data.groups.push({
+ type: 'tag',
+ projects: newGroup
+ });
data.groups.forEach(function (group) {
group.name = NAME_MAP[group.type] || '其他';
- if (group.type == 'user') {
- group.mine = true;
- }
});
var html = $.render(tmpl, data);
$(".groups").html(html);
@@ -523,4 +545,6 @@ $(function() {
}
render();
+ $('.tip').tooltip();
+
});
diff --git a/WebContent/org/home/index.vm b/WebContent/org/home/index.vm
index 4a497b632..98fa98421 100644
--- a/WebContent/org/home/index.vm
+++ b/WebContent/org/home/index.vm
@@ -1,43 +1,52 @@
-
+
#parse('/tcom/template.rap.vm')
-
-
-
-
-
-
-
- #bodyNewStart
-
- #bodyEnd
-
-
-
diff --git a/WebContent/platform/home.vm b/WebContent/platform/home.vm
index 011ce062f..2e6fb49f5 100644
--- a/WebContent/platform/home.vm
+++ b/WebContent/platform/home.vm
@@ -1,9 +1,10 @@
-
+
#parse('/tcom/template.rap.vm')
Dashboard-
+
我的主页+ +加载中,请稍候
+
+ #bodyEnd
+
+
+
\ No newline at end of file
diff --git a/WebContent/platform/monitor.js b/WebContent/platform/monitor.js
new file mode 100644
index 000000000..ee1d37182
--- /dev/null
+++ b/WebContent/platform/monitor.js
@@ -0,0 +1,9 @@
+!function(){
+ var data = window.logsData;
+
+ console.log("IP Log");
+ console.table(data.ipLog);
+
+ console.log("USER Log");
+ console.table(data.userLog);
+}();
\ No newline at end of file
diff --git a/WebContent/platform/monitor.vm b/WebContent/platform/monitor.vm
new file mode 100644
index 000000000..138116425
--- /dev/null
+++ b/WebContent/platform/monitor.vm
@@ -0,0 +1,13 @@
+
+
+
+ RAP Dashboard+
+
+
+
+ DEBUG INFO+$realtimeJSON
+
+
+
+
+ 实时数据+loading...
+
+
+
+
+ 趋势数据+ + + +
+
+
+
+
+
+
+ 使用数据+
+ 目前已有$modelLogMap.get("用户数").getValue() 位工程师
+ + $modelLogMap.get("项目数").getValue() 个业务项目在使用RAP。 + 在这里定义了 + $modelLogMap.get("接口数").getValue() 个接口 RAP已为小伙伴们伪造了 + $modelLogMap.get("MOCK服务调用次数").getValue() 次MOCK数据! +
+
+
+
+
+
+ 今日统计+ + + +
+
+
+
+
+
+
+
+
+ 全量统计+ + + +
+
+
+
+
+
+
-
- #bodyEnd
-
-
diff --git a/WebContent/platform/test.vm b/WebContent/platform/test.vm
index a0dafab7f..c2eaf9ba6 100644
--- a/WebContent/platform/test.vm
+++ b/WebContent/platform/test.vm
@@ -1,9 +1,10 @@
-
+
#parse('/tcom/template.rap.vm')
level-1 TODO-* page level parallel lock & share
- * last update history show
- * User authentication & authorization
- * Project data validation for input(basic) and automation(for specific automation func)
- level-2 TODO-* action references action
- * Email informing functionality
- * project flow control with project stage and email informing
- * Ordinary & Velocity automatically generation
- * project stage management
- * SVN mode
- * page separate
- * object order management
- level-3 TODO-* full screen mode
- * account&role management
- * feedback module
- * announcement on index page
- * project data editing suggestions
- bugs-* version switch should cause check in automatically
- * make sure the order of objects updated consistent
- history-* cache project data, optimize my project list and my project page [done] 9.15
- * [bug] multi-mode share has a problem cause workspace & project level division [fixed] 9.15
- * create accounts for FEs & RDs [done] 9.15
- * auto complete on parameter input [done] 9.14
- * pangu interface import(more than 3000 parameters, 80+ pages) [done] 9.14
- * backup database [done] 9.13
- * first real module-"customer info" imported [done] 9.13
- * [bug] switch to added action after doAddEdit invoked [fixed] 9.13
- * save the module tree state after page binding [done] 9.13
- * autocomplete ui control [done] 9.9
- * project member management [done] 9.9
- * shortcut & view state compability of IE/Firefox [done] 9.9
- * user input validation [done] 9.8
- * tree parameters expand and shrink [done] 9.8
- * json escape [done] 9.8
- * version manage(VSS) [done] 9.7
- * version observation & switch (VSS) [done] 9.7
- * account manage [done] 9.6
- * about rap page [done] 9.6
- * login bug [done] 9.5
- * [bug]tab shortcut will be make content lost[parameter-remark] [fixed] 9.9
- * [bug]create first new module, than save, no module selected [fixed] 9.9
- * SessionDestoryed Exception thrown [fixed] 9.6
- * timer for session timeout delay[done] 9.6
- - - - - #set( $lstTitleList = [ - {"chn":"名称", "eval":'$item.name', "width":"300px"}, - {"chn":"创建日期", "eval":' - - - #bodyEnd - - #startFloater("floater" "" 600 350) -
|