RAP Dashboard
-
-
-
-
DEBUG INFO
-
-
$realtimeJSON
-
-
实时数据
@@ -76,14 +59,12 @@
使用数据
- 目前已有$modelLogMap.get("用户数").getValue() 位工程师
- $modelLogMap.get("项目数").getValue() 个业务项目在使用RAP。
+ 目前已有$modelLogMap.user.value 位工程师
+ $modelLogMap.project.value 个业务项目在使用RAP。
在这里定义了
- $modelLogMap.get(
- "接口数").getValue() 个接口
RAP已为小伙伴们伪造了
+ $modelLogMap.action.value 个接口
RAP已为小伙伴们伪造了
$modelLogMap.get(
- "MOCK服务调用次数").getValue() 次MOCK数据!
+ data-start="$modelLogMap.mockNum.value">$modelLogMap.mockNum.value 次MOCK数据!
diff --git a/src/main/webapp/platform/teamLog.js b/src/main/webapp/platform/teamLog.js
new file mode 100644
index 000000000..0825f8196
--- /dev/null
+++ b/src/main/webapp/platform/teamLog.js
@@ -0,0 +1,5 @@
+'use strict';
+
+!function (global) {
+
+}(this);
\ No newline at end of file
diff --git a/src/main/webapp/platform/teamLog.vm b/src/main/webapp/platform/teamLog.vm
new file mode 100644
index 000000000..8ccdd0130
--- /dev/null
+++ b/src/main/webapp/platform/teamLog.vm
@@ -0,0 +1,90 @@
+
+
+
+
+
RAP Dashboard for Team
+ #parse('/tcom/template.rap.vm')
+ #includeNewRapStatic
+
+
+
+
+
+
+
+#bodyNewStart
+
+
+
+ RAP Dashboard for Team
+
+
+
+
使用数据
+
+
+ 该团队中目前已有$modelLogMap.user.value 位工程师
+ $modelLogMap.project.value 个业务项目在使用RAP。
+ 在这里定义了
+ $modelLogMap.action.value 个接口!
+
+
+
+
全量统计
+
+
+
+
+
+
+
+
+ # |
+ IP |
+ Count |
+
+
+
+ #foreach($item in $statistics.top10ActionNumByTeam)
+
+ $velocityCount |
+ $item.name |
+ $item.num |
+
+ #end
+
+
+
+
+
+
+
+#bodyEnd
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/stat/css/rap.template.css b/src/main/webapp/stat/css/rap.template.css
index 71424b461..20c3e0f9c 100644
--- a/src/main/webapp/stat/css/rap.template.css
+++ b/src/main/webapp/stat/css/rap.template.css
@@ -748,4 +748,21 @@ div#tipDiv {
text-shadow: 0 0 2px rgba(0, 0, 0, .4);
right: 2px;
bottom: 0;
+}
+
+#rap-logo-text {
+ color: #FF0052; /* Fallback Color */
+ text-transform: uppercase;
+ font-weight: bold;
+ font-family: helvetica;
+ text-align:center;
+ font-size: 30px;
+ letter-spacing: 0;
+}
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ #rap-logo-text {
+ background: -webkit-gradient(linear,left top,left bottom,from(#FF0052),to(#802F7B));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
}
\ No newline at end of file
diff --git a/src/main/webapp/stat/js/core/rap.js b/src/main/webapp/stat/js/core/rap.js
index 98eda55f1..0f2090488 100644
--- a/src/main/webapp/stat/js/core/rap.js
+++ b/src/main/webapp/stat/js/core/rap.js
@@ -1358,7 +1358,8 @@ function deepCopy(o) {
"VSS_PANEL_MESSAGE" : "div-saveVSS-floater-message",
"WORKSPACE_MESSAGE" : "div-w-message",
"EDIT_INPUT" : "txtMTName" ,
- "IMPORT_JSON_MESSAGE" : "div-importJSON-floater-message"
+ "IMPORT_JSON_MESSAGE" : "div-importJSON-floater-message",
+ "RECOVER_WORKSPACE_MESSAGE" : "div-recoverWorkspace-floater-message"
},
PREFIX = {
"SAVE" : "radio-save-"
@@ -2315,6 +2316,22 @@ function deepCopy(o) {
this._doesImportToRequest = !!doesImportToRequest;
};
+ ws.doRecoverWorkspace = function() {
+ try {
+ var backupData = $('#recoverWorkspaceFloater-text').val();
+ var data = eval('(' + backupData + ')');
+ data = eval('(' + data.modelJSON + ')');
+ if (!data || !data.moduleList) {
+ throw new Error("找不到moduleList属性,错误的备份文本。你在逗我?");
+ }
+ p.getData().moduleList = data.moduleList;
+ ecui.get('recoverWorkspaceFloater').hide();
+ ws.quickSave('通过备份导入,恢复了数据');
+ } catch (ex) {
+ showMessage(CONST.ERROR, ELEMENT_ID.RECOVER_WORKSPACE_MESSAGE, '导入失败,输入有误。技术错误信息:' + ex.message);
+ }
+ };
+
/**
* cancel save in VSS mode
*/
@@ -2322,6 +2339,10 @@ function deepCopy(o) {
ecui.get("saveVSSFloater").hide();
};
+ ws.isEditMode = function() {
+ return _isEditMode;
+ };
+
/**
* switch to edit mode
*/
@@ -2381,10 +2402,10 @@ function deepCopy(o) {
}
};
- ws.quickSave = function() {
+ ws.quickSave = function(commitMsg) {
var q = "id=" + p.getId() + "&projectData=" + util.escaper.escapeInU(getProjectDataJson()) +
"&deletedObjectListData=" + util.escaper.escapeInU(b.json.stringify(_deletedObjectList)) +
- "&versionPosition=4&description=quick save";
+ "&versionPosition=4&description=" + (commitMsg ? commitMsg : "quick save");
showMessage(CONST.LOADING, ELEMENT_ID.WORKSPACE_MESSAGE, MESSAGE.SAVING);
if (!processing(ELEMENT_ID.WORKSPACE_MESSAGE)) return;
b.ajax.post(URL.checkIn, q, function(xhr, response) {
@@ -2589,7 +2610,7 @@ function deepCopy(o) {
//}
}
if (empty) {
- $('#actionOpFloater-page').append($("
").attr("value", -1).text('木有可移动的页面'));
+ $('#actionOpFloater-page').append($("
").attr("value", "").text('木有可移动的页面'));
}
};
@@ -2602,7 +2623,7 @@ function deepCopy(o) {
var targetMID = +$('#actionOpFloater-tab').val(); // target module id
var targetPID = +$('#actionOpFloater-page').val(); // target page id
var opType = getSelectedValue('actionOpFloater-op');
- if (targetMID && targetMID > 0 && targetPID && targetPID > 0) {
+ if (targetMID && targetPID) {
actionOperate(targetMID, targetPID, opType);
} else {
alert('请选择目标位置哦~');
diff --git a/src/main/webapp/tcom/const.inc.vm b/src/main/webapp/tcom/const.inc.vm
index 1be684a59..de4369d53 100644
--- a/src/main/webapp/tcom/const.inc.vm
+++ b/src/main/webapp/tcom/const.inc.vm
@@ -11,7 +11,7 @@
## 精确到天
#set($dateFormat = 'yyyy-MM-dd')
## 时间戳
-#set($timeStamp = '20151111.v0.13.1')
+#set($timeStamp = '20151111.v0.14.0')
##----------------------页面请求action地址-------------------------------
## 配置工程的上下文路径
#set($projectContext = "$!link.getContextPath()")
@@ -72,7 +72,8 @@
"doc":"https://github.com/thx/RAP/wiki/home_cn",
"study":"http://thx.github.io/RAP/study.html",
"log":"$!projectContext/platform/log.do",
- "realtimeUpdate":"$!projectContext/platform/realtimeUpdate.do"
+ "realtimeUpdate":"$!projectContext/platform/realtimeUpdate.do",
+ "teamLog":"$!projectContext/platform/teamLog.do"
})
#set($testerUrl = {
"pageTester":"$projectContext/tester/pageTester.do"
@@ -82,10 +83,18 @@
"manage":"$projectContext/org/team/manage.do"
})
+#set($groupUrl = {
+ "group" : "$projectContext/org/group.do"
+})
+
#set($productlineUrl = {
"productline":"$projectContext/org/productline.do"
})
#set($mockUrl = {
"queryMockData":"$projectContext/mock/queryMockData.do"
+})
+
+#set($openAPI = {
+ "queryRAPModel" : "$projectContext/api/queryRAPModel.do"
})
\ No newline at end of file
diff --git a/src/main/webapp/tcom/template.rap.vm b/src/main/webapp/tcom/template.rap.vm
index 8506c58b4..ec74c7aee 100644
--- a/src/main/webapp/tcom/template.rap.vm
+++ b/src/main/webapp/tcom/template.rap.vm
@@ -35,8 +35,8 @@
-
RAP v0.13.1 RAP v0.14.0 beta
diff --git a/src/main/webapp/tcom/utils.macro.vm b/src/main/webapp/tcom/utils.macro.vm
index 3f1c2511f..fa60da238 100644
--- a/src/main/webapp/tcom/utils.macro.vm
+++ b/src/main/webapp/tcom/utils.macro.vm
@@ -535,6 +535,17 @@ this.localDataId.value = ecui.get('$!ecId').save(this);
#end
+
+
+#macro(breadcrumb $styles)
+
+ - 全部团队
+ #if($team)- $utils.escapeInH($team.name)
#end
+ #if($productline)- $!utils.escapeInH($productline.name)
#end
+ #if($group)- $!utils.escapeInH($group.name)
#end
+
+#end
+
#**
* @desc : includeNewRapStatic 新版统一引入静态资源
*#
diff --git a/src/main/webapp/workspace/myWorkspace.vm b/src/main/webapp/workspace/myWorkspace.vm
index 1d2291441..8d06a8b9c 100644
--- a/src/main/webapp/workspace/myWorkspace.vm
+++ b/src/main/webapp/workspace/myWorkspace.vm
@@ -13,6 +13,8 @@
#bodyNewStart
+
+#breadcrumb("position:relative;top:60px;background-color:#FFF;")
@@ -88,7 +90,7 @@
@@ -344,6 +356,33 @@
#endFloater
+#startFloater("recoverWorkspaceFloater" "导入备份数据" 600 350)
+
+#endFloater
+
#startFloater("exportRAPDataFloater" "JSON导入" 600 350)