取消pageObj中所有Jquery元素变量,改为函数获取,防止元素状态不一致;另外,将变量名“pageObj”全部简化为“po”

This commit is contained in:
datagear 2018-12-12 18:17:15 +08:00
parent 13ddb592d9
commit f562883a3f
32 changed files with 1043 additions and 974 deletions

View File

@ -330,7 +330,33 @@ public class WebUtils
*/
public static String generatePageId()
{
return "p" + Long.toHexString(System.currentTimeMillis());
return generatePageId("p");
}
/**
* 生成页面ID
*
* @param prefix
* @return
*/
public static String generatePageId(String prefix)
{
String uuid = java.util.UUID.randomUUID().toString();
StringBuilder sb = new StringBuilder();
sb.append(prefix);
char[] cs = uuid.toCharArray();
for (int i = 0; i < cs.length; i++)
{
char c = cs[i];
if (c != '-')
sb.append(c);
}
return sb.toString();
}
/**
@ -354,4 +380,39 @@ public class WebUtils
return parentPage;
}
/**
* 获取页面表单ID
*
* @param request
* @return
*/
public static String getPageFormId(HttpServletRequest request)
{
return getPageElementId(request, "form");
}
/**
* 获取页面表格ID
*
* @param request
* @return
*/
public static String getPageTableId(HttpServletRequest request)
{
return getPageElementId(request, "table");
}
/**
* 获取页面元素ID
*
* @param request
* @param elementId
* @return
*/
public static String getPageElementId(HttpServletRequest request, String elementId)
{
String pageId = getPageId(request);
return pageId + "-" + elementId;
}
}

View File

@ -46,10 +46,10 @@
</form>
</div>
<%@ include file="include/page_js_obj.jsp" %>
<%@ include file="include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
})
(${pageId});
</script>

View File

@ -56,16 +56,15 @@
</div>
</div>
<%@ include file="include/page_js_obj.jsp" %>
<%@ include file="include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
if($.isInDialog(pageObj.form))
if($.isInDialog(po.form()))
{
var windowHeight = $(window).height();
var maxHeight = windowHeight - windowHeight/4;
pageObj.element(".form-content").css("max-height", maxHeight+"px").css("overflow", "auto");
po.element(".form-content").css("max-height", maxHeight+"px").css("overflow", "auto");
}
})
(${pageId});

View File

