<!--后台代码-->
accessKey.action.m
<?xml version="1.0" encoding="utf-8"?>
<model xmlns="http://www.justep.com/model">
<action name="accessKey" global="false" procedure="accessKeyProcedure">
<label language="zh_CN">快捷键配置读取</label>
<public type="String" required="true" name="userId"/>
</action>
<action name="updateAccessKey" global="false" procedure="updateAccessKeyProcedure">
<label language="zh_CN">更新快捷键设置</label>
<public type="Integer" required="true" name="arrowKeyStatus"/>
<public type="Integer" required="true" name="ctrlKeyStatus"/>
<public type="Integer" required="true" name="enterKeyStatus"/>
</action>
</model>
accessKey.procedure.m
<?xml version="1.0" encoding="utf-8"?>
<model xmlns="http://www.justep.com/model" xmlns:m="http://www.justep.com/model">
<procedure name="accessKeyProcedure" code-model="/MIS/Common/logic/code" code="Message.accessKey">
<parameter name="userId" type="String"/>
</procedure>
<procedure name="updateAccessKeyProcedure" code-model="/MIS/Common/logic/code" code="Message.updateAccessKey">
<parameter name="arrowKeyStatus" type="Integer"/>
<parameter name="ctrlKeyStatus" type="Integer"/>
<parameter name="enterKeyStatus" type="Integer"/>
</procedure>
</model>
Message.java
import java.math.*;
import java.sql.*;
import java.util.*;
import org.dom4j.*;
import com.justep.system.data.*;
import com.justep.system.opm.*;
import com.justep.system.context.ContextHelper;
import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable;
public class Message {
public static String accessKey(String userId) {
Connection conn = null;
Statement stm = null;
ResultSet rs = null;
String str = "";
if(userId == null|| userId =="" ) userId=ContextHelper.getPerson().getID();
try {
conn = com.justep.model.ModelUtils.getConnection("/MIS/Common/data");
ContextHelper.getTransaction().begin(conn);
stm = conn.createStatement();
rs = stm.executeQuery("select ArrowKeyStatus,CtrlKeyStatus,EnterKeyStatus from A_Config_AccessKeySettings where UserId='" + userId + "'");
if (rs.next()) {
str += rs.getString("ArrowKeyStatus") + "|";
str += rs.getString("CtrlKeyStatus") + "|";
str += rs.getString("EnterKeyStatus") ;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
stm.close();
rs.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return str;
}
public static void updateAccessKey( Integer arrowKeyStatus, Integer ctrlKeyStatus, Integer enterKeyStatus) {
Connection conn = null;
Statement stm = null;
ResultSet rs = null;
String userId = ContextHelper.getPerson().getID();
try {
conn = com.justep.model.ModelUtils.getConnection("/MIS/Common/data");
ContextHelper.getTransaction().begin(conn);
stm = conn.createStatement();
rs = stm.executeQuery("select ArrowKeyStatus,CtrlKeyStatus,EnterKeyStatus from A_Config_AccessKeySettings where UserId='" + userId + "'");
if (!rs.next()) {
stm.executeUpdate("insert into A_Config_AccessKeySettings values(NEWID(),'0','" + userId + "','" + arrowKeyStatus + "','"
+ ctrlKeyStatus + "','" + enterKeyStatus + "')");
} else {
stm.executeUpdate("UPDATE A_Config_AccessKeySettings SET ArrowKeyStatus = '" + arrowKeyStatus + "',CtrlKeyStatus = '" + ctrlKeyStatus
+ "',EnterKeyStatus='" + enterKeyStatus + "' WHERE UserId = '" + userId + "'");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
stm.close();
rs.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
accessKeyProcess.process.m
<?xml version="1.0" encoding="utf-8"?>
<model xmlns="http://www.justep.com/model">
<process name="accessKeyProcess" kind="SYSTEM">
<label language="zh_CN">快捷键设置</label>
<static-activity name="mainActivity">
<label language="zh_CN">快捷键设置</label>
<has-action action="accessKey" access-permission="public"/>
<has-action action="updateAccessKey" access-permission="public"/>
</static-activity>
<has-action action="accessKey" access-permission="public"/>
<has-action action="updateAccessKey" access-permission="public"/>
</process>
</model>
<!--前台调用-->
<div id="settings_changePassword_inner" class="settings_content_inner">
<fieldset id="settings_general_password">
<legend>设置快捷键</legend>
<div class="change_password_left">
<div id="ctrlcut">
<span style="width:60px;">使用ctrl键 </span>
<span style="width:60px;margin-left:10px">
<input id="shortcuts1" type="radio" name="ctrlradio" value="1">启用
</input>
<input id="shortcuts2" type="radio" name="ctrlradio" value="0">停用
</input>
</span>
</div>
<div id="direction">
<span style="width:60px;">使用方向键</span>
<span style="width:60px;margin-left:5px">
<input id="shortcuts3" type="radio" name="directtionradio"
value="1">启用</input>
<input id="shortcuts4" type="radio" name="directtionradio"
value="0">停用</input>
</span>
</div>
<div>
<span style="width:60px;">使用enter键</span>
<span style="width:60px;">
<input id="shortcuts5" type="radio" name="enterradio" value="1">启用
</input>
<input id="shortcuts6" type="radio" name="enterradio" value="0">停用
</input>
</span>
</div>
</div>
<div class="change_password_right" id="descChangePasswordRule">
</div>
<div style="clear:left;padding:10px 0 0 80px;width:250px;">
<input type="button" id="submitBtn" value="提 交" style="width:60px"
onClick="if(typeof(setShortcuts)=='function') setShortcuts();" />
</div>
</fieldset>
<script type="text/javascript" >
function getRadioValue(radioName) {
var radios=document.getElementsByName(radioName);
var len=radios.length;
for(var i= 0 ;i< len ; i++ ){
if(radios[i].checked==true){
return radios[i].value;
}
return 0;
}
}
function setShortcuts(){
var VCtrl=getRadioValue("ctrlradio");
var VDirection = getRadioValue("directtionradio");
var VEnter = getRadioValue("enterradio");
var param = new justep.Request.ActionParam();
param.setInteger("arrowKeyStatus", VDirection);
param.setInteger("ctrlKeyStatus",VCtrl);
param.setInteger("enterKeyStatus",VEnter);
justep.Request.sendBizRequest("/MIS/Common/process/accessKey/accessKeyProcess","mainActivity","updateAccessKey",param);
alert('提交快捷键设置后,使用快捷键的功能需重新打开或刷新页面设置将生效!');
}
function getShortcuts(){
var param = new justep.Request.ActionParam();
param.setString("userId",justep.Context.getCurrentPersonID());
var result = justep.Request.sendBizRequest("/MIS/Common/process/accessKey/accessKeyProcess","mainActivity","accessKey",param );
var ar = justep.Request.getData(result.responseXML).text.split("|");
if(ar.length>0){
setRadioChecked("directtionradio",ar[0]);
setRadioChecked("ctrlradio",ar[1]);
setRadioChecked("enterradio",ar[2]);
}
}
function setRadioChecked(radioName,rvalue){
var radios=document.getElementsByName(radioName);
var len=radios.length;
for(var i= 0;i<len;i++){
if(radios[i].value==rvalue) radios[i].checked=true;
}
}
</script>
</div>