@ -17,7 +17,7 @@
Object data = request.getAttribute("data");
//标题操作标签I18N关键字不允许null
String titleOperationMessageKey = getStringValue(request, "titleOperationMessageKey");
//提交活动pageObj.pageParam().submit(...)未定义时不允许为null
//提交活动po.pageParam().submit(...)未定义时不允许为null
String submitAction = getStringValue(request, "submitAction");
//是否是客户端操作允许为null
boolean clientOperation = ("true".equalsIgnoreCase(getStringValue(request, "clientOperation")));
@ -52,43 +52,41 @@ boolean batchSet = ("true".equalsIgnoreCase(getStringValue(request, "batchSet"))
<%@ include file="include/data_page_obj.jsp" %>
<%@ include file="include/data_page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
po.readonly = <%=readonly%>;
po.submitAction = "<%=submitAction%>";
po.originalData = $.unref(<%writeJson(application, out, data);%>);
po.data = $.unref($.ref(po.originalData));
po.clientOperation = <%=clientOperation%>;
po.batchSet = <%=batchSet%>;
pageObj.readonly = <%=readonly%>;
pageObj.submitAction = "<%=submitAction%>";
pageObj.originalData = $.unref(<%writeJson(application, out, data);%>);
pageObj.data = $.unref($.ref(pageObj.originalData));
pageObj.clientOperation = <%=clientOperation%>;
pageObj.batchSet = <%=batchSet%>;
pageObj.superBuildPropertyActionOptions = pageObj.buildPropertyActionOptions;
pageObj.buildPropertyActionOptions = function(property, propertyConcreteModel, extraRequestParams, extraPageParams)
po.superBuildPropertyActionOptions = po.buildPropertyActionOptions;
po.buildPropertyActionOptions = function(property, propertyConcreteModel, extraRequestParams, extraPageParams)
{
var actionParam = pageObj.superBuildPropertyActionOptions(property, propertyConcreteModel, extraRequestParams, extraPageParams);
var actionParam = po.superBuildPropertyActionOptions(property, propertyConcreteModel, extraRequestParams, extraPageParams);
//客户端操作则传递最新表单数据,因为不需要到服务端数据库查找验证
if(pageObj.clientOperation)
actionParam["data"]["data"] = pageObj.form.modelform("data");
if(po.clientOperation)
actionParam["data"]["data"] = po.form().modelform("data");
return actionParam;
};
pageObj.onModel(function(model)
po.onModel(function(model)
{
pageObj.form.modelform(
po.form().modelform(
{
model : model,
ignorePropertyNames : "<%=WebUtils.escapeJavaScriptStringValue(ignorePropertyName)%>",
data : pageObj.data,
readonly : pageObj.readonly,
data : po.data,
readonly : po.readonly,
submit : function()
{
var data = $(this).modelform("data");
var formParam = $(this).modelform("param");
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = true;
@ -98,15 +96,15 @@ boolean batchSet = ("true".equalsIgnoreCase(getStringValue(request, "batchSet"))
close = (pageParam.submit(data, formParam) != false);
if(close && !$(this).modelform("isDialogPinned"))
pageObj.close();
po.close();
}
//否则POST至后台
else
{
var thisForm = this;
var param = $.extend(formParam, {"data" : data, "originalData" : pageObj.originalData});
var param = $.extend(formParam, {"data" : data, "originalData" : po.originalData});
pageObj.ajaxSubmitForHandleDuplication(pageObj.submitAction, param, "<fmt:message key='save.continueIgnoreDuplicationTemplate' />",
po.ajaxSubmitForHandleDuplication(po.submitAction, param, "<fmt:message key='save.continueIgnoreDuplicationTemplate' />",
{
beforeSend : function()
{
@ -120,23 +118,23 @@ boolean batchSet = ("true".equalsIgnoreCase(getStringValue(request, "batchSet"))
$form.modelform("enableOperation");
pageObj.refreshParent();
po.refreshParent();
if(batchSubmit)
;
else
{
pageObj.data = $.unref(operationMessage.data);
po.data = $.unref(operationMessage.data);
//如果有初始数据,则更新为已保存至后台的数据
//注意不能直接赋值pageObj.data因为是同一个引用有可能会被修改而pageObj.originalData不应该被修改
if(pageObj.originalData)
pageObj.originalData = $.unref($.ref(operationMessage.data));
//注意不能直接赋值po.data因为是同一个引用有可能会被修改而po.originalData不应该被修改
if(po.originalData)
po.originalData = $.unref($.ref(operationMessage.data));
if(pageParam && pageParam.afterSave)
close = (pageParam.afterSave(operationMessage.data) != false);
if(close && !isDialogPinned)
pageObj.close();
po.close();
}
},
error : function()
@ -147,7 +145,7 @@ boolean batchSet = ("true".equalsIgnoreCase(getStringValue(request, "batchSet"))
$form.modelform("enableOperation");
if(batchSubmit)
pageObj.refreshParent();
po.refreshParent();
}
});
}
@ -156,41 +154,41 @@ boolean batchSet = ("true".equalsIgnoreCase(getStringValue(request, "batchSet"))
},
addSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.addSinglePropertyValue(property, propertyConcreteModel);
po.addSinglePropertyValue(property, propertyConcreteModel);
},
editSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.editSinglePropertyValue(property, propertyConcreteModel);
po.editSinglePropertyValue(property, propertyConcreteModel);
},
deleteSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.deleteSinglePropertyValue(property, propertyConcreteModel);
po.deleteSinglePropertyValue(property, propertyConcreteModel);
},
selectSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.selectSinglePropertyValue(property, propertyConcreteModel);
po.selectSinglePropertyValue(property, propertyConcreteModel);
},
viewSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.viewSinglePropertyValue(property, propertyConcreteModel);
po.viewSinglePropertyValue(property, propertyConcreteModel);
},
editMultiplePropertyValue : function(property, propertyConcreteModel)
{
pageObj.editMultiplePropertyValue(property, propertyConcreteModel);
po.editMultiplePropertyValue(property, propertyConcreteModel);
},
viewMultiplePropertyValue : function(property, propertyConcreteModel)
{
pageObj.viewMultiplePropertyValue(property, propertyConcreteModel);
po.viewMultiplePropertyValue(property, propertyConcreteModel);
},
filePropertyUploadURL : "<c:url value='/data/file/upload' />",
filePropertyDeleteURL : "<c:url value='/data/file/delete' />",
downloadSinglePropertyValueFile : function(property, propertyConcreteModel)
{
pageObj.downloadSinglePropertyValueFile(property, propertyConcreteModel);
po.downloadSinglePropertyValueFile(property, propertyConcreteModel);
},
validationRequiredAsAdd : ("saveAdd" == pageObj.submitAction),
batchSet : pageObj.batchSet,
labels : pageObj.formLabels,
validationRequiredAsAdd : ("saveAdd" == po.submitAction),
batchSet : po.batchSet,
labels : po.formLabels,
dateFormat : "<c:out value='${sqlDateFormat}' />",
timestampFormat : "<c:out value='${sqlTimestampFormat}' />",
timeFormat : "<c:out value='${sqlTimeFormat}' />"

View File

@ -84,27 +84,27 @@ List<PropertyPathDisplayName> conditionSource = (List<PropertyPathDisplayName>)r
<%@ include file="include/data_page_obj_edit_grid_js.jsp" %>
<%}%>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.conditionSource = <%writeJson(application, out, conditionSource);%>;
po.conditionSource = <%writeJson(application, out, conditionSource);%>;
$.initButtons(pageObj.element(".operation"));
$.initButtons(po.element(".operation"));
pageObj.onModel(function(model)
po.onModel(function(model)
{
<%if(!readonly){%>
pageObj.element("input[name=addButton]").click(function()
po.element("input[name=addButton]").click(function()
{
pageObj.open(pageObj.url("", "add", "batchSet=true"), { pinTitleButton : true });
po.open(po.url("", "add", "batchSet=true"), { pinTitleButton : true });
});
pageObj.element("input[name=editButton]").click(function()
po.element("input[name=editButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var data = {"data" : row};
pageObj.open(pageObj.url("edit"),
po.open(po.url("edit"),
{
data : data,
pinTitleButton : true
@ -113,13 +113,13 @@ List<PropertyPathDisplayName> conditionSource = (List<PropertyPathDisplayName>)r
});
<%}%>
pageObj.element("input[name=viewButton]").click(function()
po.element("input[name=viewButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var data = {"data" : row};
pageObj.open(pageObj.url("view"),
po.open(po.url("view"),
{
data : data
});
@ -127,21 +127,21 @@ List<PropertyPathDisplayName> conditionSource = (List<PropertyPathDisplayName>)r
});
<%if(!readonly){%>
pageObj.element("input[name=deleteButton]").click(function()
po.element("input[name=deleteButton]").click(function()
{
pageObj.executeOnSelects(function(rows)
po.executeOnSelects(function(rows)
{
pageObj.confirm("<fmt:message key='data.confirmDelete'><fmt:param>"+rows.length+"</fmt:param></fmt:message>",
po.confirm("<fmt:message key='data.confirmDelete'><fmt:param>"+rows.length+"</fmt:param></fmt:message>",
{
"confirm" : function()
{
var data = {"data" : rows};
pageObj.ajaxSubmitForHandleDuplication("delete", data, "<fmt:message key='delete.continueIgnoreDuplicationTemplate' />",
po.ajaxSubmitForHandleDuplication("delete", data, "<fmt:message key='delete.continueIgnoreDuplicationTemplate' />",
{
"success" : function()
{
pageObj.refresh();
po.refresh();
}
});
}
@ -150,13 +150,13 @@ List<PropertyPathDisplayName> conditionSource = (List<PropertyPathDisplayName>)r
});
<%}%>
pageObj.conditionAutocompleteSource = $.buildSearchConditionAutocompleteSource(pageObj.conditionSource);
pageObj.initConditionPanel();
pageObj.initPagination();
pageObj.initModelDataTableAjax(pageObj.url("queryData"), model);
po.conditionAutocompleteSource = $.buildSearchConditionAutocompleteSource(po.conditionSource);
po.initConditionPanel();
po.initPagination();
po.initModelDataTableAjax(po.url("queryData"), model);
<%if(!readonly){%>
pageObj.initEditGrid(model);
po.initEditGrid(model);
<%}%>
});
})

View File

@ -19,7 +19,7 @@ Object data = request.getAttribute("data");
String propertyPath = getStringValue(request, "propertyPath");
//标题操作标签I18N关键字不允许null
String titleOperationMessageKey = getStringValue(request, "titleOperationMessageKey");
//提交活动pageObj.pageParam().submit(...)未定义时不允许为null
//提交活动po.pageParam().submit(...)未定义时不允许为null
String submitAction = getStringValue(request, "submitAction");
//是否是客户端操作允许为null
boolean clientOperation = ("true".equalsIgnoreCase(getStringValue(request, "clientOperation")));
@ -56,44 +56,42 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
<%@ include file="include/data_page_obj.jsp" %>
<%@ include file="include/data_page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
po.readonly = <%=readonly%>;
po.submitAction = "<%=submitAction%>";
po.data = ($.unref(<%writeJson(application, out, data);%>) || {});
po.propertyPath = "<%=WebUtils.escapeJavaScriptStringValue(propertyPath)%>";
po.clientOperation = <%=clientOperation%>;
po.batchSet = <%=batchSet%>;
pageObj.readonly = <%=readonly%>;
pageObj.submitAction = "<%=submitAction%>";
pageObj.data = ($.unref(<%writeJson(application, out, data);%>) || {});
pageObj.propertyPath = "<%=WebUtils.escapeJavaScriptStringValue(propertyPath)%>";
pageObj.clientOperation = <%=clientOperation%>;
pageObj.batchSet = <%=batchSet%>;
pageObj.superBuildPropertyActionOptions = pageObj.buildPropertyActionOptions;
pageObj.buildPropertyActionOptions = function(property, propertyConcreteModel, extraRequestParams, extraPageParams)
po.superBuildPropertyActionOptions = po.buildPropertyActionOptions;
po.buildPropertyActionOptions = function(property, propertyConcreteModel, extraRequestParams, extraPageParams)
{
var actionParam = pageObj.superBuildPropertyActionOptions(property, propertyConcreteModel, extraRequestParams, extraPageParams);
var actionParam = po.superBuildPropertyActionOptions(property, propertyConcreteModel, extraRequestParams, extraPageParams);
actionParam["data"]["propertyPath"] = $.propertyPath.concatPropertyName(pageObj.propertyPath, property.name);
actionParam["data"]["data"] = pageObj.data;
actionParam["data"]["propertyPath"] = $.propertyPath.concatPropertyName(po.propertyPath, property.name);
actionParam["data"]["data"] = po.data;
//客户端操作则传递最新表单数据,因为不需要到服务端数据库查找验证
if(pageObj.clientOperation)
$.model.propertyPathValue(actionParam["data"]["data"], pageObj.propertyPath, pageObj.form.modelform("data"));
if(po.clientOperation)
$.model.propertyPathValue(actionParam["data"]["data"], po.propertyPath, po.form().modelform("data"));
return actionParam;
};
pageObj.onModel(function(model)
po.onModel(function(model)
{
var propertyInfo = $.model.getTailPropertyInfoConcrete(model, pageObj.propertyPath);
var propertyInfo = $.model.getTailPropertyInfoConcrete(model, po.propertyPath);
var property = propertyInfo.property;
var propertyModel = propertyInfo.model;
pageObj.form.modelform(
po.form().modelform(
{
model : propertyModel,
ignorePropertyNames : $.model.findMappedByWith(property, propertyModel),
data : $.model.propertyPathValue(pageObj.data, pageObj.propertyPath),
readonly : pageObj.readonly,
data : $.model.propertyPathValue(po.data, po.propertyPath),
readonly : po.readonly,
submit : function()
{
var propValue = $(this).modelform("data");
@ -101,7 +99,7 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
var close = true;
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
//父页面定义了submit回调函数则优先执行
if(pageParam && pageParam.submit)
@ -109,15 +107,15 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
close = (pageParam.submit(propValue, formParam) != false);
if(close && !$(this).modelform("isDialogPinned"))
pageObj.close();
po.close();
}
//否则POST至后台
else
{
var thisForm = this;
var param = $.extend(formParam, { "data" : pageObj.data, "propertyPath" : pageObj.propertyPath, "propValue" : propValue });
var param = $.extend(formParam, { "data" : po.data, "propertyPath" : po.propertyPath, "propValue" : propValue });
pageObj.ajaxSubmitForHandleDuplication(pageObj.submitAction, param, "<fmt:message key='save.continueIgnoreDuplicationTemplate' />",
po.ajaxSubmitForHandleDuplication(po.submitAction, param, "<fmt:message key='save.continueIgnoreDuplicationTemplate' />",
{
beforeSend : function()
{
@ -131,21 +129,21 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
$form.modelform("enableOperation");
pageObj.refreshParent();
po.refreshParent();
if(batchSubmit)
;
else
{
//如果有初始数据,则更新为已保存至后台的数据
if(pageObj.data)
$.model.propertyPathValue(pageObj.data, pageObj.propertyPath, operationMessage.data);
if(po.data)
$.model.propertyPathValue(po.data, po.propertyPath, operationMessage.data);
if(pageParam && pageParam.afterSave)
close = (pageParam.afterSave(operationMessage.data) != false);
if(close && !isDialogPinned)
pageObj.close();
po.close();
}
},
error : function()
@ -156,7 +154,7 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
$form.modelform("enableOperation");
if(batchSubmit)
pageObj.refreshParent();
po.refreshParent();
}
});
}
@ -165,41 +163,41 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
},
addSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.addSinglePropertyValue(property, propertyConcreteModel);
po.addSinglePropertyValue(property, propertyConcreteModel);
},
editSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.editSinglePropertyValue(property, propertyConcreteModel);
po.editSinglePropertyValue(property, propertyConcreteModel);
},
deleteSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.deleteSinglePropertyValue(property, propertyConcreteModel);
po.deleteSinglePropertyValue(property, propertyConcreteModel);
},
selectSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.selectSinglePropertyValue(property, propertyConcreteModel);
po.selectSinglePropertyValue(property, propertyConcreteModel);
},
viewSinglePropertyValue : function(property, propertyConcreteModel)
{
pageObj.viewSinglePropertyValue(property, propertyConcreteModel);
po.viewSinglePropertyValue(property, propertyConcreteModel);
},
editMultiplePropertyValue : function(property, propertyConcreteModel)
{
pageObj.editMultiplePropertyValue(property, propertyConcreteModel);
po.editMultiplePropertyValue(property, propertyConcreteModel);
},
viewMultiplePropertyValue : function(property, propertyConcreteModel)
{
pageObj.viewMultiplePropertyValue(property, propertyConcreteModel);
po.viewMultiplePropertyValue(property, propertyConcreteModel);
},
filePropertyUploadURL : "<c:url value='/data/file/upload' />",
filePropertyDeleteURL : "<c:url value='/data/file/delete' />",
downloadSinglePropertyValueFile : function(property, propertyConcreteModel)
{
pageObj.downloadSinglePropertyValueFile(property, propertyConcreteModel);
po.downloadSinglePropertyValueFile(property, propertyConcreteModel);
},
validationRequiredAsAdd : ("saveAdd" == pageObj.submitAction),
batchSet : pageObj.batchSet,
labels : pageObj.formLabels,
validationRequiredAsAdd : ("saveAdd" == po.submitAction),
batchSet : po.batchSet,
labels : po.formLabels,
dateFormat : "<c:out value='${sqlDateFormat}' />",
timestampFormat : "<c:out value='${sqlTimestampFormat}' />",
timeFormat : "<c:out value='${sqlTimeFormat}' />"

View File

@ -94,22 +94,22 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
<%@ include file="include/data_page_obj_edit_grid_js.jsp" %>
<%}%>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.readonly = <%=readonly%>;
pageObj.data = $.unref(<%writeJson(application, out, data);%>);
pageObj.propertyPath = "<%=WebUtils.escapeJavaScriptStringValue(propertyPath)%>";
pageObj.clientOperation = <%=clientOperation%>;
po.readonly = <%=readonly%>;
po.data = $.unref(<%writeJson(application, out, data);%>);
po.propertyPath = "<%=WebUtils.escapeJavaScriptStringValue(propertyPath)%>";
po.clientOperation = <%=clientOperation%>;
<%if(!clientOperation){%>
pageObj.conditionSource = <%writeJson(application, out, conditionSource);%>;
po.conditionSource = <%writeJson(application, out, conditionSource);%>;
<%}%>
$.initButtons(pageObj.element(".operation"));
$.initButtons(po.element(".operation"));
pageObj.buildActionOptions = function(property, propertyConcreteModel, extraRequestParams, extraPageParams)
po.buildActionOptions = function(property, propertyConcreteModel, extraRequestParams, extraPageParams)
{
var requestParams = { "data" : pageObj.data, "propertyPath" : pageObj.propertyPath, "clientOperation" : pageObj.clientOperation };
var requestParams = { "data" : po.data, "propertyPath" : po.propertyPath, "clientOperation" : po.clientOperation };
if(extraRequestParams)
$.extend(requestParams, extraRequestParams);
@ -124,94 +124,94 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
return actionParam;
};
pageObj.restoreGridData = function()
po.restoreGridData = function()
{
var rowsData = pageObj.getRowsData();
var rowsData = po.getRowsData();
$.model.propertyPathValue(pageObj.data, pageObj.propertyPath, rowsData);
$.model.propertyPathValue(po.data, po.propertyPath, rowsData);
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
if(pageParam && pageParam.submit)
pageParam.submit(rowsData);
};
pageObj.onModel(function(model)
po.onModel(function(model)
{
var propertyInfo = $.model.getTailPropertyInfoConcrete(model, pageObj.propertyPath);
var propertyInfo = $.model.getTailPropertyInfoConcrete(model, po.propertyPath);
var property = propertyInfo.property;
var propertyModel = propertyInfo.model;
pageObj.mappedByWith = $.model.findMappedByWith(property, propertyModel);
po.mappedByWith = $.model.findMappedByWith(property, propertyModel);
pageObj.dataTableAjaxParamParent = pageObj.dataTableAjaxParam;
po.dataTableAjaxParamParent = po.dataTableAjaxParam;
pageObj.dataTableAjaxParam = function()
po.dataTableAjaxParam = function()
{
var param = pageObj.dataTableAjaxParamParent();
var param = po.dataTableAjaxParamParent();
$.extend(param,
{
"data" : pageObj.data,
"propertyPath" : pageObj.propertyPath
"data" : po.data,
"propertyPath" : po.propertyPath
});
return param;
};
pageObj.element("input[name=viewButton]").click(function()
po.element("input[name=viewButton]").click(function()
{
pageObj.executeOnSelect(function(row, index)
po.executeOnSelect(function(row, index)
{
var options = undefined;
if(pageObj.clientOperation)
if(po.clientOperation)
{
options = pageObj.buildActionOptions(property, propertyModel,
options = po.buildActionOptions(property, propertyModel,
{
"propertyPath" : $.propertyPath.concatElementIndex(pageObj.propertyPath, index)
"propertyPath" : $.propertyPath.concatElementIndex(po.propertyPath, index)
});
pageObj.open(pageObj.url("viewMultiplePropValueElement"), options);
po.open(po.url("viewMultiplePropValueElement"), options);
}
else
{
$.model.propertyPathValue(pageObj.data, pageObj.propertyPath, [ row ]);
var propertyPath = $.propertyPath.concatElementIndex(pageObj.propertyPath, 0);
$.model.propertyPathValue(po.data, po.propertyPath, [ row ]);
var propertyPath = $.propertyPath.concatElementIndex(po.propertyPath, 0);
options = pageObj.buildActionOptions(property, propertyModel,
options = po.buildActionOptions(property, propertyModel,
{
"propertyPath" : propertyPath
});
pageObj.open(pageObj.url("viewMultiplePropValueElement"), options);
po.open(po.url("viewMultiplePropValueElement"), options);
$.model.propertyPathValue(pageObj.data, pageObj.propertyPath, []);
$.model.propertyPathValue(po.data, po.propertyPath, []);
}
});
});
<%if(!readonly){%>
pageObj.addMultiplePropValueElement = function()
po.addMultiplePropValueElement = function()
{
var url = undefined;
var options = undefined;
if(pageObj.clientOperation)
if(po.clientOperation)
{
url = pageObj.url("addMultiplePropValueElement");
url = po.url("addMultiplePropValueElement");
var index = pageObj.table.DataTable().rows().data().length;
var index = po.table().DataTable().rows().data().length;
options = pageObj.buildActionOptions(property, propertyModel,
options = po.buildActionOptions(property, propertyModel,
{
"propertyPath" : $.propertyPath.concatElementIndex(pageObj.propertyPath, index)
"propertyPath" : $.propertyPath.concatElementIndex(po.propertyPath, index)
},
{
"submit" : function(propValueElement)
{
pageObj.addRowData(propValueElement);
pageObj.restoreGridData();
po.addRowData(propValueElement);
po.restoreGridData();
$.tipSuccess("<fmt:message key='haveAdd' />");
}
@ -219,46 +219,46 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
}
else
{
url = pageObj.url("", "addMultiplePropValueElement", "batchSet=true");
url = po.url("", "addMultiplePropValueElement", "batchSet=true");
options = pageObj.buildActionOptions(property, propertyModel,
options = po.buildActionOptions(property, propertyModel,
{
"propertyPath" : $.propertyPath.concatElementIndex(pageObj.propertyPath, 0)
"propertyPath" : $.propertyPath.concatElementIndex(po.propertyPath, 0)
},
null);
}
options.pinTitleButton = true;
pageObj.open(url, options);
po.open(url, options);
};
<%if(isPrivatePropertyModel){%>
pageObj.element("input[name=addButton]").click(function()
po.element("input[name=addButton]").click(function()
{
pageObj.addMultiplePropValueElement();
po.addMultiplePropValueElement();
});
<%}else{%>
pageObj.element("input[name=selectButton]").click(function()
po.element("input[name=selectButton]").click(function()
{
var options = pageObj.buildActionOptions(property, propertyModel, null,
var options = po.buildActionOptions(property, propertyModel, null,
{
"submit" : function(rows)
{
if(pageObj.clientOperation)
if(po.clientOperation)
{
pageObj.addRowData(rows);
pageObj.restoreGridData();
po.addRowData(rows);
po.restoreGridData();
$.tipSuccess("<fmt:message key='haveAdd' />");
}
else
{
var param = { "data" : pageObj.data, "propertyPath" : pageObj.propertyPath, "propValueElements" : rows };
var param = { "data" : po.data, "propertyPath" : po.propertyPath, "propValueElements" : rows };
$.post(pageObj.url("saveAddMultiplePropValueElements"), param, function()
$.post(po.url("saveAddMultiplePropValueElements"), param, function()
{
pageObj.refresh();
po.refresh();
});
}
}
@ -266,76 +266,76 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
$.setGridPageHeightOption(options);
options.pinTitleButton = true;
pageObj.open(pageObj.url("selectPropValue")+"?multiple", options);
po.open(po.url("selectPropValue")+"?multiple", options);
});
<%}%>
pageObj.element("input[name=editButton]").click(function()
po.element("input[name=editButton]").click(function()
{
pageObj.executeOnSelect(function(row, index)
po.executeOnSelect(function(row, index)
{
var options = undefined;
if(pageObj.clientOperation)
if(po.clientOperation)
{
options = pageObj.buildActionOptions(property, propertyModel,
options = po.buildActionOptions(property, propertyModel,
{
"propertyPath" : $.propertyPath.concatElementIndex(pageObj.propertyPath, index)
"propertyPath" : $.propertyPath.concatElementIndex(po.propertyPath, index)
},
{
"submit" : function(propValueElement)
{
pageObj.setRowData(index, propValueElement);
pageObj.restoreGridData();
po.setRowData(index, propValueElement);
po.restoreGridData();
}
});
options.pinTitleButton = true;
pageObj.open(pageObj.url("editMultiplePropValueElement"), options);
po.open(po.url("editMultiplePropValueElement"), options);
}
else
{
$.model.propertyPathValue(pageObj.data, pageObj.propertyPath, [ row ]);
var propertyPath = $.propertyPath.concatElementIndex(pageObj.propertyPath, 0);
$.model.propertyPathValue(po.data, po.propertyPath, [ row ]);
var propertyPath = $.propertyPath.concatElementIndex(po.propertyPath, 0);
options = pageObj.buildActionOptions(property, propertyModel,
options = po.buildActionOptions(property, propertyModel,
{
"propertyPath" : propertyPath
});
options.pinTitleButton = true;
pageObj.open(pageObj.url("editMultiplePropValueElement"), options);
po.open(po.url("editMultiplePropValueElement"), options);
$.model.propertyPathValue(pageObj.data, pageObj.propertyPath, []);
$.model.propertyPathValue(po.data, po.propertyPath, []);
}
});
});
pageObj.element("input[name=deleteButton]").click(
po.element("input[name=deleteButton]").click(
function()
{
pageObj.executeOnSelects(function(rows, indexes)
po.executeOnSelects(function(rows, indexes)
{
pageObj.confirm("<fmt:message key='data.confirmDelete'><fmt:param>"+rows.length+"</fmt:param></fmt:message>",
po.confirm("<fmt:message key='data.confirmDelete'><fmt:param>"+rows.length+"</fmt:param></fmt:message>",
{
"confirm" : function()
{
if(pageObj.clientOperation)
if(po.clientOperation)
{
pageObj.deleteRow(indexes);
pageObj.restoreGridData();
po.deleteRow(indexes);
po.restoreGridData();
}
else
{
var options = pageObj.buildActionOptions(property, propertyModel, {"propValueElements" : rows}, null);
var options = po.buildActionOptions(property, propertyModel, {"propValueElements" : rows}, null);
pageObj.ajaxSubmitForHandleDuplication("deleteMultiplePropValueElements", options.data, "<fmt:message key='delete.continueIgnoreDuplicationTemplate' />",
po.ajaxSubmitForHandleDuplication("deleteMultiplePropValueElements", options.data, "<fmt:message key='delete.continueIgnoreDuplicationTemplate' />",
{
"success" : function()
{
pageObj.refresh();
po.refresh();
}
});
}
@ -346,16 +346,16 @@ boolean isPrivatePropertyModel = ModelUtils.isPrivatePropertyModelTail(propertyP
<%}%>
<%if(clientOperation){%>
pageObj.initModelDataTableLocal(propertyModel, $.model.propertyPathValue(pageObj.data, pageObj.propertyPath), pageObj.mappedByWith);
po.initModelDataTableLocal(propertyModel, $.model.propertyPathValue(po.data, po.propertyPath), po.mappedByWith);
<%}else{%>
pageObj.conditionAutocompleteSource = $.buildSearchConditionAutocompleteSource(pageObj.conditionSource);
pageObj.initConditionPanel();
pageObj.initPagination();
pageObj.initModelDataTableAjax(pageObj.url("queryMultiplePropValueData"), propertyModel, pageObj.mappedByWith);
po.conditionAutocompleteSource = $.buildSearchConditionAutocompleteSource(po.conditionSource);
po.initConditionPanel();
po.initPagination();
po.initModelDataTableAjax(po.url("queryMultiplePropValueData"), propertyModel, po.mappedByWith);
<%}%>
<%if(!readonly){%>
pageObj.initEditGrid(propertyModel);
po.initEditGrid(propertyModel);
<%}%>
});
})

View File

@ -73,73 +73,73 @@ else
<%@ include file="../include/page_obj_pagination.jsp" %>
<%@ include file="include/data_page_obj_grid.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.data = $.unref(<%writeJson(application, out, data);%>);
pageObj.propertyPath = "<%=WebUtils.escapeJavaScriptStringValue(propertyPath)%>";
pageObj.isMultipleSelect = <%=isMultipleSelect%>;
pageObj.conditionSource = <%writeJson(application, out, conditionSource);%>;
po.data = $.unref(<%writeJson(application, out, data);%>);
po.propertyPath = "<%=WebUtils.escapeJavaScriptStringValue(propertyPath)%>";
po.isMultipleSelect = <%=isMultipleSelect%>;
po.conditionSource = <%writeJson(application, out, conditionSource);%>;
$.initButtons(pageObj.element(".operation"));
$.initButtons(po.element(".operation"));
pageObj.onModel(function(model)
po.onModel(function(model)
{
var propertyInfo = $.model.getTailPropertyInfoConcrete(model, pageObj.propertyPath);
var propertyInfo = $.model.getTailPropertyInfoConcrete(model, po.propertyPath);
var property = propertyInfo.property;
var propertyModel = propertyInfo.model;
var propertyModelTableName = $.model.featureTableName(propertyModel);
pageObj.mappedByWith = $.model.findMappedByWith(property, propertyModel);
po.mappedByWith = $.model.findMappedByWith(property, propertyModel);
pageObj.dataTableAjaxParamParent = pageObj.dataTableAjaxParam;
pageObj.dataTableAjaxParam = function()
po.dataTableAjaxParamParent = po.dataTableAjaxParam;
po.dataTableAjaxParam = function()
{
var param = pageObj.dataTableAjaxParamParent();
var param = po.dataTableAjaxParamParent();
$.extend(param,
{
"data" : pageObj.data,
"propertyPath" : pageObj.propertyPath
"data" : po.data,
"propertyPath" : po.propertyPath
});
return param;
};
pageObj.element("input[name=confirmButton]").click(function()
po.element("input[name=confirmButton]").click(function()
{
if(pageObj.isMultipleSelect)
if(po.isMultipleSelect)
{
pageObj.executeOnSelects(function(rows)
po.executeOnSelects(function(rows)
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = (pageParam && pageParam.submit ? pageParam.submit(rows) : undefined);
if(close == undefined)
close = true;
if(close && !$.isDialogPinned($.getInDialog(pageObj.element())))
pageObj.close();
if(close && !$.isDialogPinned($.getInDialog(po.element())))
po.close();
});
}
else
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = (pageParam && pageParam.submit ? pageParam.submit(row) : undefined);
if(close == undefined)
close = true;
if(close && !$.isDialogPinned($.getInDialog(pageObj.element())))
pageObj.close();
if(close && !$.isDialogPinned($.getInDialog(po.element())))
po.close();
});
}
});
pageObj.element("input[name=addButton]").click(function()
po.element("input[name=addButton]").click(function()
{
var options =
{
@ -148,53 +148,53 @@ else
{
"afterSave" : function(data)
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = (pageParam && pageParam.submit ? pageParam.submit(data) : undefined);
//单选默认关闭,多选默认不关闭
if(close == undefined)
close = (pageObj.isMultipleSelect ? false : true);
close = (po.isMultipleSelect ? false : true);
if(close)
pageObj.close();
po.close();
}
}
}
pageObj.open(pageObj.url(propertyModelTableName, "add"), options);
po.open(po.url(propertyModelTableName, "add"), options);
});
pageObj.element("input[name=editButton]").click(function()
po.element("input[name=editButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var data = {"data" : row};
pageObj.open(pageObj.url(propertyModelTableName, "edit"),
po.open(po.url(propertyModelTableName, "edit"),
{
data : data
});
});
});
pageObj.element("input[name=viewButton]").click(function()
po.element("input[name=viewButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var data = {"data" : row};
pageObj.open(pageObj.url(propertyModelTableName, "view"),
po.open(po.url(propertyModelTableName, "view"),
{
data : data
});
});
});
pageObj.conditionAutocompleteSource = $.buildSearchConditionAutocompleteSource(pageObj.conditionSource);
pageObj.initConditionPanel();
pageObj.initPagination();
pageObj.initModelDataTableAjax(pageObj.url("selectPropValueData"), propertyModel);
po.conditionAutocompleteSource = $.buildSearchConditionAutocompleteSource(po.conditionSource);
po.initConditionPanel();
po.initPagination();
po.initModelDataTableAjax(po.url("selectPropValueData"), propertyModel);
});
})
(${pageId});

View File

@ -7,9 +7,9 @@
<%@ page import="org.datagear.web.controller.DataController" %>
<%@ include file="../../include/page_js_obj.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
var dataPageObj =
var dpo =
{
//当前模式ID
schemaId : "${schema.id}",
@ -78,13 +78,13 @@
var message = messageTemplate.replace( /#\{expected\}/g, "" + expected).replace( /#\{actual\}/g, "" + actual);
pageObj.confirm(message,
po.confirm(message,
{
"confirm" : function()
{
$.closeTip();
pageObj.ajaxSubmitForHandleDuplication(action, data, messageTemplate, ajaxOptions, true);
po.ajaxSubmitForHandleDuplication(action, data, messageTemplate, ajaxOptions, true);
},
"cancel" : function()
{
@ -100,9 +100,9 @@
var url;
if(ignoreDuplication)
url = pageObj.url("", action, "<%=DataController.PARAM_IGNORE_DUPLICATION%>=true");
url = po.url("", action, "<%=DataController.PARAM_IGNORE_DUPLICATION%>=true");
else
url = pageObj.url(action);
url = po.url(action);
var options = $.extend({}, ajaxOptions, { data : data, error : errorCallback, type : "POST" });
@ -110,7 +110,7 @@
}
};
$.extend(pageObj, dataPageObj);
$.extend(po, dpo);
})
(${pageId});
</script>

View File

@ -25,17 +25,9 @@ WebUtils.setPageId(request, editGridFormPageId);
<%@ include file="../include/data_page_obj.jsp" %>
<%@ include file="../include/data_page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.formPanel = pageObj.element();
pageObj.formPanel.hide();
pageObj.form = pageObj.element("#<%=editGridFormPageId%>-form");
pageObj.formEle = function()
{
return pageObj.element("#<%=editGridFormPageId%>-form");
};
po.element().hide();
})
(<%=editGridFormPageId%>);
</script>
@ -43,41 +35,41 @@ WebUtils.setPageId(request, editGridFormPageId);
WebUtils.setPageId(request, gridPageId);
%>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.isEnableEditGrid = false;
po.isEnableEditGrid = false;
//编辑表格对应的模型会在initEditGrid函数中初始化
pageObj.editGridModel = undefined;
pageObj.editGridFormPage = <%=editGridFormPageId%>;
po.editGridModel = undefined;
po.editGridFormPage = <%=editGridFormPageId%>;
pageObj.editGridSwitch = function()
po.editGridSwitch = function()
{
return pageObj.element("#${pageId}-editGridSwitch");
return po.element("#${pageId}-editGridSwitch");
};
pageObj.editGridOperation = function()
po.editGridOperation = function()
{
return pageObj.element(".edit-grid-operation");
return po.element(".edit-grid-operation");
};
pageObj.editGridOperationButtons = function()
po.editGridOperationButtons = function()
{
return pageObj.element(".edit-grid-operation button");
return po.element(".edit-grid-operation button");
};
pageObj.editedCells = function()
po.editedCells = function()
{
return pageObj.element("tbody td.edit-cell, tbody td.cell-modified", pageObj.table);
return po.element("tbody td.edit-cell, tbody td.cell-modified", po.table());
};
pageObj.enableEditGrid = function()
po.enableEditGrid = function()
{
var $headOperation = pageObj.element(".head .operation");
var $headOperation = po.element(".head .operation");
if(pageObj.element(".edit-grid-button", $headOperation).length == 0)
if(po.element(".edit-grid-button", $headOperation).length == 0)
{
pageObj.element(".ui-button", $headOperation).addClass("not-edit-grid-button");
po.element(".ui-button", $headOperation).addClass("not-edit-grid-button");
var $buttonWrapper = $("<div class='edit-grid-button-wrapper' style='display:inline-block;' />").appendTo($headOperation);
$("<button name='editGridAddButton' class='edit-grid-button highlight'><fmt:message key='add' /></button>&nbsp;"
@ -89,42 +81,42 @@ WebUtils.setPageId(request, gridPageId);
$buttonWrapper.hide();
}
pageObj.isEnableEditGrid = true;
po.isEnableEditGrid = true;
pageObj.element(".head .search").addClass("ui-state-disabled");
pageObj.element(".foot .pagination").addClass("ui-state-disabled");
po.element(".head .search").addClass("ui-state-disabled");
po.element(".foot .pagination").addClass("ui-state-disabled");
pageObj.editGridOperationButtons().show("fade");
pageObj.element(".ui-button.not-edit-grid-button", $headOperation).hide();
pageObj.element(".edit-grid-button-wrapper", $headOperation).show("fade", function()
po.editGridOperationButtons().show("fade");
po.element(".ui-button.not-edit-grid-button", $headOperation).hide();
po.element(".edit-grid-button-wrapper", $headOperation).show("fade", function()
{
//防止快速点击复选框导致都显示出来
if(!pageObj.isEnableEditGrid)
if(!po.isEnableEditGrid)
$(this).hide();
});
};
pageObj.disableEditGrid = function()
po.disableEditGrid = function()
{
pageObj.isEnableEditGrid = false;
pageObj.cancelAllEditCell();
po.isEnableEditGrid = false;
po.cancelAllEditCell();
var $headOperation = pageObj.element(".head .operation");
var $headOperation = po.element(".head .operation");
pageObj.element(".head .search").removeClass("ui-state-disabled");
pageObj.element(".foot .pagination").removeClass("ui-state-disabled");
po.element(".head .search").removeClass("ui-state-disabled");
po.element(".foot .pagination").removeClass("ui-state-disabled");
pageObj.editGridOperationButtons().hide("fade");
pageObj.element(".edit-grid-button-wrapper", $headOperation).hide();
pageObj.element(".ui-button.not-edit-grid-button", $headOperation).show("fade", function()
po.editGridOperationButtons().hide("fade");
po.element(".edit-grid-button-wrapper", $headOperation).hide();
po.element(".ui-button.not-edit-grid-button", $headOperation).show("fade", function()
{
//防止快速点击复选框导致都显示出来
if(pageObj.isEnableEditGrid)
if(po.isEnableEditGrid)
$(this).hide();
});
};
pageObj.markAsModifiedCell = function($cell)
po.markAsModifiedCell = function($cell)
{
if(!$cell.hasClass("cell-modified"))
$cell.addClass("cell-modified");
@ -132,7 +124,7 @@ WebUtils.setPageId(request, gridPageId);
$("<div class='cell-midified-tip ui-state-error'><span class='ui-icon ui-icon-triangle-1-sw' /></div>").appendTo($cell);
};
pageObj.markAsUnmodifiedCell = function($cell)
po.markAsUnmodifiedCell = function($cell)
{
if($cell.hasClass("cell-modified"))
$cell.removeClass("cell-modified");
@ -142,7 +134,7 @@ WebUtils.setPageId(request, gridPageId);
$cmt.remove();
};
pageObj.beginEditCell = function($cell)
po.beginEditCell = function($cell)
{
$cell.addClass("edit-cell ui-state-highlight");
@ -156,35 +148,35 @@ WebUtils.setPageId(request, gridPageId);
}
if(text != originalText)
pageObj.markAsModifiedCell($cell);
po.markAsModifiedCell($cell);
else
pageObj.markAsUnmodifiedCell($cell);
po.markAsUnmodifiedCell($cell);
var cellIndex = $cell.index();
var settings = pageObj.table.DataTable().settings();
var cellProperty = $.getDataTablesColumnProperty(pageObj.editGridModel, settings, cellIndex);
var settings = po.table().DataTable().settings();
var cellProperty = $.getDataTablesColumnProperty(po.editGridModel, settings, cellIndex);
//pageObj.editGridFormPage.form.empty();
pageObj.editGridFormPage.formPanel.appendTo($cell);
//po.editGridFormPage.form().empty();
po.editGridFormPage.element().appendTo($cell);
pageObj.editGridFormPage.formEle().modelform(
po.editGridFormPage.form().modelform(
{
model : pageObj.editGridModel,
model : po.editGridModel,
renderProperty : function(property)
{
return property == cellProperty;
}
});
pageObj.editGridFormPage.formPanel.show().position({my: "left top", at: "left bottom"});
po.editGridFormPage.element().show().position({my: "left top", at: "left bottom"});
};
pageObj.storeEditCell = function($cell, value)
po.storeEditCell = function($cell, value)
{
pageObj.cancelEditCell($cell, value);
po.cancelEditCell($cell, value);
};
pageObj.cancelEditCell = function($cell, newText)
po.cancelEditCell = function($cell, newText)
{
$cell.removeClass("edit-cell ui-state-highlight");
@ -194,58 +186,56 @@ WebUtils.setPageId(request, gridPageId);
if(text == undefined)
text = originalText;
$cell.empty().text(text);
if(text != originalText)
pageObj.markAsModifiedCell($cell);
po.markAsModifiedCell($cell);
else
pageObj.markAsUnmodifiedCell($cell);
po.markAsUnmodifiedCell($cell);
pageObj.editGridFormPage.formPanel.hide();
pageObj.editGridFormPage.formEle().modelform("destroy").empty();
pageObj.editGridFormPage.formPanel.appendTo(pageObj.element());
po.editGridFormPage.element().hide();
po.editGridFormPage.form().modelform("destroy");
po.editGridFormPage.element().appendTo(po.element());
};
pageObj.cancelAllEditCell = function($editedCells)
po.cancelAllEditCell = function($editedCells)
{
if(!$editedCells)
$editedCells = pageObj.editedCells();
$editedCells = po.editedCells();
$editedCells.each(function()
{
pageObj.cancelEditCell($(this));
po.cancelEditCell($(this));
});
};
pageObj.initEditGrid = function(model)
po.initEditGrid = function(model)
{
pageObj.editGridModel = model;
po.editGridModel = model;
$.initButtons(pageObj.editGridOperation());
$.initButtons(po.editGridOperation());
pageObj.editGridSwitch().checkboxradio({icon : false}).click(function(event)
po.editGridSwitch().checkboxradio({icon : false}).click(function(event)
{
var $thisCheckbox = $(this);
if($(this).is(":checked"))
{
pageObj.enableEditGrid();
po.enableEditGrid();
}
else
{
var $editedCells = pageObj.editedCells();
var $editedCells = po.editedCells();
if($editedCells.length > 1)
{
event.preventDefault();
event.stopPropagation();
pageObj.confirm("<fmt:message key='data.confirmCancelAllEditedCell'><fmt:param>"+$editedCells.length+"</fmt:param></fmt:message>",
po.confirm("<fmt:message key='data.confirmCancelAllEditedCell'><fmt:param>"+$editedCells.length+"</fmt:param></fmt:message>",
{
"confirm" : function()
{
pageObj.cancelAllEditCell($editedCells);
pageObj.disableEditGrid();
po.cancelAllEditCell($editedCells);
po.disableEditGrid();
$thisCheckbox.attr("checked", false);
$thisCheckbox.checkboxradio("refresh");
@ -257,16 +247,16 @@ WebUtils.setPageId(request, gridPageId);
}
else
{
pageObj.cancelAllEditCell($editedCells);
pageObj.disableEditGrid();
po.cancelAllEditCell($editedCells);
po.disableEditGrid();
}
}
});
pageObj.table.DataTable()
po.table().DataTable()
.on("click.dt", function(event)
{
if(pageObj.isEnableEditGrid)
if(po.isEnableEditGrid)
{
event.stopPropagation();
@ -274,7 +264,7 @@ WebUtils.setPageId(request, gridPageId);
if(target.is("td"))
{
pageObj.beginEditCell(target);
po.beginEditCell(target);
}
}
else
@ -285,28 +275,28 @@ WebUtils.setPageId(request, gridPageId);
.on("preDraw", function(event, settings)
{
//禁止表格重绘,比如排序
if(pageObj.isEnableEditGrid)
if(po.isEnableEditGrid)
return false;
else
return true;
});
pageObj.element(".button-cancel-all", pageObj.element(".edit-grid")).click(function()
po.element(".button-cancel-all", po.element(".edit-grid")).click(function()
{
var $editedCells = pageObj.editedCells();
var $editedCells = po.editedCells();
if($editedCells.length > 1)
{
pageObj.confirm("<fmt:message key='data.confirmCancelAllEditedCell'><fmt:param>"+$editedCells.length+"</fmt:param></fmt:message>",
po.confirm("<fmt:message key='data.confirmCancelAllEditedCell'><fmt:param>"+$editedCells.length+"</fmt:param></fmt:message>",
{
"confirm" : function()
{
pageObj.cancelAllEditCell($editedCells);
po.cancelAllEditCell($editedCells);
}
});
}
else
pageObj.cancelAllEditCell($editedCells);
po.cancelAllEditCell($editedCells);
});
};
})

View File

@ -9,17 +9,17 @@
依赖变量:
//初始数据由主页面定义允许为null
pageObj.data = undefined;
//表单元素由主页面定义不允许为null
pageObj.form = undefined;
po.data = undefined;
//是否是客户端操作由主页面定义允许为null
pageObj.clientOperation = undefined;
po.clientOperation = undefined;
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="org.datagear.web.util.WebUtils"%>
<%@ include file="../../include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.formLabels =
po.formLabels =
{
add : "<fmt:message key='add' />",
edit : "<fmt:message key='edit' />",
@ -42,36 +42,36 @@ pageObj.clientOperation = undefined;
};
//如果页面参数里定义了提交回调函数,则标签改为“确定”
if(pageObj.pageParam("submit"))
pageObj.formLabels.submit = "<fmt:message key='confirm' />";
if(po.pageParam("submit"))
po.formLabels.submit = "<fmt:message key='confirm' />";
pageObj.propertySubmitHandler = function(property, propertyConcreteModel, propValue)
po.propertySubmitHandler = function(property, propertyConcreteModel, propValue)
{
pageObj.form.modelform("propValue", property.name, propValue);
po.form().modelform("propValue", property.name, propValue);
if(pageObj.data)
$.model.propertyValue(pageObj.data, property.name, propValue);
if(po.data)
$.model.propertyValue(po.data, property.name, propValue);
};
pageObj.propertyAfterSaveHandler = function(property, propertyConcreteModel, propValue)
po.propertyAfterSaveHandler = function(property, propertyConcreteModel, propValue)
{
pageObj.form.modelform("propValue", property.name, propValue);
po.form().modelform("propValue", property.name, propValue);
if(!pageObj.data)
pageObj.data = {};
if(!po.data)
po.data = {};
$.model.propertyValue(pageObj.data, property.name, propValue);
$.model.propertyValue(po.data, property.name, propValue);
};
//属性操作选项函数
pageObj.buildPropertyActionOptions = function(property, propertyConcreteModel, extraRequestParams, extraPageParams)
po.buildPropertyActionOptions = function(property, propertyConcreteModel, extraRequestParams, extraPageParams)
{
var requestParams = { "data" : pageObj.data, "propertyPath" : $.propertyPath.escapePropertyName(property.name), "clientOperation" : pageObj.clientOperation };
var requestParams = { "data" : po.data, "propertyPath" : $.propertyPath.escapePropertyName(property.name), "clientOperation" : po.clientOperation };
if(extraRequestParams)
$.extend(requestParams, extraRequestParams);
//单元属性值都不即时保存,作为客户端操作
var clientOperation = (!$.model.isMultipleProperty(property) ? true : pageObj.clientOperation);
var clientOperation = (!$.model.isMultipleProperty(property) ? true : po.clientOperation);
var pageParams = {};
@ -81,7 +81,7 @@ pageObj.clientOperation = undefined;
{
"submit" : function(propValue)
{
pageObj.propertySubmitHandler(property, propertyConcreteModel, propValue);
po.propertySubmitHandler(property, propertyConcreteModel, propValue);
}
});
}
@ -91,7 +91,7 @@ pageObj.clientOperation = undefined;
{
"afterSave" : function(propValue)
{
pageObj.propertyAfterSaveHandler(property, propertyConcreteModel, propValue);
po.propertyAfterSaveHandler(property, propertyConcreteModel, propValue);
}
});
}
@ -108,70 +108,70 @@ pageObj.clientOperation = undefined;
return actionParam;
};
pageObj.addSinglePropertyValue = function(property, propertyConcreteModel)
po.addSinglePropertyValue = function(property, propertyConcreteModel)
{
var options = pageObj.buildPropertyActionOptions(property, propertyConcreteModel);
var options = po.buildPropertyActionOptions(property, propertyConcreteModel);
options.pinTitleButton=true;
pageObj.open(pageObj.url("addSinglePropValue"), options);
po.open(po.url("addSinglePropValue"), options);
};
pageObj.editSinglePropertyValue = function(property, propertyConcreteModel)
po.editSinglePropertyValue = function(property, propertyConcreteModel)
{
var options = pageObj.buildPropertyActionOptions(property, propertyConcreteModel);
var options = po.buildPropertyActionOptions(property, propertyConcreteModel);
options.pinTitleButton=true;
pageObj.open(pageObj.url("editSinglePropValue"), options);
po.open(po.url("editSinglePropValue"), options);
};
pageObj.deleteSinglePropertyValue = function(property, propertyConcreteModel)
po.deleteSinglePropertyValue = function(property, propertyConcreteModel)
{
pageObj.propertySubmitHandler(property, propertyConcreteModel);
po.propertySubmitHandler(property, propertyConcreteModel);
};
pageObj.selectSinglePropertyValue = function(property, propertyConcreteModel)
po.selectSinglePropertyValue = function(property, propertyConcreteModel)
{
var options = pageObj.buildPropertyActionOptions(property, propertyConcreteModel);
var options = po.buildPropertyActionOptions(property, propertyConcreteModel);
$.setGridPageHeightOption(options);
pageObj.open(pageObj.url("selectPropValue"), options);
po.open(po.url("selectPropValue"), options);
};
pageObj.viewSinglePropertyValue = function(property, propertyConcreteModel)
po.viewSinglePropertyValue = function(property, propertyConcreteModel)
{
var options = pageObj.buildPropertyActionOptions(property, propertyConcreteModel);
pageObj.open(pageObj.url("viewSinglePropValue"), options);
var options = po.buildPropertyActionOptions(property, propertyConcreteModel);
po.open(po.url("viewSinglePropValue"), options);
};
pageObj.editMultiplePropertyValue = function(property, propertyConcreteModel)
po.editMultiplePropertyValue = function(property, propertyConcreteModel)
{
var options = pageObj.buildPropertyActionOptions(property, propertyConcreteModel);
var options = po.buildPropertyActionOptions(property, propertyConcreteModel);
$.setGridPageHeightOption(options);
pageObj.open(pageObj.url("editMultiplePropValue"), options);
po.open(po.url("editMultiplePropValue"), options);
};
pageObj.viewMultiplePropertyValue = function(property, propertyConcreteModel)
po.viewMultiplePropertyValue = function(property, propertyConcreteModel)
{
var options = pageObj.buildPropertyActionOptions(property, propertyConcreteModel);
var options = po.buildPropertyActionOptions(property, propertyConcreteModel);
$.setGridPageHeightOption(options);
pageObj.open(pageObj.url("viewMultiplePropValue"), options);
po.open(po.url("viewMultiplePropValue"), options);
};
pageObj.downloadSinglePropertyValueFile = function(property, propertyConcreteModel)
po.downloadSinglePropertyValueFile = function(property, propertyConcreteModel)
{
var options = pageObj.buildPropertyActionOptions(property, propertyConcreteModel);
var options = po.buildPropertyActionOptions(property, propertyConcreteModel);
options.target="_file";
pageObj.open(pageObj.url("downloadSinglePropertyValueFile"), options);
po.open(po.url("downloadSinglePropertyValueFile"), options);
};
pageObj.refreshParent = function()
po.refreshParent = function()
{
var pageObjParent = pageObj.parent();
if(pageObjParent && pageObjParent.refresh && $.isFunction(pageObjParent.refresh))
var poParent = po.parent();
if(poParent && poParent.refresh && $.isFunction(poParent.refresh))
{
try
{
pageObjParent.refresh();
poParent.refresh();
}
catch(e){}
}

View File

@ -6,28 +6,28 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="../../include/page_obj_grid.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
/**
* 构建Model的本地表格。
*/
pageObj.initModelDataTableLocal = function(model, data, ignorePropertyNames)
po.initModelDataTableLocal = function(model, data, ignorePropertyNames)
{
var columns = $.buildDataTablesColumns(model, {"ignorePropertyNames" : ignorePropertyNames});
var settings = pageObj.buildDataTableSettingsLocal(columns, data);
var settings = po.buildDataTableSettingsLocal(columns, data);
pageObj.initDataTable(settings);
po.initDataTable(settings);
};
/**
* 构建Model的ajax表格。
*/
pageObj.initModelDataTableAjax = function(url, model, ignorePropertyNames)
po.initModelDataTableAjax = function(url, model, ignorePropertyNames)
{
var columns = $.buildDataTablesColumns(model, {"ignorePropertyNames" : ignorePropertyNames});
var settings = pageObj.buildDataTableSettingsAjax(columns, url);
var settings = po.buildDataTableSettingsAjax(columns, url);
pageObj.initDataTable(settings);
po.initDataTable(settings);
};
})
(${pageId});

View File

@ -13,61 +13,61 @@ data_page_obj_searchform_html.jsp
变量:
//查询回调函数不允许为null格式为function(searchParam){}
pageObj.search = undefined;
po.search = undefined;
//查询条件autocomplete初始数据不允许为null
pageObj.conditionAutocompleteSource = undefined;
po.conditionAutocompleteSource = undefined;
--%>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.searchForm = pageObj.element("#${pageId}-searchForm");
pageObj.likeSwitchIcon = pageObj.element(".like-switch-icon", pageObj.searchForm);
pageObj.notLikeInput = pageObj.element("input[name='notLike']", pageObj.searchForm);
pageObj.keywordInput = pageObj.element("input[name='keyword']", pageObj.searchForm);
pageObj.conditionPanel = pageObj.element(".condition-panel", pageObj.searchForm);
pageObj.conditionTextarea = pageObj.element("textarea[name='condition']", pageObj.searchForm);
pageObj.conditionIconParent = pageObj.element(".search-condition-icon-parent", pageObj.searchForm);
pageObj.conditionIcon = pageObj.element(".search-condition-icon", pageObj.searchForm);
pageObj.conditionIconTip = pageObj.element(".search-condition-icon-tip", pageObj.searchForm);
po.searchForm = function(){ return this.element("#${pageId}-searchForm"); };
po.likeSwitchIcon = function(){ return this.element(".like-switch-icon", this.searchForm()); };
po.notLikeInput = function(){ return this.element("input[name='notLike']", this.searchForm()); };
po.keywordInput = function(){ return this.element("input[name='keyword']", this.searchForm()); };
po.conditionPanel = function(){ return this.element(".condition-panel", this.searchForm()); };
po.conditionTextarea = function(){ return this.element("textarea[name='condition']", this.searchForm()); };
po.conditionIconParent = function(){ return this.element(".search-condition-icon-parent", this.searchForm()); };
po.conditionIcon = function(){ return this.element(".search-condition-icon", this.searchForm()); };
po.conditionIconTip = function(){ return this.element(".search-condition-icon-tip", this.searchForm()); };
pageObj._closeCondtionPanelWhenSubmit = true;
po._closeCondtionPanelWhenSubmit = true;
pageObj.searchForm.submit(function()
po.searchForm().submit(function()
{
var searchParam = pageObj.getSearchParam();
var searchParam = po.getSearchParam();
pageObj.search(searchParam);
po.search(searchParam);
if(pageObj._closeCondtionPanelWhenSubmit)
if(po._closeCondtionPanelWhenSubmit)
{
pageObj.closeCondtionPanel();
pageObj.keywordInput.focus();
po.closeCondtionPanel();
po.keywordInput().focus();
}
return false;
});
pageObj.getSearchParam = function()
po.getSearchParam = function()
{
var nameLableCondition = $.trim(pageObj.conditionTextarea.val());
var nameLableCondition = $.trim(po.conditionTextarea().val());
var param =
{
"keyword" : $.trim(pageObj.keywordInput.val()),
"notLike" : $.trim(pageObj.notLikeInput.val()),
"condition" : $.convertToPropertyPathCondtion(pageObj.conditionAutocompleteSource, nameLableCondition)
"keyword" : $.trim(po.keywordInput().val()),
"notLike" : $.trim(po.notLikeInput().val()),
"condition" : $.convertToPropertyPathCondtion(po.conditionAutocompleteSource, nameLableCondition)
};
return param;
};
pageObj.clearSearchCondition = function()
po.clearSearchCondition = function()
{
pageObj.conditionTextarea.val("");
po.conditionTextarea().val("");
};
//提取用于autocomplete的关键词
pageObj.extractLastConditionTerm = function(text)
po.extractLastConditionTerm = function(text)
{
var term = "";
@ -84,16 +84,16 @@ pageObj.conditionAutocompleteSource = undefined;
return term;
};
pageObj.initConditionPanel = function()
po.initConditionPanel = function()
{
pageObj.conditionTextarea.autocomplete(
po.conditionTextarea().autocomplete(
{
appendTo : pageObj.element(".condition-parent", pageObj.searchForm),
appendTo : po.element(".condition-parent", po.searchForm()),
minLength: 0,
autoFocus: false,
source: function(request, response)
{
response($.ui.autocomplete.filter(pageObj.conditionAutocompleteSource, pageObj.extractLastConditionTerm(request.term)));
response($.ui.autocomplete.filter(po.conditionAutocompleteSource, po.extractLastConditionTerm(request.term)));
},
focus: function()
{
@ -101,7 +101,7 @@ pageObj.conditionAutocompleteSource = undefined;
},
select: function(event, ui)
{
var lastTerm = pageObj.extractLastConditionTerm(this.value);
var lastTerm = po.extractLastConditionTerm(this.value);
this.value = (lastTerm.length > 0 ? this.value.substring(0, this.value.length - lastTerm.length) : this.value) + ui.item.value;
return false;
@ -112,8 +112,8 @@ pageObj.conditionAutocompleteSource = undefined;
//定位至光标位置
using : function(pos, eleInfo)
{
var pos = pageObj.conditionTextarea.textareaHelper('caretPos');
pos.top = pageObj.conditionTextarea.textareaHelper('height');
var pos = po.conditionTextarea().textareaHelper('caretPos');
pos.top = po.conditionTextarea().textareaHelper('height');
$(this).css("left", pos.left + 6).css("top", pos.top);
}
@ -126,98 +126,98 @@ pageObj.conditionAutocompleteSource = undefined;
});
};
pageObj.updateNotLikeKeyword = function(notLike)
po.updateNotLikeKeyword = function(notLike)
{
if(notLike == undefined)
notLike = pageObj.notLikeInput.val();
notLike = po.notLikeInput().val();
if(notLike)
{
pageObj.likeSwitchIcon.removeClass("ui-icon-radio-off").addClass("ui-icon-radio-on").attr("title", "<fmt:message key='data.notLikeTitle' />");
pageObj.notLikeInput.val("1");
po.likeSwitchIcon().removeClass("ui-icon-radio-off").addClass("ui-icon-radio-on").attr("title", "<fmt:message key='data.notLikeTitle' />");
po.notLikeInput().val("1");
}
else
{
pageObj.likeSwitchIcon.removeClass("ui-icon-radio-on").addClass("ui-icon-radio-off").attr("title", "<fmt:message key='data.likeTitle' />");
pageObj.notLikeInput.val("");
po.likeSwitchIcon().removeClass("ui-icon-radio-on").addClass("ui-icon-radio-off").attr("title", "<fmt:message key='data.likeTitle' />");
po.notLikeInput().val("");
}
};
pageObj.switchLikeNotLikeKeyword = function()
po.switchLikeNotLikeKeyword = function()
{
if(pageObj.notLikeInput.val())
pageObj.updateNotLikeKeyword(false);
if(po.notLikeInput().val())
po.updateNotLikeKeyword(false);
else
pageObj.updateNotLikeKeyword(true);
po.updateNotLikeKeyword(true);
};
pageObj.closeCondtionPanel = function()
po.closeCondtionPanel = function()
{
pageObj.conditionPanel.hide();
po.conditionPanel().hide();
pageObj.conditionIcon.removeClass("ui-icon-caret-1-n").addClass("ui-icon-caret-1-s");
po.conditionIcon().removeClass("ui-icon-caret-1-n").addClass("ui-icon-caret-1-s");
if($.trim(pageObj.conditionTextarea.val()) != "")
pageObj.conditionIconTip.show();
if($.trim(po.conditionTextarea().val()) != "")
po.conditionIconTip().show();
};
pageObj.openCondtionPanel = function()
po.openCondtionPanel = function()
{
pageObj.conditionPanel.show();
pageObj.conditionIcon.removeClass("ui-icon-caret-1-s").addClass("ui-icon-caret-1-n");
pageObj.conditionIconTip.hide();
pageObj.conditionTextarea.focus();
po.conditionPanel().show();
po.conditionIcon().removeClass("ui-icon-caret-1-s").addClass("ui-icon-caret-1-n");
po.conditionIconTip().hide();
po.conditionTextarea().focus();
};
pageObj.likeSwitchIcon.click(function()
po.likeSwitchIcon().click(function()
{
pageObj.switchLikeNotLikeKeyword();
po.switchLikeNotLikeKeyword();
pageObj.keywordInput.focus();
po.keywordInput().focus();
});
pageObj.conditionIconParent.click(function()
po.conditionIconParent().click(function()
{
if(pageObj.conditionIcon.hasClass("ui-icon-caret-1-s"))
if(po.conditionIcon().hasClass("ui-icon-caret-1-s"))
{
pageObj.openCondtionPanel();
po.openCondtionPanel();
}
else
{
pageObj.closeCondtionPanel();
po.closeCondtionPanel();
}
});
pageObj.element(".condition-panel-resetpos-icon", pageObj.searchForm).click(function()
po.element(".condition-panel-resetpos-icon", po.searchForm()).click(function()
{
pageObj.conditionPanel.css("left", 0).css("top", 0);
po.conditionPanel().css("left", 0).css("top", 0);
});
pageObj.element(".condition-panel-clear-icon", pageObj.searchForm).click(function()
po.element(".condition-panel-clear-icon", po.searchForm()).click(function()
{
pageObj.clearSearchCondition();
pageObj.conditionTextarea.focus();
po.clearSearchCondition();
po.conditionTextarea().focus();
});
pageObj.element(".condition-panel-submit-icon", pageObj.searchForm).click(function()
po.element(".condition-panel-submit-icon", po.searchForm()).click(function()
{
pageObj._closeCondtionPanelWhenSubmit = false;
pageObj.searchForm.submit();
pageObj.conditionTextarea.focus();
pageObj._closeCondtionPanelWhenSubmit = true;
po._closeCondtionPanelWhenSubmit = false;
po.searchForm().submit();
po.conditionTextarea().focus();
po._closeCondtionPanelWhenSubmit = true;
});
pageObj.searchForm.keydown(function(event)
po.searchForm().keydown(function(event)
{
//打开、关闭条件面板
if(event.keyCode == $.ui.keyCode.DOWN && event.ctrlKey)
{
if(pageObj.conditionPanel.is(":hidden"))
pageObj.openCondtionPanel();
if(po.conditionPanel().is(":hidden"))
po.openCondtionPanel();
else
{
pageObj.closeCondtionPanel();
pageObj.keywordInput.focus();
po.closeCondtionPanel();
po.keywordInput().focus();
}
event.stopPropagation();
@ -225,32 +225,32 @@ pageObj.conditionAutocompleteSource = undefined;
//切换“LIKE”与“NOT LIKE”
else if(event.keyCode == 49 && event.ctrlKey && event.shiftKey)
{
pageObj.switchLikeNotLikeKeyword();
po.switchLikeNotLikeKeyword();
event.stopPropagation();
}
});
pageObj.conditionPanel.keydown(function(event)
po.conditionPanel().keydown(function(event)
{
if(event.keyCode == $.ui.keyCode.ENTER && event.ctrlKey)
{
pageObj._closeCondtionPanelWhenSubmit = false;
pageObj.searchForm.submit();
pageObj._closeCondtionPanelWhenSubmit = true;
po._closeCondtionPanelWhenSubmit = false;
po.searchForm().submit();
po._closeCondtionPanelWhenSubmit = true;
event.stopPropagation();
}
else if(event.keyCode == $.ui.keyCode.ESCAPE)
{
pageObj.closeCondtionPanel();
pageObj.keywordInput.focus();
po.closeCondtionPanel();
po.keywordInput().focus();
event.stopPropagation();
}
else if(event.keyCode == $.ui.keyCode.BACKSPACE && event.ctrlKey && event.shiftKey)
{
pageObj.clearSearchCondition();
pageObj.conditionTextarea.focus();
po.clearSearchCondition();
po.conditionTextarea().focus();
event.stopPropagation();
}
@ -258,16 +258,16 @@ pageObj.conditionAutocompleteSource = undefined;
$(document.body).bind("click", function(event)
{
if($(event.target).closest(pageObj.searchForm).length == 0)
pageObj.closeCondtionPanel();
if($(event.target).closest(po.searchForm()).length == 0)
po.closeCondtionPanel();
});
pageObj.conditionPanel.draggable({ handle: ".condition-panel-title-bar" });
pageObj.conditionPanel.resizable();
po.conditionPanel().draggable({ handle: ".condition-panel-title-bar" });
po.conditionPanel().resizable();
pageObj.element("input:submit", pageObj.searchForm).button();
pageObj.updateNotLikeKeyword();
pageObj.closeCondtionPanel();
po.element("input:submit", po.searchForm()).button();
po.updateNotLikeKeyword();
po.closeCondtionPanel();
})
(${pageId});
</script>

View File

@ -80,32 +80,33 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEntity
</form>
</div>
<%@ include file="../include/page_js_obj.jsp" %>
<%@ include file="../include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
$.initButtons(pageObj.element());
$.initButtons(po.element());
pageObj.form = pageObj.element("#${pageId}-form");
pageObj.driverFiles = pageObj.element(".driver-files");
pageObj.url = function(action)
po.driverFiles = function(){ return this.element(".driver-files"); };
po.fileUploadInfo = function(){ return this.element(".file-info"); };
po.url = function(action)
{
return contextPath + "/driverEntity/" + action;
};
pageObj.getDriverEntityId = function()
po.getDriverEntityId = function()
{
return pageObj.element("input[name='id']").val();
return po.element("input[name='id']").val();
};
pageObj.renderDriverFiles = function(fileInfos)
po.renderDriverFiles = function(fileInfos)
{
pageObj.driverFiles.empty();
po.driverFiles().empty();
for(var i=0; i<fileInfos.length; i++)
{
var $fileInfo = $("<div class='ui-widget ui-widget-content ui-corner-all driver-file' />")
.appendTo(pageObj.driverFiles);
.appendTo(po.driverFiles());
<%if(!readonly){%>
$("<input type='hidden' />").attr("name", "driverLibraryName").attr("value", fileInfos[i].name).appendTo($fileInfo);
@ -116,14 +117,14 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEntity
$deleteIcon.click(function()
{
var driverFile = $(this).attr("driverFile");
pageObj.confirm("<fmt:message key='driverEntity.confirmDeleteDriverFile' />",
po.confirm("<fmt:message key='driverEntity.confirmDeleteDriverFile' />",
{
"confirm" : function()
{
var id = pageObj.getDriverEntityId();
$.post(pageObj.url("deleteDriverFile"), {"id" : id, "file" : driverFile}, function(operationMessage)
var id = po.getDriverEntityId();
$.post(po.url("deleteDriverFile"), {"id" : id, "file" : driverFile}, function(operationMessage)
{
pageObj.renderDriverFiles(operationMessage.data);
po.renderDriverFiles(operationMessage.data);
});
}
});
@ -134,10 +135,10 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEntity
.appendTo($fileInfo)
.click(function()
{
var id = pageObj.getDriverEntityId();
var id = po.getDriverEntityId();
var driverFile = $(this).text();
$.postOnForm(pageObj.url("downloadDriverFile"),
$.postOnForm(po.url("downloadDriverFile"),
{
data : {"id" : id, "file" : driverFile}
});
@ -145,46 +146,44 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEntity
}
};
pageObj.refreshDriverFiles = function()
po.refreshDriverFiles = function()
{
var id = pageObj.getDriverEntityId();
var id = po.getDriverEntityId();
if(id != "")
{
$.getJSON(pageObj.url("listDriverFile"), {"id" : id}, function(fileInfos)
$.getJSON(po.url("listDriverFile"), {"id" : id}, function(fileInfos)
{
pageObj.renderDriverFiles(fileInfos);
po.renderDriverFiles(fileInfos);
});
}
};
<%if(!readonly){%>
pageObj.fileUploadInfo = pageObj.element(".file-info");
pageObj.element(".fileinput-button").fileupload(
po.element(".fileinput-button").fileupload(
{
url : pageObj.url("uploadDriverFile"),
url : po.url("uploadDriverFile"),
paramName : "file",
success : function(serverFileInfos, textStatus, jqXHR)
{
$.fileuploadsuccessHandlerForUploadInfo(pageObj.fileUploadInfo, true);
$.fileuploadsuccessHandlerForUploadInfo(po.fileUploadInfo(), true);
pageObj.renderDriverFiles(serverFileInfos);
po.renderDriverFiles(serverFileInfos);
$.tipSuccess("<fmt:message key='uploadSuccess' />");
}
})
.bind('fileuploadadd', function (e, data)
{
$.fileuploadaddHandlerForUploadInfo(e, data, pageObj.fileUploadInfo);
$.fileuploadaddHandlerForUploadInfo(e, data, po.fileUploadInfo());
})
.bind('fileuploadprogressall', function (e, data)
{
$.fileuploadprogressallHandlerForUploadInfo(e, data, pageObj.fileUploadInfo);
$.fileuploadprogressallHandlerForUploadInfo(e, data, po.fileUploadInfo());
});
pageObj.form.validate(
po.form().validate(
{
rules :
{
@ -202,7 +201,7 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEntity
{
success : function()
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = true;
@ -210,7 +209,7 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEntity
close = (pageParam.afterSave() != false);
if(close)
pageObj.close();
po.close();
}
});
},
@ -222,7 +221,7 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEntity
<%}%>
<%if(!"saveAdd".equals(formAction)){%>
pageObj.refreshDriverFiles();
po.refreshDriverFiles();
<%}%>
})
(${pageId});

View File

@ -62,68 +62,68 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEnti
<%@ include file="../include/page_obj_searchform_js.jsp" %>
<%@ include file="../include/page_obj_grid.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
$.initButtons(pageObj.element(".operation"));
$.initButtons(po.element(".operation"));
pageObj.url = function(action)
po.url = function(action)
{
return contextPath + "/driverEntity/" + action;
};
<%if(!selectonly){%>
pageObj.element("input[name=addButton]").click(function()
po.element("input[name=addButton]").click(function()
{
pageObj.open(pageObj.url("add"),
po.open(po.url("add"),
{
pageParam :
{
afterSave : function()
{
pageObj.refresh();
po.refresh();
}
}
});
});
pageObj.element("input[name=importButton]").click(function()
po.element("input[name=importButton]").click(function()
{
pageObj.open(pageObj.url("import"),
po.open(po.url("import"),
{
pageParam :
{
afterSave : function()
{
pageObj.refresh();
po.refresh();
}
}
});
});
pageObj.element("input[name=exportButton]").click(function()
po.element("input[name=exportButton]").click(function()
{
var selectedDatas = pageObj.getSelectedData();
var selectedDatas = po.getSelectedData();
var param = $.getPropertyParamString(selectedDatas, "id");
var options = {target : "_file"};
pageObj.open(pageObj.url("export?"+param), options);
po.open(po.url("export?"+param), options);
});
pageObj.element("input[name=editButton]").click(function()
po.element("input[name=editButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var data = {"id" : row.id};
pageObj.open(pageObj.url("edit"),
po.open(po.url("edit"),
{
data : data,
pageParam :
{
afterSave : function()
{
pageObj.refresh();
po.refresh();
}
}
});
@ -131,13 +131,13 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEnti
});
<%}%>
pageObj.element("input[name=viewButton]").click(function()
po.element("input[name=viewButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var data = {"id" : row.id};
pageObj.open(pageObj.url("view"),
po.open(po.url("view"),
{
data : data
});
@ -145,20 +145,20 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEnti
});
<%if(!selectonly){%>
pageObj.element("input[name=deleteButton]").click(
po.element("input[name=deleteButton]").click(
function()
{
pageObj.executeOnSelects(function(rows)
po.executeOnSelects(function(rows)
{
pageObj.confirm("<fmt:message key='driverEntity.confirmDelete' />",
po.confirm("<fmt:message key='driverEntity.confirmDelete' />",
{
"confirm" : function()
{
var data = $.getPropertyParamString(rows, "id");
$.post(pageObj.url("delete"), data, function()
$.post(po.url("delete"), data, function()
{
pageObj.refresh();
po.refresh();
});
}
});
@ -166,11 +166,11 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEnti
});
<%}%>
pageObj.element("input[name=confirmButton]").click(function()
po.element("input[name=confirmButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = (pageParam && pageParam.submit ? pageParam.submit(row) : undefined);
@ -179,11 +179,11 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEnti
close = true;
if(close)
pageObj.close();
po.close();
});
});
pageObj.buildTableColumValueOption = function(title, data, hidden)
po.buildTableColumValueOption = function(title, data, hidden)
{
var option =
{
@ -201,14 +201,14 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, DriverEnti
};
var tableColumns = [
pageObj.buildTableColumValueOption("<fmt:message key='driverEntity.id' />", "id", true),
pageObj.buildTableColumValueOption("<fmt:message key='driverEntity.displayName' />", "displayName"),
pageObj.buildTableColumValueOption("<fmt:message key='driverEntity.driverClassName' />", "driverClassName"),
pageObj.buildTableColumValueOption("<fmt:message key='driverEntity.displayDesc' />", "displayDescMore"),
pageObj.buildTableColumValueOption("", "displayText", true)
po.buildTableColumValueOption("<fmt:message key='driverEntity.id' />", "id", true),
po.buildTableColumValueOption("<fmt:message key='driverEntity.displayName' />", "displayName"),
po.buildTableColumValueOption("<fmt:message key='driverEntity.driverClassName' />", "driverClassName"),
po.buildTableColumValueOption("<fmt:message key='driverEntity.displayDesc' />", "displayDescMore"),
po.buildTableColumValueOption("", "displayText", true)
];
var tableSettings = pageObj.buildDataTableSettingsAjax(tableColumns, pageObj.url("queryData"));
pageObj.initDataTable(tableSettings);
var tableSettings = po.buildDataTableSettingsAjax(tableColumns, po.url("queryData"));
po.initDataTable(tableSettings);
})
(${pageId});
</script>

View File

@ -49,29 +49,31 @@
</form>
</div>
<%@ include file="../include/page_js_obj.jsp" %>
<%@ include file="../include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.element("input:submit, input:button, input:reset, button, .fileinput-button").button();
po.element("input:submit, input:button, input:reset, button, .fileinput-button").button();
pageObj.form = pageObj.element("#${pageId}-form");
pageObj.driverEntityInfos = pageObj.element(".driver-entity-infos");
po.driverEntityInfos = function(){ return this.element(".driver-entity-infos"); };
pageObj.url = function(action)
po.fileUploadInfo = function(){ return this.element(".file-info"); };
po.url = function(action)
{
return contextPath + "/driverEntity/" + action;
};
pageObj.renderDriverEntityInfos = function(driverEntities)
po.renderDriverEntityInfos = function(driverEntities)
{
pageObj.driverEntityInfos.empty();
po.driverEntityInfos().empty();
for(var i=0; i<driverEntities.length; i++)
{
var driverEntity = driverEntities[i];
var $item = $("<div class='ui-widget ui-widget-content ui-corner-all driver-entity-item' />")
.appendTo(pageObj.driverEntityInfos);
.appendTo(po.driverEntityInfos());
$("<input type='hidden' />").attr("name", "driverEntity.id").attr("value", driverEntity.id).appendTo($item);
$("<input type='hidden' />").attr("name", "driverEntity.driverClassName").attr("value", driverEntity.driverClassName).appendTo($item);
@ -90,26 +92,24 @@
}
};
pageObj.fileUploadInfo = pageObj.element(".file-info");
pageObj.element(".fileinput-button").fileupload(
po.element(".fileinput-button").fileupload(
{
url : pageObj.url("uploadImportFile"),
url : po.url("uploadImportFile"),
paramName : "file",
success : function(serverDriverEntities, textStatus, jqXHR)
{
$.fileuploadsuccessHandlerForUploadInfo(pageObj.fileUploadInfo, false);
pageObj.renderDriverEntityInfos(serverDriverEntities);
$.fileuploadsuccessHandlerForUploadInfo(po.fileUploadInfo(), false);
po.renderDriverEntityInfos(serverDriverEntities);
}
})
.bind('fileuploadadd', function (e, data)
{
pageObj.form.validate().resetForm();
$.fileuploadaddHandlerForUploadInfo(e, data, pageObj.fileUploadInfo);
po.form().validate().resetForm();
$.fileuploadaddHandlerForUploadInfo(e, data, po.fileUploadInfo());
})
.bind('fileuploadprogressall', function (e, data)
{
$.fileuploadprogressallHandlerForUploadInfo(e, data, pageObj.fileUploadInfo);
$.fileuploadprogressallHandlerForUploadInfo(e, data, po.fileUploadInfo());
});
$.validator.addMethod("importDriverEntityRequired", function(value, element)
@ -120,7 +120,7 @@
return $driverEntityId.length > 0;
});
pageObj.form.validate(
po.form().validate(
{
ignore : ".ignore",
rules :
@ -137,7 +137,7 @@
{
success : function()
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = true;
@ -145,7 +145,7 @@
close = (pageParam.afterSave() != false);
if(close)
pageObj.close();
po.close();
}
});
},

View File

@ -96,48 +96,49 @@
</form>
</div>
<%@ include file="include/page_js_obj.jsp" %>
<%@ include file="include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
$.initButtons(pageObj.element());
$.initButtons(po.element());
po.testSmtpRecevierEmailInput = function(){ return this.element("input[name='testSmtpRecevierEmail']"); };
po.smtpSettingConnectionTypeSelect = function(){ return this.element("select[name='smtpSetting.connectionType']"); };
pageObj.form = pageObj.element("#${pageId}-form");
pageObj.testSmtpUrl = "<%=request.getContextPath()%>/globalSetting/testSmtp";
pageObj.testSmtpRecevierEmailInput = pageObj.element("input[name='testSmtpRecevierEmail']");
pageObj.smtpSettingConnectionTypeSelect = pageObj.element("select[name='smtpSetting.connectionType']");
pageObj.smtpSettingConnectionTypeSelect.val("<c:out value='${globalSetting.smtpSetting.connectionType}' />");
pageObj.smtpSettingConnectionTypeSelect.selectmenu(
po.testSmtpUrl = "<%=request.getContextPath()%>/globalSetting/testSmtp";
po.smtpSettingConnectionTypeSelect().val("<c:out value='${globalSetting.smtpSetting.connectionType}' />");
po.smtpSettingConnectionTypeSelect().selectmenu(
{
"classes" : { "ui-selectmenu-button" : "global-setting-select" }
});
pageObj.element("#testSmtpButton").click(function()
po.element("#testSmtpButton").click(function()
{
pageObj.element("#testSmtpPanel").toggle();
po.element("#testSmtpPanel").toggle();
});
pageObj.element("#testSmtpSendButton").click(function()
po.element("#testSmtpSendButton").click(function()
{
var _this= $(this);
var initAction = pageObj.form.attr("action");
pageObj.form.attr("action", pageObj.testSmtpUrl);
var form = po.form();
var initAction = form.attr("action");
form.attr("action", po.testSmtpUrl);
pageObj.testSmtpRecevierEmailInput.rules("add",
po.testSmtpRecevierEmailInput().rules("add",
{
"required" : true,
"email" : true,
messages : {"required" : "<fmt:message key='validation.required' />", "email" : "<fmt:message key='validation.email' />"}
});
pageObj.form.submit();
form.submit();
pageObj.form.attr("action", initAction);
pageObj.testSmtpRecevierEmailInput.rules("remove");
form.attr("action", initAction);
po.testSmtpRecevierEmailInput().rules("remove");
});
pageObj.form.validate(
po.form().validate(
{
rules :
{
@ -155,16 +156,16 @@
{
var $form = $(form);
var isTestSmtp = (pageObj.testSmtpUrl == $form.attr("action"));
var isTestSmtp = (po.testSmtpUrl == $form.attr("action"));
if(isTestSmtp)
pageObj.element("#testSmtpSendButton").button("disable");
po.element("#testSmtpSendButton").button("disable");
$(form).ajaxSubmit(
{
success : function(response)
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = false;
@ -172,12 +173,12 @@
close = (pageParam.afterSave() != false);
if(close)
pageObj.close();
po.close();
},
complete : function()
{
if(isTestSmtp)
pageObj.element("#testSmtpSendButton").button("enable");
po.element("#testSmtpSendButton").button("enable");
}
});
},

View File

@ -0,0 +1,23 @@
<%--
/*
* Copyright 2018 datagear.tech. All Rights Reserved.
*/
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="org.datagear.web.util.WebUtils" %>
<%--
表单页面JS片段。
依赖:
page_js_obj.jsp
--%>
<script type="text/javascript">
(function(po)
{
po.form = function()
{
return this.element("#${pageId}-form");
};
})
(${pageId});
</script>

View File

@ -11,73 +11,73 @@
page_js_obj.jsp
--%>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.table = pageObj.element("#${pageId}-table");
po.table = function(){ return this.element("#${pageId}-table"); };
//计算表格高度
pageObj.calTableHeight = function()
po.calTableHeight = function()
{
var height = pageObj.element("> .content").actual("height") - 50;
var height = po.element("> .content").actual("height") - 50;
return height;
};
//计算表格宽度
pageObj.calTableWidth = function()
po.calTableWidth = function()
{
var width = pageObj.element("> .content").actual("width");
var width = po.element("> .content").actual("width");
return width;
};
pageObj.renderCheckColumn = function(data, type, row, meta)
po.renderCheckColumn = function(data, type, row, meta)
{
return "<div class='ui-widget ui-widget-content ui-corner-all checkbox'><span class='ui-icon ui-icon-check'></span></div>";
};
/**
* 默认pageObj.buildDataTableSettingsAjax请求参数实现。
* 默认po.buildDataTableSettingsAjax请求参数实现。
*/
pageObj.dataTableAjaxParam = function()
po.dataTableAjaxParam = function()
{
var param = {};
if(pageObj.searchParam)
$.extend(param, pageObj.searchParam);
if(po.searchParam)
$.extend(param, po.searchParam);
if(pageObj.pagingParam)
$.extend(param, pageObj.pagingParam);
if(po.pagingParam)
$.extend(param, po.pagingParam);
return param;
};
/**
* 默认pageObj.buildDataTableSettingsAjax请求成功回调实现。
* 默认po.buildDataTableSettingsAjax请求成功回调实现。
*/
pageObj.dataTableAjaxSuccess = function(pagingData, textStatus, jqXHR)
po.dataTableAjaxSuccess = function(pagingData, textStatus, jqXHR)
{
if(pageObj.refreshPagination)
pageObj.refreshPagination(pagingData.total, pagingData.page, pagingData.pageSize);
if(po.refreshPagination)
po.refreshPagination(pagingData.total, pagingData.page, pagingData.pageSize);
};
/**
* 集成data_page_obj_searchform_js.jsp的默认实现。
*/
pageObj.search = function(searchParam)
po.search = function(searchParam)
{
pageObj.searchParam = searchParam;
po.searchParam = searchParam;
pageObj.refresh();
po.refresh();
};
/**
* 集成page_obj_pagination.jsp的默认实现。
*/
pageObj.paging = function(pagingParam)
po.paging = function(pagingParam)
{
pageObj.pagingParam = pagingParam;
pageObj.refresh();
po.pagingParam = pagingParam;
po.refresh();
return false;
};
@ -85,14 +85,14 @@ page_js_obj.jsp
/**
* 构建ajax数据表格选项。
* 此ajax选项支持两个回调函数
* pageObj.dataTableAjaxParam() 用于扩展ajax请求参数
* pageObj.dataTableAjaxSuccess(pagingData, textStatus, jqXHR) ajax成功回调函数
* po.dataTableAjaxParam() 用于扩展ajax请求参数
* po.dataTableAjaxSuccess(pagingData, textStatus, jqXHR) ajax成功回调函数
* @param columns 必选,列元数据
* @param url 必选ajax请求URL
* @param ajaxSuccessCallback 可选ajax成功回调函数function(pagingData, textStatus, jqXHR){}
* @param settings 可选,其他选项
*/
pageObj.buildDataTableSettingsAjax = function(columns, url, settings)
po.buildDataTableSettingsAjax = function(columns, url, settings)
{
settings = $.extend(
{
@ -112,10 +112,10 @@ page_js_obj.jsp
var myData = undefined;
if($.isFunction(pageObj.dataTableAjaxParam))
myData = pageObj.dataTableAjaxParam();
if($.isFunction(po.dataTableAjaxParam))
myData = po.dataTableAjaxParam();
else
myData = pageObj.dataTableAjaxParam;
myData = po.dataTableAjaxParam;
var param = $.extend({ "order" : nameOrder }, myData);
@ -140,15 +140,15 @@ page_js_obj.jsp
callback(tableData);
}
if(pageObj.dataTableAjaxSuccess)
pageObj.dataTableAjaxSuccess(data, textStatus, jqXHR);
if(po.dataTableAjaxSuccess)
po.dataTableAjaxSuccess(data, textStatus, jqXHR);
}
});
}
},
settings);
return pageObj.buildDataTableSettings(settings);
return po.buildDataTableSettings(settings);
};
/**
@ -157,7 +157,7 @@ page_js_obj.jsp
* @param data 可选,初始数据
* @param settings 可选,其他选项
*/
pageObj.buildDataTableSettingsLocal = function(columns, data, settings)
po.buildDataTableSettingsLocal = function(columns, data, settings)
{
settings = $.extend(
{
@ -166,19 +166,19 @@ page_js_obj.jsp
},
settings);
return pageObj.buildDataTableSettings(settings);
return po.buildDataTableSettings(settings);
};
/**
* 构建表格选项。
* @param settings 必选,选项
*/
pageObj.buildDataTableSettings = function(settings)
po.buildDataTableSettings = function(settings)
{
var newColumns = [
{
title : "<fmt:message key='select' />", data : "", defaultContent: "", width : "3em",
orderable : false, render : pageObj.renderCheckColumn, className : "column-check"
orderable : false, render : po.renderCheckColumn, className : "column-check"
}
];
newColumns = newColumns.concat(settings.columns);
@ -186,7 +186,7 @@ page_js_obj.jsp
settings = $.extend(
{
"scrollX": true,
"scrollY" : pageObj.calTableHeight(),
"scrollY" : po.calTableHeight(),
"scrollCollapse": false,
"paging" : false,
"searching" : false,
@ -208,16 +208,16 @@ page_js_obj.jsp
var selected = tr.hasClass("selected");
if(selected)
pageObj.table.DataTable().row(tr).deselect();
po.table().DataTable().row(tr).deselect();
else
pageObj.table.DataTable().row(tr).select();
po.table().DataTable().row(tr).select();
})
//固定选择列后hover效果默认不能同步需要自己实现
.hover(
function(event)
{
var rowIndex = $(this).parent().index() + 1;
pageObj.element(".dataTable").each(function()
po.element(".dataTable").each(function()
{
$("tr:eq("+rowIndex+")", this).addClass("hover");
});
@ -225,7 +225,7 @@ page_js_obj.jsp
function(event)
{
var rowIndex = $(this).parent().index() + 1;
pageObj.element(".dataTable").each(function()
po.element(".dataTable").each(function()
{
$("tr:eq("+rowIndex+")", this).removeClass("hover");
});
@ -236,7 +236,7 @@ page_js_obj.jsp
function(event)
{
var rowIndex = $(this).index() + 1;
pageObj.element(".dataTable").each(function()
po.element(".dataTable").each(function()
{
$("tr:eq("+rowIndex+")", this).addClass("hover");
});
@ -244,7 +244,7 @@ page_js_obj.jsp
function()
{
var rowIndex = $(this).index() + 1;
pageObj.element(".dataTable").each(function()
po.element(".dataTable").each(function()
{
$("tr:eq("+rowIndex+")", this).removeClass("hover");
});
@ -258,17 +258,17 @@ page_js_obj.jsp
return settings;
};
pageObj.initDataTable = function(tableSettings)
po.initDataTable = function(tableSettings)
{
pageObj.tableSettings = tableSettings;
pageObj.table.dataTable(tableSettings);
po.tableSettings = tableSettings;
po.table().dataTable(tableSettings);
$(".dataTables_scrollHead .column-check", pageObj.table.DataTable().table().container()).click(function()
$(".dataTables_scrollHead .column-check", po.table().DataTable().table().container()).click(function()
{
var $this = $(this);
var checked = $this.hasClass("all-checked");
var rows = pageObj.table.DataTable().rows();
var rows = po.table().DataTable().rows();
if(checked)
{
@ -283,58 +283,58 @@ page_js_obj.jsp
});
};
pageObj.refresh = function()
po.refresh = function()
{
pageObj.table.DataTable().draw();
po.table().DataTable().draw();
};
pageObj.setTableData = function(tableDatas)
po.setTableData = function(tableDatas)
{
pageObj.deleteAllRow();
pageObj.addRowData(tableDatas);
po.deleteAllRow();
po.addRowData(tableDatas);
};
//单选处理函数
pageObj.executeOnSelect = function(callback)
po.executeOnSelect = function(callback)
{
var rows = pageObj.table.DataTable().rows('.selected');
var rowsData = pageObj.getRowsData(rows);
var rows = po.table().DataTable().rows('.selected');
var rowsData = po.getRowsData(rows);
if(!rowsData || rowsData.length != 1)
$.tipInfo("<fmt:message key='pleaseSelectOnlyOneRow' />");
else
{
callback.call(pageObj, rowsData[0], pageObj.getRowsIndex(rows)[0]);
callback.call(po, rowsData[0], po.getRowsIndex(rows)[0]);
}
};
//多选处理函数
pageObj.executeOnSelects = function(callback)
po.executeOnSelects = function(callback)
{
var rows = pageObj.table.DataTable().rows('.selected');
var rowsData = pageObj.getRowsData(rows);
var rows = po.table().DataTable().rows('.selected');
var rowsData = po.getRowsData(rows);
if(!rowsData || rowsData.length < 1)
$.tipInfo("<fmt:message key='pleaseSelectAtLeastOneRow' />");
else
{
callback.call(pageObj, rowsData, pageObj.getRowsIndex(rows));
callback.call(po, rowsData, po.getRowsIndex(rows));
}
};
//获取选中数据
pageObj.getSelectedData = function()
po.getSelectedData = function()
{
var rows = pageObj.table.DataTable().rows('.selected');
var rowsData = pageObj.getRowsData(rows);
var rows = po.table().DataTable().rows('.selected');
var rowsData = po.getRowsData(rows);
return (rowsData || []);
};
pageObj.getRowsData = function(rows)
po.getRowsData = function(rows)
{
if(rows == undefined)
rows = pageObj.table.DataTable().rows();
rows = po.table().DataTable().rows();
var tableRowsData = rows.data();
@ -345,19 +345,19 @@ page_js_obj.jsp
return rowsData;
};
pageObj.getRowsIndex = function(rows)
po.getRowsIndex = function(rows)
{
if(rows == undefined)
rows = pageObj.table.DataTable().rows();
rows = po.table().DataTable().rows();
var indexes = rows.indexes();
return indexes;
};
pageObj.addRowData = function(data)
po.addRowData = function(data)
{
var table = pageObj.table.DataTable();
var table = po.table().DataTable();
if($.isArray(data))
table.rows.add(data).draw();
@ -365,9 +365,9 @@ page_js_obj.jsp
table.row.add(data).draw();
};
pageObj.setRowData = function(rowIndex, data)
po.setRowData = function(rowIndex, data)
{
var table = pageObj.table.DataTable();
var table = po.table().DataTable();
if(rowIndex.length != undefined)
{
@ -380,9 +380,9 @@ page_js_obj.jsp
table.row(rowIndex).data(data).draw();
};
pageObj.deleteRow = function(rowIndex)
po.deleteRow = function(rowIndex)
{
var table = pageObj.table.DataTable();
var table = po.table().DataTable();
if(rowIndex.length != undefined)
{
@ -392,38 +392,38 @@ page_js_obj.jsp
table.row(rowIndex).remove().draw();
};
pageObj.deleteAllRow = function()
po.deleteAllRow = function()
{
pageObj.table.DataTable().rows().remove();
po.table().DataTable().rows().remove();
};
//表格高度自适应
$(window).on('resize', function(event)
{
//窗口或者父元素(比如所在对话框)调整大小
var resize = (event.target == window || pageObj.table.closest(event.target).length > 0);
var resize = (event.target == window || po.table().closest(event.target).length > 0);
if(resize)
{
clearTimeout(pageObj.tableResizeTimer);
clearTimeout(po.tableResizeTimer);
pageObj.tableResizeTimer = setTimeout(function()
po.tableResizeTimer = setTimeout(function()
{
var dtScrollBody = pageObj.element('.dataTables_scrollBody');
var dtScrollBody = po.element('.dataTables_scrollBody');
var height = pageObj.calTableHeight();
var width = pageObj.element(".dataTable", dtScrollBody).actual("width");
var height = po.calTableHeight();
var width = po.element(".dataTable", dtScrollBody).actual("width");
dtScrollBody.css('height', height);
pageObj.element('.dataTables_scrollHeadInner').css('width', width);
pageObj.element('.dataTables_scrollHeadInner > .dataTable').css('width', width);
po.element('.dataTables_scrollHeadInner').css('width', width);
po.element('.dataTables_scrollHeadInner > .dataTable').css('width', width);
pageObj.table.DataTable().fixedColumns().relayout();
po.table().DataTable().fixedColumns().relayout();
//XXX 不能使用下面的代码让表格自适应宽度,因为在隐藏选项卡中的表格宽度计算会有问题
//var height = pageObj.calTableHeight();
//pageObj.element('.dataTables_scrollBody').css('height', height);
//pageObj.table.DataTable().draw();
//var height = po.calTableHeight();
//po.element('.dataTables_scrollBody').css('height', height);
//po.table().DataTable().draw();
},
250);
}

View File

@ -12,27 +12,27 @@ data_page_obj.jsp
变量:
//分页回调函数不允许为null格式为function(pagingParam){}
pageObj.paging = undefined;
po.paging = undefined;
--%>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.pagination = pageObj.element("#${pageId}-pagination");
po.pagination = function(){ return this.element("#${pageId}-pagination"); };
pageObj.getPagingParam = function()
po.getPagingParam = function()
{
var pagingParam =
{
"page" : pageObj.pagination.pagination("option", "page"),
"pageSize" : pageObj.pagination.pagination("option", "pageSize")
"page" : po.pagination().pagination("option", "page"),
"pageSize" : po.pagination().pagination("option", "pageSize")
};
return pagingParam;
};
pageObj.initPagination = function()
po.initPagination = function()
{
pageObj.pagination.pagination(
po.pagination().pagination(
{
pageSizeSetLabel : "<fmt:message key='confirm' />",
toPageLabel : "<fmt:message key='jumpto' />",
@ -46,15 +46,15 @@ pageObj.paging = undefined;
"pageSize" : pageSize
};
pageObj.paging(pagingParam);
po.paging(pagingParam);
return false;
}
});
};
pageObj.refreshPagination = function(total, page, pageSize)
po.refreshPagination = function(total, page, pageSize)
{
pageObj.pagination
po.pagination()
.pagination("option", "total", total)
.pagination("option", "pageSize", pageSize)
.pagination("option", "page", page)

View File

@ -13,32 +13,32 @@ page_obj_searchform_html.jsp
变量:
//查询回调函数不允许为null格式为function(searchParam){}
pageObj.search = undefined;
po.search = undefined;
--%>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.searchForm = pageObj.element("#${pageId}-searchForm");
po.searchForm = function(){ return this.element("#${pageId}-searchForm"); };
pageObj.searchForm.submit(function()
po.searchForm().submit(function()
{
var searchParam = pageObj.getSearchParam();
pageObj.search(searchParam);
var searchParam = po.getSearchParam();
po.search(searchParam);
return false;
});
pageObj.getSearchParam = function()
po.getSearchParam = function()
{
var param =
{
"keyword" : $.trim(pageObj.element("input[name='keyword']", pageObj.searchForm).val())
"keyword" : $.trim(po.element("input[name='keyword']", po.searchForm()).val())
};
return param;
};
pageObj.element("input:submit", pageObj.searchForm).button();
po.element("input:submit", po.searchForm()).button();
})
(${pageId});
</script>

View File

@ -82,18 +82,17 @@ if(loginUser == null)
</div>
</div>
<%@ include file="include/page_js_obj.jsp" %>
<%@ include file="include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
//需要先渲染按钮,不然对话框尺寸不合适,出现滚动条
$.initButtons(pageObj.element());
$.initButtons(po.element());
//元素设置了“checked='checked'”后icon显示有问题这里先隐藏
$("input[type=checkbox]", pageObj.element()).checkboxradio({icon:false});
$("input[type=checkbox]", po.element()).checkboxradio({icon:false});
var dialog=pageObj.element(".page-form").dialog({
appendTo: pageObj.element(),
var dialog=po.element(".page-form").dialog({
appendTo: po.element(),
title: "<fmt:message key='login.login' />",
position: {my : "center top", at : "center top+75"},
resizable: false,
@ -102,7 +101,7 @@ if(loginUser == null)
beforeClose: function(){ return false; }
});
pageObj.form.validate(
po.form().validate(
{
rules :
{

View File

@ -15,14 +15,14 @@
<title><fmt:message key='app.name' /></title>
<%@ include file="include/page_js_obj.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
<%org.datagear.management.domain.User user = WebUtils.getUser(request, response);%>
pageObj.userId = "<%=user.getId()%>";
pageObj.isAnonymous = <%=user.isAnonymous()%>;
pageObj.isAdmin = <%=user.isAdmin()%>;
po.userId = "<%=user.getId()%>";
po.isAnonymous = <%=user.isAnonymous()%>;
po.isAdmin = <%=user.isAdmin()%>;
pageObj.workTabTemplate = "<li style='vertical-align:middle;'><a href='"+'#'+"{href}'>"+'#'+"{label}</a>"
po.workTabTemplate = "<li style='vertical-align:middle;'><a href='"+'#'+"{href}'>"+'#'+"{label}</a>"
+"<div class='tab-operation'>"
+"<span class='ui-icon ui-icon-close' title='<fmt:message key='close' />'>close</span>"
+"<div class='tab-operation-more' title='<fmt:message key='moreOperation' />'></div>"
@ -30,14 +30,14 @@
+"<div class='category-bar category-bar-"+'#'+"{schemaId}'></div>"
+"</li>";
pageObj.addWorkTab = function(tabId, label, schema, tableInfo)
po.addWorkTab = function(tabId, label, schema, tableInfo)
{
var schemaId = schema.id;
var schemaTitle = schema.title;
var tableName = tableInfo.name;
var mainTabs = pageObj.element("#mainTabs");
var mainTabs = po.element("#mainTabs");
var uiTabsNav = mainTabs.find(".ui-tabs-nav");
var prelia = $("> li > a[href='#"+tabId+"']", uiTabsNav);
@ -62,12 +62,12 @@
//防止双击导致创建两次而引起界面错乱
if(li.length == 0)
{
li = $(pageObj.workTabTemplate.replace( /#\{href\}/g, "#" + tabId).replace(/#\{label\}/g, label).replace(/#\{schemaId\}/g, schemaId)).appendTo(uiTabsNav);
li = $(po.workTabTemplate.replace( /#\{href\}/g, "#" + tabId).replace(/#\{label\}/g, label).replace(/#\{schemaId\}/g, schemaId)).appendTo(uiTabsNav);
if(!li.attr("id"))
li.attr("id", $.uid("main-tab-"));
var lititle = (pageObj.isTableView(tableInfo) ? "<fmt:message key='main.tableType.view' />" : "<fmt:message key='main.tableType.table' />") + "<fmt:message key='colon' />" +tableName;
var lititle = (po.isTableView(tableInfo) ? "<fmt:message key='main.tableType.view' />" : "<fmt:message key='main.tableType.table' />") + "<fmt:message key='colon' />" +tableName;
if(tableInfo.comment)
lititle += "<fmt:message key='bracketLeft' />" + tableInfo.comment + "<fmt:message key='bracketRight' />";
lititle += "<fmt:message key='bracketLeft' />" + schemaTitle + "<fmt:message key='bracketRight' />";
@ -81,7 +81,7 @@
mainTabs.tabs("refresh").tabs( "option", "active", $("> li", uiTabsNav).length - 1);
tabContentDiv.css("top", pageObj.evalTabPanelTop(mainTabs));
tabContentDiv.css("top", po.evalTabPanelTop(mainTabs));
tabContentDiv.html(data);
$(".tab-operation .ui-icon-close", li).click(function()
@ -93,7 +93,7 @@
li.remove();
mainTabs.tabs("refresh");
pageObj.refreshTabsNav(mainTabs);
po.refreshTabsNav(mainTabs);
if($("li", uiTabsNav).length == 0)
uiTabsNav.hide();
@ -104,7 +104,7 @@
var li = $(this).parent().parent();
var tabId = $("a", li).attr("href");
pageObj.element("#tabMoreOperationMenuParent").show().css("left", "0px").css("top", "0px")
po.element("#tabMoreOperationMenuParent").show().css("left", "0px").css("top", "0px")
.position({"my" : "left top+1", "at": "right bottom", "of" : $(this), "collision": "flip flip"});
var menuItemDisabled = {};
@ -116,7 +116,7 @@
menuItemDisabled[".tab-operation-close-right"] = !hasNext;
menuItemDisabled[".tab-operation-close-other"] = !hasPrev && !hasNext;
var menu = pageObj.element("#tabMoreOperationMenu");
var menu = po.element("#tabMoreOperationMenu");
for(var selector in menuItemDisabled)
{
@ -138,9 +138,9 @@
}
};
pageObj.genTabId = function(schemaId, tableName)
po.genTabId = function(schemaId, tableName)
{
var map = (pageObj.genTabIdMap || (pageObj.genTabIdMap = {}));
var map = (po.genTabIdMap || (po.genTabIdMap = {}));
//不能直接使用这个key作为元素ID因为tableName中可能存在与jquery冲突的字符比如'$'
var key = schemaId +"_" + tableName;
@ -148,8 +148,8 @@
if(value == undefined)
{
var nextNumber = (pageObj.genTabIdNextNumber != undefined
? (pageObj.genTabIdNextNumber = pageObj.genTabIdNextNumber + 1) : (pageObj.genTabIdNextNumber = 0));
var nextNumber = (po.genTabIdNextNumber != undefined
? (po.genTabIdNextNumber = po.genTabIdNextNumber + 1) : (po.genTabIdNextNumber = 0));
value = "mainTabs-" + nextNumber;
map[key] = value;
@ -158,7 +158,7 @@
return value;
};
pageObj.isSchemaNode = function(node)
po.isSchemaNode = function(node)
{
if(!node)
return false;
@ -171,7 +171,7 @@
return (original.id != undefined && original.url != undefined);
};
pageObj.schemaToJstreeNode = function(schema)
po.schemaToJstreeNode = function(schema)
{
schema.text = $.escapeHtml(schema.title);
@ -181,7 +181,7 @@
schema.text += " <span class='ui-icon ui-icon-notice' title='<fmt:message key='main.tempSchema' />'></span>";
else
{
if(schema.createUser && pageObj.userId != schema.createUser.id && schema.createUser.nameLabel)
if(schema.createUser && po.userId != schema.createUser.id && schema.createUser.nameLabel)
schema.text += " <span class='schema-tree-create-user-label small-text ui-state-disabled' title='<fmt:message key='main.schemaCreateUser' />'>" + $.escapeHtml(schema.createUser.nameLabel) + "</span>";
}
@ -190,37 +190,37 @@
return schema;
};
pageObj.schemaToJstreeNodes = function(schemas)
po.schemaToJstreeNodes = function(schemas)
{
for(var i=0; i<schemas.length; i++)
pageObj.schemaToJstreeNode(schemas[i]);
po.schemaToJstreeNode(schemas[i]);
return schemas;
};
pageObj.isTableNode = function(node)
po.isTableNode = function(node)
{
var original = node.original;
return (original.name != undefined && original.type != undefined);
};
pageObj.isTableView = function(tableInfo)
po.isTableView = function(tableInfo)
{
return (tableInfo.type == "VIEW");
};
pageObj.tableToJstreeNode = function(table)
po.tableToJstreeNode = function(table)
{
var text = table.name;
table.text = $.escapeHtml(text);
table.children = false;
var licss = (pageObj.isTableView(table) ? "view-node" : "table-node");
var licss = (po.isTableView(table) ? "view-node" : "table-node");
table.li_attr = { "class" : licss };
var atitle = (pageObj.isTableView(table) ? "<fmt:message key='main.tableType.view' />" : "<fmt:message key='main.tableType.table' />")
var atitle = (po.isTableView(table) ? "<fmt:message key='main.tableType.view' />" : "<fmt:message key='main.tableType.table' />")
+"<fmt:message key='colon' />" + table.name;
if(table.comment)
atitle += "<fmt:message key='bracketLeft' />" + table.comment + "<fmt:message key='bracketRight' />";
@ -230,15 +230,15 @@
return table;
};
pageObj.tableToJstreeNodes = function(tables)
po.tableToJstreeNodes = function(tables)
{
for(var i=0; i<tables.length; i++)
pageObj.tableToJstreeNode(tables[i]);
po.tableToJstreeNode(tables[i]);
return tables;
};
pageObj.createNextPageNode = function(pagingData)
po.createNextPageNode = function(pagingData)
{
var showCount = (pagingData.page > 0 ? pagingData.page-1 : 0) * pagingData.pageSize
+ (pagingData.items ? pagingData.items.length : 0);
@ -258,21 +258,21 @@
return nextPageNode;
};
pageObj.isNextPageNode = function(node)
po.isNextPageNode = function(node)
{
var original = node.original;
return (original.nextPageInfo != undefined);
};
pageObj.toJstreeNodePagingData = function(pagingData)
po.toJstreeNodePagingData = function(pagingData)
{
pageObj.tableToJstreeNodes(pagingData.items);
po.tableToJstreeNodes(pagingData.items);
//添加下一页节点
if(pagingData.page < pagingData.pages)
{
var nextPageNode = pageObj.createNextPageNode(pagingData);
var nextPageNode = po.createNextPageNode(pagingData);
pagingData.items.push(nextPageNode);
}
@ -281,40 +281,40 @@
pagingData.d = pagingData.items;
};
pageObj.isSearchTable = function()
po.isSearchTable = function()
{
var $icon = pageObj.element("#schemaSearchSwitch > .ui-icon");
var $icon = po.element("#schemaSearchSwitch > .ui-icon");
return $icon.hasClass("ui-icon-document");
};
pageObj.getSearchSchemaFormData = function()
po.getSearchSchemaFormData = function()
{
var form = pageObj.element("#schemaSearchForm");
var form = po.element("#schemaSearchForm");
var keyword = $("input[name='keyword']", form).val();
var pageSize = $("input[name='pageSize']", form).val();
return {"keyword" : keyword, "pageSize" : pageSize};
};
pageObj.getSearchSchemaFormDataForSchema = function()
po.getSearchSchemaFormDataForSchema = function()
{
if(pageObj.isSearchTable())
if(po.isSearchTable())
return {};
else
return pageObj.getSearchSchemaFormData();
return po.getSearchSchemaFormData();
};
pageObj.getSearchSchemaFormDataForTable = function()
po.getSearchSchemaFormDataForTable = function()
{
var data = pageObj.getSearchSchemaFormData();
var data = po.getSearchSchemaFormData();
if(!pageObj.isSearchTable())
if(!po.isSearchTable())
data["keyword"] = "";
return data;
};
pageObj.evalTabPanelTop = function($tab)
po.evalTabPanelTop = function($tab)
{
var $nav = $("> ul", $tab);
@ -326,15 +326,15 @@
return top;
};
pageObj.refreshSchemaTree = function()
po.refreshSchemaTree = function()
{
var $tree = pageObj.element(".schema-panel-content");
var $tree = po.element(".schema-panel-content");
$tree.jstree(true).refresh(true);
};
$(document).ready(function()
{
pageObj.element(".main-page-content").layout(
po.element(".main-page-content").layout(
{
west :
{
@ -342,7 +342,7 @@
}
});
pageObj.element("#systemSetMenu").menu(
po.element("#systemSetMenu").menu(
{
position : {my:"right top", at: "right bottom-1"},
select : function(event, ui)
@ -354,35 +354,35 @@
if($item.hasClass("system-set-global-setting"))
{
pageObj.open(contextPath+"/globalSetting");
po.open(contextPath+"/globalSetting");
}
else if($item.hasClass("system-set-schema-url-builder"))
{
pageObj.open(contextPath+"/schemaUrlBuilder/editScriptCode");
po.open(contextPath+"/schemaUrlBuilder/editScriptCode");
}
else if($item.hasClass("system-set-driverEntity-add"))
{
pageObj.open(contextPath+"/driverEntity/add");
po.open(contextPath+"/driverEntity/add");
}
else if($item.hasClass("system-set-driverEntity-manage"))
{
var options = {};
$.setGridPageHeightOption(options);
pageObj.open(contextPath+"/driverEntity/query", options);
po.open(contextPath+"/driverEntity/query", options);
}
else if($item.hasClass("system-set-user-add"))
{
pageObj.open(contextPath+"/user/add");
po.open(contextPath+"/user/add");
}
else if($item.hasClass("system-set-user-manage"))
{
var options = {};
$.setGridPageHeightOption(options);
pageObj.open(contextPath+"/user/query", options);
po.open(contextPath+"/user/query", options);
}
else if($item.hasClass("system-set-personal-set"))
{
pageObj.open(contextPath+"/user/personalSet");
po.open(contextPath+"/user/personalSet");
}
else if($item.hasClass("theme-item"))
{
@ -396,7 +396,7 @@
}
else if($item.hasClass("about"))
{
pageObj.open(contextPath+"/about", { width : "50%" });
po.open(contextPath+"/about", { width : "50%" });
}
else if($item.hasClass("documentation"))
{
@ -404,12 +404,12 @@
}
else if($item.hasClass("changelog"))
{
pageObj.open(contextPath+"/changelog", { width : "50%" });
po.open(contextPath+"/changelog", { width : "50%" });
}
}
});
pageObj.element("#schemaSearchSwitch").click(function()
po.element("#schemaSearchSwitch").click(function()
{
var $icon = $(".ui-icon", this);
@ -419,7 +419,7 @@
$icon.removeClass("ui-icon-folder-collapsed").addClass("ui-icon-document").attr("title", "<fmt:message key='main.searchTable' />");
});
pageObj.element("#schemaOperationMenu").menu(
po.element("#schemaOperationMenu").menu(
{
position : {my:"right top", at: "right bottom-1"},
focus : function(event, ui)
@ -437,7 +437,7 @@
"schema-operation-reload" : true,
};
var jstree = pageObj.element(".schema-panel-content").jstree(true);
var jstree = po.element(".schema-panel-content").jstree(true);
var selNodes = jstree.get_selected(true);
var disableCRUD = false;
@ -449,7 +449,7 @@
{
for(var i=0; i<selNodes.length; i++)
{
if(!pageObj.isSchemaNode(selNodes[i]))
if(!po.isSchemaNode(selNodes[i]))
{
disableCRUD = true;
break;
@ -469,7 +469,7 @@
//管理员、创建用户才能编辑和删除数据库
for(var i=0; i<selNodes.length; i++)
{
if(!pageObj.isSchemaNode(selNodes[i]))
if(!po.isSchemaNode(selNodes[i]))
{
diableEditAndDelete = true;
break;
@ -477,7 +477,7 @@
var schema = selNodes[i].original;
if(!pageObj.isAdmin && schema.createUser != undefined && schema.createUser.id != pageObj.userId)
if(!po.isAdmin && schema.createUser != undefined && schema.createUser.id != po.userId)
{
diableEditAndDelete = true;
break;
@ -497,11 +497,11 @@
var selSchemaCount = 0, selTableCount = 0;
for(var i=0; i<selNodes.length; i++)
{
if(pageObj.isTableNode(selNodes[i]))
if(po.isTableNode(selNodes[i]))
{
selTableCount++;
}
else if(pageObj.isSchemaNode(selNodes[i]))
else if(po.isSchemaNode(selNodes[i]))
{
selSchemaCount++;
}
@ -514,7 +514,7 @@
//只要选中了表,就禁用重载按钮
for(var i=0; i<selNodes.length; i++)
{
if(pageObj.isTableNode(selNodes[i]))
if(po.isTableNode(selNodes[i]))
{
menuItemEnables["schema-operation-reload"] = false;
break;
@ -539,7 +539,7 @@
if($item.hasClass("ui-state-disabled"))
return;
var jstree = pageObj.element(".schema-panel-content").jstree(true);
var jstree = po.element(".schema-panel-content").jstree(true);
var selNodes = jstree.get_selected(true);
if($item.hasClass("schema-operation-edit") || $item.hasClass("schema-operation-view"))
@ -552,12 +552,12 @@
var selNode = selNodes[0];
if(!pageObj.isSchemaNode(selNode))
if(!po.isSchemaNode(selNode))
return;
var schemaId = selNode.original.id;
pageObj.open(contextPath+$.toPath("schema", ($item.hasClass("schema-operation-edit") ? "edit" : "view"))+"?id="+encodeURIComponent(schemaId),
po.open(contextPath+$.toPath("schema", ($item.hasClass("schema-operation-edit") ? "edit" : "view"))+"?id="+encodeURIComponent(schemaId),
{
"pageParam" :
{
@ -573,7 +573,7 @@
if(!selNodes.length)
return;
pageObj.confirm("<fmt:message key='main.confirmDeleteSchema' />",
po.confirm("<fmt:message key='main.confirmDeleteSchema' />",
{
"confirm" : function()
{
@ -581,7 +581,7 @@
for(var i=0; i<selNodes.length; i++)
{
if(pageObj.isSchemaNode(selNodes[i]))
if(po.isSchemaNode(selNodes[i]))
{
if(schemaIdParam != "")
schemaIdParam += "&";
@ -602,7 +602,7 @@
if(!selNodes.length || selNodes.length < 1)
return;
if(pageObj.isTableNode(selNodes[0]))
if(po.isTableNode(selNodes[0]))
{
if(selNodes.length != 1)
{
@ -626,9 +626,9 @@
},
success : function(model)
{
var tabId = pageObj.genTabId(schemaId, tableName);
var tabId = po.genTabId(schemaId, tableName);
var mainTabs = pageObj.element("#mainTabs");
var mainTabs = po.element("#mainTabs");
var uiTabsNav = mainTabs.find(".ui-tabs-nav");
var prelia = $("> li > a[href='#"+tabId+"']", uiTabsNav);
@ -652,11 +652,11 @@
});
}
}
else if(pageObj.isSchemaNode(selNodes[0]))
else if(po.isSchemaNode(selNodes[0]))
{
for(var i=0; i<selNodes.length; i++)
{
if(pageObj.isSchemaNode(selNodes[i]))
if(po.isSchemaNode(selNodes[i]))
jstree.refresh_node(selNodes[i]);
}
}
@ -668,9 +668,9 @@
}
});
pageObj.element("#addSchemaButton").click(function()
po.element("#addSchemaButton").click(function()
{
var jstree = pageObj.element(".schema-panel-content").jstree(true);
var jstree = po.element(".schema-panel-content").jstree(true);
var selNodes = jstree.get_selected(true);
var copyId = undefined;
@ -679,23 +679,23 @@
{
var selNode = selNodes[0];
if(pageObj.isSchemaNode(selNode))
if(po.isSchemaNode(selNode))
copyId = selNode.original.id;
}
pageObj.open(contextPath+"/schema/add" + (copyId != undefined ? "?copyId="+copyId : ""),
po.open(contextPath+"/schema/add" + (copyId != undefined ? "?copyId="+copyId : ""),
{
"pageParam" :
{
"afterSave" : function()
{
pageObj.refreshSchemaTree();
po.refreshSchemaTree();
}
}
});
});
pageObj.element(".schema-panel-content").jstree
po.element(".schema-panel-content").jstree
(
{
"core" :
@ -708,7 +708,7 @@
//根节点
if(node.id == "#")
return contextPath+"/schema/list";
else if(pageObj.isSchemaNode(node))
else if(po.isSchemaNode(node))
{
return contextPath + $.toPath("schema", node.id, "pagingQueryTable");
}
@ -716,19 +716,19 @@
"data" : function(node)
{
if(node.id == "#")
return pageObj.getSearchSchemaFormDataForSchema();
else if(pageObj.isSchemaNode(node))
return pageObj.getSearchSchemaFormDataForTable();
return po.getSearchSchemaFormDataForSchema();
else if(po.isSchemaNode(node))
return po.getSearchSchemaFormDataForTable();
},
"success" : function(data, textStatus, jqXHR)
{
var url = this.url;
if(url.indexOf("/schema/list") > -1)
pageObj.schemaToJstreeNodes(data);
po.schemaToJstreeNodes(data);
else if(url.indexOf("/pagingQueryTable") > -1)
{
pageObj.toJstreeNodePagingData(data);
po.toJstreeNodePagingData(data);
}
}
},
@ -741,7 +741,7 @@
{
var tree = $(this).jstree(true);
if(pageObj.isTableNode(data.node))
if(po.isTableNode(data.node))
{
var schema = tree.get_node(data.node.parent).original;
@ -749,9 +749,9 @@
var schemaTitle = schema.title;
var tableName = data.node.original.name;
pageObj.addWorkTab(pageObj.genTabId(schemaId, tableName), data.node.text, schema, data.node.original);
po.addWorkTab(po.genTabId(schemaId, tableName), data.node.text, schema, data.node.original);
}
else if(pageObj.isNextPageNode(data.node))
else if(po.isNextPageNode(data.node))
{
if(!data.node.state.loadingNextPage)
{
@ -764,7 +764,7 @@
var $moreTableNode = tree.get_node(data.node, true);
$(".more-table", $moreTableNode).html("<fmt:message key='main.loadingTable' />");
var param = pageObj.getSearchSchemaFormDataForTable();
var param = po.getSearchSchemaFormDataForTable();
param = $.extend({}, data.node.original.nextPageInfo, param);
$.ajax(contextPath+$.toPath("schema", schemaId, "pagingQueryTable"),
@ -773,7 +773,7 @@
success : function(pagingData)
{
tree.delete_node(data.node);
pageObj.toJstreeNodePagingData(pagingData);
po.toJstreeNodePagingData(pagingData);
var nodes = pagingData.items;
@ -795,21 +795,21 @@
{
var tree = $(this).jstree(true);
if(pageObj.selectNodeAfterLoad)
if(po.selectNodeAfterLoad)
{
pageObj.selectNodeAfterLoad = false;
po.selectNodeAfterLoad = false;
tree.select_node(data.node);
}
});
pageObj.element("#schemaSearchForm").submit(function()
po.element("#schemaSearchForm").submit(function()
{
var jstree = pageObj.element(".schema-panel-content").jstree(true);
var jstree = po.element(".schema-panel-content").jstree(true);
if(pageObj.isSearchTable())
if(po.isSearchTable())
{
pageObj.selectNodeAfterLoad = true;
po.selectNodeAfterLoad = true;
var searchSchemaNodes = [];
@ -818,7 +818,7 @@
{
var selNode = selNodes[i];
while(selNode && !pageObj.isSchemaNode(selNode))
while(selNode && !po.isSchemaNode(selNode))
selNode = jstree.get_node(selNode.parent);
if(selNode)
@ -850,11 +850,11 @@
}
else
{
pageObj.refreshSchemaTree();
po.refreshSchemaTree();
}
});
pageObj.element("#mainTabs").tabs(
po.element("#mainTabs").tabs(
{
event: "click",
activate: function(event, ui)
@ -862,7 +862,7 @@
var newTab = $(ui.newTab);
var newPanel = $(ui.newPanel);
pageObj.refreshTabsNav($(this), newTab);
po.refreshTabsNav($(this), newTab);
var newSchemaId = newTab.attr("schema-id");
@ -871,9 +871,9 @@
}
});
pageObj.element("#mainTabs .ui-tabs-nav").hide();
po.element("#mainTabs .ui-tabs-nav").hide();
pageObj.getTabsHiddens = function(tabsNav)
po.getTabsHiddens = function(tabsNav)
{
var tabsNavHeight = tabsNav.height();
@ -890,9 +890,9 @@
return hiddens;
};
pageObj.refreshTabsNav = function(tabs, activeTab)
po.refreshTabsNav = function(tabs, activeTab)
{
var tabsNav = pageObj.element(".ui-tabs-nav", tabs);
var tabsNav = po.element(".ui-tabs-nav", tabs);
if(activeTab == undefined)
activeTab = $("li.ui-tabs-active", tabsNav);
@ -916,19 +916,19 @@
var showHiddenButton = $(".tab-show-hidden", tabs);
if(pageObj.getTabsHiddens(tabsNav).length > 0)
if(po.getTabsHiddens(tabsNav).length > 0)
{
if(showHiddenButton.length == 0)
{
showHiddenButton = $("<button class='ui-button ui-corner-all ui-widget ui-button-icon-only tab-show-hidden'><span class='ui-icon ui-icon-triangle-1-s'></span></button>").appendTo(tabs);
showHiddenButton.click(function()
{
var tabs = pageObj.element("#mainTabs");
var tabsNav = pageObj.element(".ui-tabs-nav", tabs);
var tabs = po.element("#mainTabs");
var tabsNav = po.element(".ui-tabs-nav", tabs);
var hiddens = pageObj.getTabsHiddens(tabsNav);
var hiddens = po.getTabsHiddens(tabsNav);
var menu = pageObj.element("#tabMoreTabMenu");
var menu = po.element("#tabMoreTabMenu");
menu.empty();
for(var i=0; i<hiddens.length; i++)
@ -940,7 +940,7 @@
$("<div />").html($(".ui-tabs-anchor", tab).text()).appendTo(mi);
}
pageObj.element("#tabMoreTabMenuParent").show().css("left", "0px").css("top", "0px")
po.element("#tabMoreTabMenuParent").show().css("left", "0px").css("top", "0px")
.position({"my" : "left top+1", "at": "right bottom", "of" : $(this), "collision": "flip flip"});
menu.menu("refresh");
@ -953,7 +953,7 @@
showHiddenButton.hide();
};
pageObj.element("#tabMoreOperationMenu").menu(
po.element("#tabMoreOperationMenu").menu(
{
select: function(event, ui)
{
@ -962,7 +962,7 @@
var tableName = $(this).attr("table-name");
var tabId = $(this).attr("tab-id");
var mainTabs = pageObj.element("#mainTabs");
var mainTabs = po.element("#mainTabs");
var uiTabsNav = mainTabs.find(".ui-tabs-nav");
var tabLink = $("a[href='"+tabId+"']", uiTabsNav);
var tabLi = tabLink.parent();
@ -983,7 +983,7 @@
}
mainTabs.tabs("refresh");
pageObj.refreshTabsNav(mainTabs);
po.refreshTabsNav(mainTabs);
}
else if(item.hasClass("tab-operation-close-right"))
{
@ -997,7 +997,7 @@
}
mainTabs.tabs("refresh");
pageObj.refreshTabsNav(mainTabs);
po.refreshTabsNav(mainTabs);
}
else if(item.hasClass("tab-operation-close-other"))
{
@ -1015,7 +1015,7 @@
});
mainTabs.tabs("refresh");
pageObj.refreshTabsNav(mainTabs);
po.refreshTabsNav(mainTabs);
}
else if(item.hasClass("tab-operation-close-all"))
{
@ -1030,28 +1030,28 @@
});
mainTabs.tabs("refresh");
pageObj.refreshTabsNav(mainTabs);
po.refreshTabsNav(mainTabs);
}
if($("li", uiTabsNav).length == 0)
uiTabsNav.hide();
pageObj.element("#tabMoreOperationMenuParent").hide();
po.element("#tabMoreOperationMenuParent").hide();
}
});
pageObj.element("#tabMoreTabMenu").menu(
po.element("#tabMoreTabMenu").menu(
{
select: function(event, ui)
{
var item = ui.item;
var tabId = item.attr("tab-id");
var mainTabs = pageObj.element("#mainTabs");
var myIndex = pageObj.element(".ui-tabs-nav li[id='"+tabId+"']", mainTabs).index();
var mainTabs = po.element("#mainTabs");
var myIndex = po.element(".ui-tabs-nav li[id='"+tabId+"']", mainTabs).index();
mainTabs.tabs("option", "active", myIndex);
pageObj.element("#tabMoreTabMenuParent").hide();
po.element("#tabMoreTabMenuParent").hide();
}
});
@ -1073,7 +1073,7 @@
};
if(hide)
pageObj.element("#tabMoreOperationMenuParent").hide();
po.element("#tabMoreOperationMenuParent").hide();
});
$(document.body).click(function(e)
@ -1094,7 +1094,7 @@
};
if(hide)
pageObj.element("#tabMoreTabMenuParent").hide();
po.element("#tabMoreTabMenuParent").hide();
});
//系统通知

View File

@ -77,18 +77,17 @@
</div>
</div>
<%@ include file="include/page_js_obj.jsp" %>
<%@ include file="include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
//需要先渲染按钮,不然对话框尺寸不合适,出现滚动条
$.initButtons(pageObj.element());
$.initButtons(po.element());
//元素设置了“checked='checked'”后icon显示有问题这里先隐藏
$("input[type=checkbox]", pageObj.element()).checkboxradio({icon:false});
$("input[type=checkbox]", po.element()).checkboxradio({icon:false});
var dialog=pageObj.element(".page-form").dialog({
appendTo: pageObj.element(),
var dialog=po.element(".page-form").dialog({
appendTo: po.element(),
title: "<fmt:message key='register.register' />",
position: {my : "center top", at : "center top+75"},
resizable: false,
@ -97,13 +96,13 @@
beforeClose: function(){ return false; }
});
pageObj.form.validate(
po.form().validate(
{
rules :
{
name : "required",
password : "required",
confirmPassword : { "required" : true, "equalTo" : pageObj.element("input[name='password']") },
confirmPassword : { "required" : true, "equalTo" : po.element("input[name='password']") },
email : "email"
},
messages :

View File

@ -155,27 +155,26 @@ String loginUrl = request.getContextPath() + "/login";
</div>
</div>
<%@ include file="include/page_js_obj.jsp" %>
<%@ include file="include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
//需要先渲染按钮,不然对话框尺寸不合适,出现滚动条
$.initButtons(pageObj.element());
$.initButtons(po.element());
pageObj.form = pageObj.element("#${pageId}-form");
pageObj.element("#viewResetPasswordAdminReqHistoryLink").click(function()
po.element("#viewResetPasswordAdminReqHistoryLink").click(function()
{
var options = {};
$.setGridPageHeightOption(options);
pageObj.open("<c:url value='/resetPasswordRequestHistory' />", options);
po.open("<c:url value='/resetPasswordRequestHistory' />", options);
});
pageObj.element("#restartResetPassword").click(function()
po.element("#restartResetPassword").click(function()
{
window.location.href="<c:url value='/resetPassword' />";
});
pageObj.element("#sendCheckCodeButton").click(function()
po.element("#sendCheckCodeButton").click(function()
{
var _this= $(this);
@ -192,10 +191,10 @@ String loginUrl = request.getContextPath() + "/login";
&& (operationMessage.code.indexOf("sendCheckCode.admin.smtpSettingNotSet") > 0
|| operationMessage.code.indexOf("sendCheckCode.admin.MessagingException") > 0))
{
pageObj.checkCodeNotRequired = true;
po.checkCodeNotRequired = true;
}
else
pageObj.checkCodeNotRequired = false;
po.checkCodeNotRequired = false;
},
complete : function()
{
@ -206,13 +205,13 @@ String loginUrl = request.getContextPath() + "/login";
$.validator.addMethod("checkCodeIfRequired", function(value, element, params)
{
if(pageObj.checkCodeNotRequired)
if(po.checkCodeNotRequired)
return true;
else
return (value.length > 0);
},"");
pageObj.form.validate(
po.form().validate(
{
<%if(step.isStep(1)){%>
rules : { username : "required" },
@ -221,7 +220,7 @@ String loginUrl = request.getContextPath() + "/login";
rules : { checkCode : "checkCodeIfRequired" },
messages : { checkCode : "<fmt:message key='validation.required' />" },
<%}else if(step.isStep(3)){%>
rules : { password : "required", confirmPassword : {"required" : true, "equalTo" : pageObj.element("input[name='password']")} },
rules : { password : "required", confirmPassword : {"required" : true, "equalTo" : po.element("input[name='password']")} },
messages : { password : "<fmt:message key='validation.required' />", confirmPassword : {"required" : "<fmt:message key='validation.required' />", "equalTo" : "<fmt:message key='resetPassword.validation.confirmPasswordError' />"} },
<%}%>
errorPlacement : function(error, element)

View File

@ -45,14 +45,14 @@
<%@ include file="include/page_obj_pagination.jsp" %>
<%@ include file="include/page_obj_grid.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.url = function(action)
po.url = function(action)
{
return contextPath + "/resetPasswordRequestHistory/" + action;
};
pageObj.buildTableColumValueOption = function(title, data)
po.buildTableColumValueOption = function(title, data)
{
var option =
{
@ -69,17 +69,17 @@
};
var tableColumns = [
pageObj.buildTableColumValueOption("<fmt:message key='resetPasswordRequestHistory.time' />", "resetPasswordRequest.time"),
pageObj.buildTableColumValueOption("<fmt:message key='resetPasswordRequestHistory.principal' />", "resetPasswordRequest.principal"),
pageObj.buildTableColumValueOption("<fmt:message key='resetPasswordRequestHistory.username' />", "resetPasswordRequest.user.name"),
pageObj.buildTableColumValueOption("<fmt:message key='resetPasswordRequestHistory.effectiveTime' />", "effectiveTime"),
po.buildTableColumValueOption("<fmt:message key='resetPasswordRequestHistory.time' />", "resetPasswordRequest.time"),
po.buildTableColumValueOption("<fmt:message key='resetPasswordRequestHistory.principal' />", "resetPasswordRequest.principal"),
po.buildTableColumValueOption("<fmt:message key='resetPasswordRequestHistory.username' />", "resetPasswordRequest.user.name"),
po.buildTableColumValueOption("<fmt:message key='resetPasswordRequestHistory.effectiveTime' />", "effectiveTime"),
];
pageObj.initPagination();
po.initPagination();
var tableSettings = pageObj.buildDataTableSettingsAjax(tableColumns, pageObj.url("pagingQueryData"));
var tableSettings = po.buildDataTableSettingsAjax(tableColumns, po.url("pagingQueryData"));
tableSettings.order=[[1,"desc"]];
pageObj.initDataTable(tableSettings);
po.initDataTable(tableSettings);
})
(${pageId});
</script>

View File

@ -71,18 +71,18 @@ boolean isPreview = "1".equals(getStringValue(request, "preview"));
<%}%>
</div>
<%@ include file="../include/page_js_obj.jsp" %>
<%@ include file="../include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
pageObj.dbTypeSelect = pageObj.element("select[name='dbType']");
po.dbTypeSelect = function(){ return po.element("select[name='dbType']"); };
pageObj.initUrl = "<c:out value='${url}' />";
po.initUrl = "<c:out value='${url}' />";
$("input:submit, input:button, input:reset, button", pageObj.page).button();
$("input:submit, input:button, input:reset, button", po.page).button();
$.schemaUrlBuilder.clear();
var scriptCode = pageObj.element("#dbUrlBuilderScriptCode").text();
var scriptCode = po.element("#dbUrlBuilderScriptCode").text();
try
{
eval(scriptCode);
@ -96,10 +96,10 @@ boolean isPreview = "1".equals(getStringValue(request, "preview"));
for(var i=0; i<builderInfos.length; i++)
{
var builderInfo = builderInfos[i];
$("<option>").attr("value", builderInfo.dbType).html(builderInfo.dbDesc).appendTo(pageObj.dbTypeSelect);
$("<option>").attr("value", builderInfo.dbType).html(builderInfo.dbDesc).appendTo(po.dbTypeSelect());
}
pageObj.dbTypeSelect.selectmenu(
po.dbTypeSelect().selectmenu(
{
"classes" : { "ui-selectmenu-button" : "schema-build-url-dbtype-select" },
change : function(event, ui)
@ -107,11 +107,11 @@ boolean isPreview = "1".equals(getStringValue(request, "preview"));
var dbType = ui.item.value;
var defaultUrlInfo = $.schemaUrlBuilder.defaultValue(dbType);
pageObj.setFormUrlValue(defaultUrlInfo);
po.setFormUrlValue(defaultUrlInfo);
}
});
pageObj.setFormUrlValue = function(value)
po.setFormUrlValue = function(value)
{
if(!value)
return;
@ -121,17 +121,17 @@ boolean isPreview = "1".equals(getStringValue(request, "preview"));
var inputValue = value[name];
if(inputValue)
pageObj.element("input[name='"+name+"']").val(inputValue);
po.element("input[name='"+name+"']").val(inputValue);
}
};
pageObj.buildFormUrl = function()
po.buildFormUrl = function()
{
var dbType = pageObj.dbTypeSelect.val();
var dbType = po.dbTypeSelect().val();
var value = {};
var inputs = pageObj.element("input[type='text']");
var inputs = po.element("input[type='text']");
for(var i=0; i<inputs.length; i++)
{
var input = $(inputs[i]);
@ -141,16 +141,16 @@ boolean isPreview = "1".equals(getStringValue(request, "preview"));
return $.schemaUrlBuilder.build(dbType, value);
};
pageObj.form.validate(
po.form().validate(
{
submitHandler : function(form)
{
var url = pageObj.buildFormUrl();
var url = po.buildFormUrl();
<%if(isPreview){%>
pageObj.element(".url-preview").text(url);
po.element(".url-preview").text(url);
<%}else{%>
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = true;
@ -158,7 +158,7 @@ boolean isPreview = "1".equals(getStringValue(request, "preview"));
close = (pageParam.setSchemaUrl(url) != false);
if(close)
pageObj.close();
po.close();
<%}%>
return false;
@ -171,22 +171,22 @@ boolean isPreview = "1".equals(getStringValue(request, "preview"));
var initUrlValue = undefined;
if(pageObj.initUrl)
if(po.initUrl)
{
var urlInfo = $.schemaUrlBuilder.extract(pageObj.initUrl);
var urlInfo = $.schemaUrlBuilder.extract(po.initUrl);
if(urlInfo != null)
{
pageObj.dbTypeSelect.val(urlInfo.dbType);
pageObj.dbTypeSelect.selectmenu("refresh");
po.dbTypeSelect().val(urlInfo.dbType);
po.dbTypeSelect().selectmenu("refresh");
initUrlValue = urlInfo.value;
}
}
if(!initUrlValue)
initUrlValue = $.schemaUrlBuilder.defaultValue(pageObj.dbTypeSelect.val());
initUrlValue = $.schemaUrlBuilder.defaultValue(po.dbTypeSelect().val());
pageObj.setFormUrlValue(initUrlValue);
po.setFormUrlValue(initUrlValue);
})
(${pageId});
</script>

View File

@ -118,33 +118,33 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, SchemaContro
</form>
</div>
<%@ include file="../include/page_js_obj.jsp" %>
<%@ include file="../include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
pageObj.driverEntityFormItemValue = pageObj.element("#driverEntityFormItemValue");
pageObj.schemaDriverEntityFormItem = pageObj.element("#schemaDriverEntityFormItem");
pageObj.isDriverEntityEmpty = (pageObj.element("input[name='driverEntity.id']").val() == "");
po.driverEntityFormItemValue = function(){ return this.element("#driverEntityFormItemValue"); };
po.schemaDriverEntityFormItem = function(){ return this.element("#schemaDriverEntityFormItem"); };
po.isDriverEntityEmpty = (po.element("input[name='driverEntity.id']").val() == "");
<%if(!readonly){%>
pageObj.element("#schemaBuildUrlHelp").click(function()
po.element("#schemaBuildUrlHelp").click(function()
{
pageObj.open(contextPath+"/schemaUrlBuilder/buildUrl",
po.open(contextPath+"/schemaUrlBuilder/buildUrl",
{
data : { url : pageObj.element("input[name='url']").val() },
data : { url : po.element("input[name='url']").val() },
width: "60%",
pageParam :
{
"setSchemaUrl" : function(url)
{
pageObj.element("input[name='url']").val(url);
po.element("input[name='url']").val(url);
}
}
});
});
pageObj.element("#driverEntitySelectButton").click(function()
po.element("#driverEntitySelectButton").click(function()
{
var options =
{
@ -152,18 +152,18 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, SchemaContro
{
submit : function(driverEntity)
{
pageObj.element("input[name='driverEntity.id']").val(driverEntity.id);
pageObj.element("#driverEntityText").val(driverEntity.displayText);
po.element("input[name='driverEntity.id']").val(driverEntity.id);
po.element("#driverEntityText").val(driverEntity.displayText);
}
}
};
$.setGridPageHeightOption(options);
pageObj.open(contextPath+"/driverEntity/select", options);
po.open(contextPath+"/driverEntity/select", options);
});
pageObj.element("#driverEntityActionSelect").selectmenu(
po.element("#driverEntityActionSelect").selectmenu(
{
appendTo: pageObj.driverEntityFormItemValue,
appendTo: po.driverEntityFormItemValue(),
classes:
{
"ui-selectmenu-button": "ui-button-icon-only splitbutton-select"
@ -174,15 +174,15 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, SchemaContro
if("del" == action)
{
pageObj.element("#driverEntityId").val("");
pageObj.element("#driverEntityText").val("");
po.element("#driverEntityId").val("");
po.element("#driverEntityText").val("");
}
}
});
pageObj.element("#driverEntityActionGroup").controlgroup();
po.element("#driverEntityActionGroup").controlgroup();
pageObj.form.validate(
po.form().validate(
{
rules :
{
@ -200,7 +200,7 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, SchemaContro
{
success : function()
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = true;
@ -208,7 +208,7 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, SchemaContro
close = (pageParam.afterSave() != false);
if(close)
pageObj.close();
po.close();
}
});
},
@ -219,30 +219,32 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, SchemaContro
});
<%}%>
pageObj.element("input[name='shared']").checkboxradio({icon:false});
pageObj.element(".schema-shared-radios").controlgroup();
po.element("input[name='shared']").checkboxradio({icon:false});
po.element(".schema-shared-radios").controlgroup();
$.initButtons(pageObj.element());
$.initButtons(po.element());
if(pageObj.isDriverEntityEmpty)
pageObj.schemaDriverEntityFormItem.hide();
if(po.isDriverEntityEmpty)
po.schemaDriverEntityFormItem().hide();
<%if(!readonly){%>
$("#schemaAdvancedSet", pageObj.page).button(
$("#schemaAdvancedSet", po.page).button(
{
icon: (pageObj.schemaDriverEntityFormItem.is(":hidden") ? "ui-icon-triangle-1-s" : "ui-icon-triangle-1-n"),
icon: (po.schemaDriverEntityFormItem().is(":hidden") ? "ui-icon-triangle-1-s" : "ui-icon-triangle-1-n"),
showLabel: false
})
.click(function()
{
if(pageObj.schemaDriverEntityFormItem.is(":hidden"))
var item = po.schemaDriverEntityFormItem();
if(item.is(":hidden"))
{
pageObj.schemaDriverEntityFormItem.show();
item.show();
$(this).button("option", "icon", "ui-icon-triangle-1-n");
}
else
{
pageObj.schemaDriverEntityFormItem.hide();
item.hide();
$(this).button("option", "icon", "ui-icon-triangle-1-s");
}
});

View File

@ -63,22 +63,21 @@
</form>
</div>
<%@ include file="include/page_js_obj.jsp" %>
<%@ include file="include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
$.initButtons(pageObj.element());
$.initButtons(po.element());
pageObj.form = pageObj.element("#${pageId}-form");
pageObj.element("#previewScriptCode").click(function()
po.element("#previewScriptCode").click(function()
{
pageObj.open(contextPath+"/schemaUrlBuilder/previewScriptCode",
po.open(contextPath+"/schemaUrlBuilder/previewScriptCode",
{
data : { "scriptCode" : pageObj.element("textarea[name='scriptCode']").val() }
data : { "scriptCode" : po.element("textarea[name='scriptCode']").val() }
});
});
pageObj.form.validate(
po.form().validate(
{
submitHandler : function(form)
{
@ -86,7 +85,7 @@
{
success : function(response)
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = false;
@ -94,7 +93,7 @@
close = (pageParam.afterSave() != false);
if(close)
pageObj.close();
po.close();
}
});
},

View File

@ -100,26 +100,25 @@ boolean isAdd = "saveAdd".equals(formAction);
</form>
</div>
<%@ include file="../include/page_js_obj.jsp" %>
<%@ include file="../include/page_obj_form.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
pageObj.form = pageObj.element("#${pageId}-form");
$.initButtons(pageObj.element());
$.initButtons(po.element());
<%--禁用新建管理员账号功能
pageObj.element("input[name='admin']").checkboxradio({icon:false});
pageObj.element(".user-admin-radios").controlgroup();
po.element("input[name='admin']").checkboxradio({icon:false});
po.element(".user-admin-radios").controlgroup();
--%>
pageObj.url = function(action)
po.url = function(action)
{
return contextPath + "/user/" + action;
};
<%if(!readonly){%>
pageObj.form.validate(
po.form().validate(
{
rules :
{
@ -132,7 +131,7 @@ boolean isAdd = "saveAdd".equals(formAction);
<%if(isAdd){%>
"required" : true,
<%}%>
"equalTo" : pageObj.element("input[name='password']")
"equalTo" : po.element("input[name='password']")
},
email : "email"
},
@ -157,7 +156,7 @@ boolean isAdd = "saveAdd".equals(formAction);
{
success : function()
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = true;
@ -165,7 +164,7 @@ boolean isAdd = "saveAdd".equals(formAction);
close = (pageParam.afterSave() != false);
if(close)
pageObj.close();
po.close();
}
});
},

View File

@ -60,44 +60,44 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, AbstractCo
<%@ include file="../include/page_obj_searchform_js.jsp" %>
<%@ include file="../include/page_obj_grid.jsp" %>
<script type="text/javascript">
(function(pageObj)
(function(po)
{
$.initButtons(pageObj.element(".operation"));
$.initButtons(po.element(".operation"));
pageObj.url = function(action)
po.url = function(action)
{
return contextPath + "/user/" + action;
};
<%if(!selectonly){%>
pageObj.element("input[name=addButton]").click(function()
po.element("input[name=addButton]").click(function()
{
pageObj.open(pageObj.url("add"),
po.open(po.url("add"),
{
pageParam :
{
afterSave : function()
{
pageObj.refresh();
po.refresh();
}
}
});
});
pageObj.element("input[name=editButton]").click(function()
po.element("input[name=editButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var data = {"id" : row.id};
pageObj.open(pageObj.url("edit"),
po.open(po.url("edit"),
{
data : data,
pageParam :
{
afterSave : function()
{
pageObj.refresh();
po.refresh();
}
}
});
@ -105,13 +105,13 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, AbstractCo
});
<%}%>
pageObj.element("input[name=viewButton]").click(function()
po.element("input[name=viewButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var data = {"id" : row.id};
pageObj.open(pageObj.url("view"),
po.open(po.url("view"),
{
data : data
});
@ -119,20 +119,20 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, AbstractCo
});
<%if(!selectonly){%>
pageObj.element("input[name=deleteButton]").click(
po.element("input[name=deleteButton]").click(
function()
{
pageObj.executeOnSelects(function(rows)
po.executeOnSelects(function(rows)
{
pageObj.confirm("<fmt:message key='user.confirmDelete' />",
po.confirm("<fmt:message key='user.confirmDelete' />",
{
"confirm" : function()
{
var data = $.getPropertyParamString(rows, "id");
$.post(pageObj.url("delete"), data, function()
$.post(po.url("delete"), data, function()
{
pageObj.refresh();
po.refresh();
});
}
});
@ -140,11 +140,11 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, AbstractCo
});
<%}%>
pageObj.element("input[name=confirmButton]").click(function()
po.element("input[name=confirmButton]").click(function()
{
pageObj.executeOnSelect(function(row)
po.executeOnSelect(function(row)
{
var pageParam = pageObj.pageParam();
var pageParam = po.pageParam();
var close = (pageParam && pageParam.submit ? pageParam.submit(row) : undefined);
@ -153,11 +153,11 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, AbstractCo
close = true;
if(close)
pageObj.close();
po.close();
});
});
pageObj.buildTableColumValueOption = function(title, data, hidden)
po.buildTableColumValueOption = function(title, data, hidden)
{
var option =
{
@ -183,15 +183,15 @@ boolean selectonly = ("true".equalsIgnoreCase(getStringValue(request, AbstractCo
};
var tableColumns = [
pageObj.buildTableColumValueOption("<fmt:message key='user.user.id' />", "id", true),
pageObj.buildTableColumValueOption("<fmt:message key='user.name' />", "name"),
pageObj.buildTableColumValueOption("<fmt:message key='user.realName' />", "realName"),
pageObj.buildTableColumValueOption("<fmt:message key='user.email' />", "email"),
pageObj.buildTableColumValueOption("<fmt:message key='user.admin' />", "admin"),
pageObj.buildTableColumValueOption("<fmt:message key='user.createTime' />", "createTime")
po.buildTableColumValueOption("<fmt:message key='user.user.id' />", "id", true),
po.buildTableColumValueOption("<fmt:message key='user.name' />", "name"),
po.buildTableColumValueOption("<fmt:message key='user.realName' />", "realName"),
po.buildTableColumValueOption("<fmt:message key='user.email' />", "email"),
po.buildTableColumValueOption("<fmt:message key='user.admin' />", "admin"),
po.buildTableColumValueOption("<fmt:message key='user.createTime' />", "createTime")
];
var tableSettings = pageObj.buildDataTableSettingsAjax(tableColumns, pageObj.url("queryData"));
pageObj.initDataTable(tableSettings);
var tableSettings = po.buildDataTableSettingsAjax(tableColumns, po.url("queryData"));
po.initDataTable(tableSettings);
})
(${pageId});
</script>

View File

@ -1045,6 +1045,9 @@ table.dataTable tbody tr td.cell-modified .cell-midified-tip.ui-state-error{
padding-left: 2em;
padding-right: 2em;
}
.page-form-schemaUrlBuilder form .form-content .form-item .form-item-value textarea{
vertical-align: top;
}
.page-form-schemaUrlBuilder form .form-content .form-item .form-item-value textarea.script-code-textarea{
height: 22em;
}