This commit is contained in:
shimingxy 2019-06-18 22:22:58 +08:00
parent 83cbc2ae7f
commit 94806a2fc4
1317 changed files with 79419 additions and 123349 deletions

View File

@ -263,7 +263,6 @@ public abstract class AbstractAuthenticationRealm{
navigation.setpName(rs.getString("PNAME"));
navigation.setxPath(rs.getString("XPATH"));
navigation.setHasChild(rs.getString("HASCHILD"));
navigation.setSortOrder(rs.getInt("SORTORDER"));
navigation.setVisible(rs.getInt("VISIBLE"));
return navigation;
}

View File

@ -36,7 +36,8 @@ public class LoginAppsHistory extends JpaBaseDomain {
@Column
private String loginTime;
String startDate;
String endDate;
/**
*
@ -172,6 +173,26 @@ public class LoginAppsHistory extends JpaBaseDomain {
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/

View File

@ -3,6 +3,9 @@ package org.maxkey.domain;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.apache.mybatis.jpa.persistence.JpaBaseDomain;
@ -19,6 +22,10 @@ public class LoginHistory extends JpaBaseDomain implements Serializable{
*
*/
private static final long serialVersionUID = -1321470643357719383L;
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO,generator="uuid")
String id;
@Column
String sessionId;
@Column
@ -50,269 +57,165 @@ public class LoginHistory extends JpaBaseDomain implements Serializable{
@Column
String logoutTime;
String startDate;
String endDate;
public LoginHistory() {
super();
}
/**
* @return the uid
*/
public String getUid() {
return uid;
public String getId() {
return id;
}
/**
* @param uid the uid to set
*/
public void setUid(String uid) {
this.uid = uid;
public void setId(String id) {
this.id = id;
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the displayName
*/
public String getDisplayName() {
return displayName;
}
/**
* @param displayName the displayName to set
*/
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
/**
* @return the sourceIp
*/
public String getSourceIp() {
return sourceIp;
}
/**
* @param sourceIp the sourceIp to set
*/
public void setSourceIp(String sourceIp) {
this.sourceIp = sourceIp;
}
/**
* @return the loginType
*/
public String getLoginType() {
return loginType;
}
/**
* @param loginType the loginType to set
*/
public void setLoginType(String loginType) {
this.loginType = loginType;
}
/**
* @return the message
*/
public String getMessage() {
return message;
}
/**
* @param message the message to set
*/
public void setMessage(String message) {
this.message = message;
}
/**
* @return the loginTime
*/
public String getLoginTime() {
return loginTime;
}
/**
* @param loginTime the loginTime to set
*/
public void setLoginTime(String loginTime) {
this.loginTime = loginTime;
}
/**
* @return the code
*/
public String getCode() {
return code;
}
/**
* @param code the code to set
*/
public void setCode(String code) {
this.code = code;
}
/**
* @return the provider
*/
public String getProvider() {
return provider;
}
/**
* @param provider the provider to set
*/
public void setProvider(String provider) {
this.provider = provider;
}
/**
* @return the logoutTime
*/
public String getLogoutTime() {
return logoutTime;
}
/**
* @param logoutTime the logoutTime to set
*/
public void setLogoutTime(String logoutTime) {
this.logoutTime = logoutTime;
}
/**
* @return the sessionId
*/
public String getSessionId() {
return sessionId;
}
/**
* @param sessionId the sessionId to set
*/
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public String getLoginType() {
return loginType;
}
public void setLoginType(String loginType) {
this.loginType = loginType;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getProvider() {
return provider;
}
public void setProvider(String provider) {
this.provider = provider;
}
public String getSourceIp() {
return sourceIp;
}
public void setSourceIp(String sourceIp) {
this.sourceIp = sourceIp;
}
/**
* @return the browser
*/
public String getBrowser() {
return browser;
}
/**
* @param browser the browser to set
*/
public void setBrowser(String browser) {
this.browser = browser;
}
/**
* @return the platform
*/
public String getPlatform() {
return platform;
}
/**
* @param platform the platform to set
*/
public void setPlatform(String platform) {
this.platform = platform;
}
/**
* @return the application
*/
public String getApplication() {
return application;
}
/**
* @param application the application to set
*/
public void setApplication(String application) {
this.application = application;
}
/**
* @return the loginUrl
*/
public String getLoginUrl() {
return loginUrl;
}
/**
* @param loginUrl the loginUrl to set
*/
public void setLoginUrl(String loginUrl) {
this.loginUrl = loginUrl;
}
public String getLoginTime() {
return loginTime;
}
public void setLoginTime(String loginTime) {
this.loginTime = loginTime;
}
public String getLogoutTime() {
return logoutTime;
}
public void setLogoutTime(String logoutTime) {
this.logoutTime = logoutTime;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "LoginHistory [sessionId=" + sessionId + ", uid=" + uid
+ ", username=" + username + ", loginType=" + loginType
+ ", message=" + message + ", code=" + code + ", provider="
+ provider + ", sourceIp="
+ sourceIp + ", browser=" + browser + ", platform=" + platform
+ ", application=" + application + ", loginUrl=" + loginUrl
+ ", loginTime=" + loginTime + ", logoutTime=" + logoutTime
+ "]";
return "LoginHistory [id=" + id + ", sessionId=" + sessionId + ", uid=" + uid + ", username=" + username
+ ", displayName=" + displayName + ", loginType=" + loginType + ", message=" + message + ", code="
+ code + ", provider=" + provider + ", sourceIp=" + sourceIp + ", browser=" + browser + ", platform="
+ platform + ", application=" + application + ", loginUrl=" + loginUrl + ", loginTime=" + loginTime
+ ", logoutTime=" + logoutTime + ", startDate=" + startDate + ", endDate=" + endDate + "]";
}
}

View File

@ -24,6 +24,12 @@ public class Logs extends JpaBaseDomain implements Serializable {
String username;
String code;
String createdBy;
String createdDate;
String modifiedBy;
String modifiedDate;
String startDate;
String endDate;
public Logs() {
super();
@ -114,6 +120,62 @@ public class Logs extends JpaBaseDomain implements Serializable {
this.code = code;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public String getCreatedDate() {
return createdDate;
}
public void setCreatedDate(String createdDate) {
this.createdDate = createdDate;
}
public String getModifiedBy() {
return modifiedBy;
}
public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
public String getModifiedDate() {
return modifiedDate;
}
public void setModifiedDate(String modifiedDate) {
this.modifiedDate = modifiedDate;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
}

View File

@ -30,7 +30,6 @@ public class Navigations extends JpaBaseDomain implements java.io.Serializable
private String pName;
private String xPath;
private String hasChild;
private int sortOrder;
private int visible;
@ -126,13 +125,6 @@ public class Navigations extends JpaBaseDomain implements java.io.Serializable
this.hasChild = hasChild;
}
public int getSortOrder() {
return sortOrder;
}
public void setSortOrder(int sortOrder) {
this.sortOrder = sortOrder;
}
public int getVisible() {
return visible;

View File

@ -223,14 +223,6 @@ public class Applications extends JpaBaseDomain implements Serializable{
public int getSortOrder() {
return sortOrder;
}
public void setSortOrder(int sortOrder) {
this.sortOrder = sortOrder;
}
/**
* @param secret the secret to set
*/

View File

@ -10,12 +10,6 @@ import org.maxkey.domain.UserInfo;
*/
public interface MyProfileMapper extends IJpaBaseMapper<UserInfo>{
public int updateBasic(UserInfo userInfo);
public int updateHome(UserInfo userInfo);
public int updateExtra(UserInfo userInfo);
public int updateCompany(UserInfo userInfo);
public int updateProfile(UserInfo userInfo);
}

View File

@ -30,27 +30,9 @@ public class MyProfileService extends JpaBaseService<UserInfo> {
}
public int updateBasic(UserInfo userInfo){
public int updateProfile(UserInfo userInfo){
return getMapper().updateBasic(userInfo);
return getMapper().updateProfile(userInfo);
}
public int updateCompany(UserInfo userInfo){
return getMapper().updateCompany(userInfo);
}
public int updateHome(UserInfo userInfo){
return getMapper().updateHome(userInfo);
}
public int updateExtra(UserInfo userInfo){
return getMapper().updateExtra(userInfo);
}
}

View File

@ -33,7 +33,7 @@
</sql>
<select id="grid" parameterType="LoginAppsHistory" resultType="LoginAppsHistory">
<select id="queryPageResults" parameterType="LoginAppsHistory" resultType="LoginAppsHistory">
SELECT
ID,
SESSIONID,
@ -52,12 +52,4 @@
</select>
<select id="count" resultType="java.lang.Integer">
SELECT COUNT(*) FROM LOGIN_APPS_HISTORY
WHERE 1 = 1
<include refid="dao_where_statement"/>
</select>
</mapper>

View File

@ -38,7 +38,7 @@
<select id="grid" parameterType="LoginHistory" resultType="LoginHistory">
<select id="queryPageResults" parameterType="LoginHistory" resultType="LoginHistory">
SELECT
ID,
SESSIONID,
@ -63,14 +63,6 @@
ORDER BY LOGINTIME DESC
</select>
<select id="count" resultType="java.lang.Integer">
SELECT COUNT(*) FROM LOGIN_HISTORY
WHERE 1 = 1
<include refid="dao_where_statement"/>
</select>
<update id="logout" parameterType="java.lang.String" >
UPDATE LOGIN_HISTORY SET
LOGOUTTIME = current_timestamp()

View File

@ -31,8 +31,7 @@
</sql>
<select id="grid" parameterType="Logs" resultType="Logs">
<select id="queryPageResults" parameterType="Logs" resultType="Logs">
SELECT
ID,
TID,
@ -53,10 +52,4 @@
ORDER BY CREATEDDATE DESC
</select>
<select id="count" resultType="java.lang.Integer">
SELECT COUNT(*) FROM LOGS
WHERE 1 = 1
<include refid="where_statement"/>
</select>
</mapper>

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.maxkey.dao.persistence.MyProfileMapper">
<update id="updateBasic" parameterType="UserInfo" >
<update id="updateProfile" parameterType="UserInfo" >
UPDATE USERINFO SET
DISPLAYNAME = #{displayName},
NICKNAME = #{nickName},
@ -28,16 +28,6 @@
TIMEZONE = #{timeZone},
PREFERREDLANGUAGE= #{preferredLanguage},
MODIFIEDBY = #{modifiedBy},
MODIFIEDDATE = current_timestamp
WHERE
ID = #{id}
</update>
<update id="updateCompany" parameterType="UserInfo" >
UPDATE USERINFO SET
WINDOWSACCOUNT = #{windowsAccount},
WORKCOUNTRY = #{workCountry},
@ -50,14 +40,6 @@
WORKPOSTALCODE = #{workPostalCode},
WORKFAX = #{workFax},
MODIFIEDBY = #{modifiedBy},
MODIFIEDDATE = current_timestamp
WHERE
ID = #{id}
</update>
<update id="updateHome" parameterType="UserInfo" >
UPDATE USERINFO SET
HOMECOUNTRY = #{homeCountry},
HOMEREGION = #{homeRegion},
HOMELOCALITY = #{homeLocality},
@ -68,27 +50,6 @@
HOMEPOSTALCODE = #{homePostalCode},
HOMEFAX = #{homeFax},
QQ = #{qq},
WEIXIN = #{weixin},
SINAWEIBO = #{sinaweibo},
YIXIN = #{yixin},
FACEBOOK = #{facebook},
SKYPE = #{skype},
MSN = #{msn},
GTALK = #{gtalk},
YAHOO = #{yahoo},
LINE = #{line},
AIM = #{aim},
DEFINEIM = #{defineIm},
MODIFIEDBY = #{modifiedBy},
MODIFIEDDATE = current_timestamp
WHERE
ID = #{id}
</update>
<update id="updateExtra" parameterType="UserInfo" >
UPDATE USERINFO SET
EXTRAATTRIBUTE = #{extraAttribute},
MODIFIEDBY = #{modifiedBy},
@ -97,4 +58,5 @@
ID = #{id}
</update>
</mapper>

View File

@ -1,11 +1,11 @@
global.access.application=MaxKey\u5E94\u7528\u5B89\u5168\u7CFB\u7EDF
global.application=MaxKey\u5E94\u7528\u5B89\u5168\u7CFB\u7EDF
global.change.language=\u8BED\u97F3\u9009\u62E9
global.change.language.en=\u82F1\u6587
global.change.language.zh=\u4E2D\u6587
global.text.welcome=\u6B22\u8FCE\u60A8
global.text.manage=\u7BA1\u7406
global.text.copyright=\u7248\u6743\u6240\u6709
global.text.copyright.content=shimingxy@163.com
global.text.copyright.content=Copyright 2018-2019 shimingxy@163.com Licensed under the Apache License, Version 2.0
global.text.logout=\u9000\u51FA
global.logout.tip=\u6CE8\u9500\u6210\u529F
global.logout.text.suffix=\u91CD\u65B0\u767B\u5F55
@ -26,7 +26,12 @@ common.grid.loadtext=\u6B63\u5728\u52A0\u8F7D...
common.grid.loadnodata=\u6CA1\u6709\u67E5\u8BE2\u5230\u7B26\u5408\u6570\u636E
common.submit.hintText=\u60A8\u786E\u5B9A\u8981\u8FDB\u884C\u6B64\u9879\u64CD\u4F5C\u5417?
common.submit.errorText=\u6267\u884C\u64CD\u4F5C\u5931\u8D25
common.text.startdate=\u5F00\u59CB\u65F6\u95F4
common.text.enddate=\u7ED3\u675F\u65F6\u95F4
common.text.createdby=\u521B\u5EFA\u4EBA
common.text.createddate=\u521B\u5EFA\u65F6\u95F4
common.text.modifiedby=\u4FEE\u6539\u4EBA
common.text.modifieddate=\u4FEE\u6539\u65F6\u95F4
login.text.login.twofactor.obtain.valid=\u91CD\u65B0\u83B7\u53D6
login.text.login.twofactor.obtain=\u83B7\u53D6\u52A8\u6001\u9A8C\u8BC1\u7801
@ -63,6 +68,63 @@ userinfo.displayName=\u7528\u6237\u540D
userinfo.username=\u767B\u5F55\u8D26\u53F7
userinfo.email=\u90AE\u7BB1\u5730\u5740
userinfo.mobile=\u624B\u673A\u53F7\u7801
userinfo.userType=\u7528\u6237\u7C7B\u578B
userinfo.picture=\u5934\u50CF
userinfo.familyName=\u59D3
userinfo.givenName=\u540D
userinfo.middleName=\u4E2D\u95F4\u540D
userinfo.nickName=\u6635\u79F0
userinfo.gender=\u6027\u522B
userinfo.gender.female=\u5973
userinfo.gender.male=\u7537
userinfo.married=\u5A5A\u59FB\u72B6\u6001
userinfo.married.unknown=\u672A\u77E5
userinfo.married.single=\u5355\u8EAB
userinfo.married.married=\u5DF2\u5A5A
userinfo.married.divorce=\u79BB\u5F02
userinfo.married.widowed=\u4E27\u5076
userinfo.website=\u4e2a\u4eba\u4e3b\u9875
userinfo.idtype=\u8bc1\u4ef6\u7c7b\u578b
userinfo.idtype.unknown=\u672A\u77E5
userinfo.idtype.idcard=\u8EAB\u4EFD\u8BC1
userinfo.idtype.passport=\u62A4\u7167
userinfo.idtype.studentcard=\u5B66\u751F\u8BC1
userinfo.idtype.militarycard=\u519B\u4EBA\u8BC1
userinfo.idCardNo=\u8BC1\u4EF6\u53F7\u7801
userinfo.startWorkDate=\u5DE5\u4F5C\u5F00\u59CB\u65F6\u95F4
userinfo.preferredLanguage=\u8BED\u97F3\u504F\u597D
userinfo.timeZone=\u65F6\u533A
userinfo.locale=\u8BED\u8A00\u9009\u62E9
userinfo.employeeNumber=\u5458\u5DE5\u7F16\u53F7
userinfo.windowsAccount=AD\u57DF\u8D26\u53F7
userinfo.organization=\u6240\u5C5E\u673A\u6784
userinfo.division=\u5206\u652F\u673A\u6784
userinfo.department=\u90E8\u95E8
userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3
userinfo.jobTitle=\u804C\u4F4D
userinfo.jobLevel=\u7EA7\u522B
userinfo.manager=\u4E0A\u7EA7\u7ECF\u7406
userinfo.assistant=\u52A9\u7406
userinfo.entryDate=\u5165\u804C\u65F6\u95F4
userinfo.quitDate=\u79BB\u804C\u65F6\u95F4
userinfo.workCountry=\u56FD\u5BB6
userinfo.workRegion=\u7701
userinfo.workLocality=\u57CE\u5E02
userinfo.workStreetAddress=\u5730\u5740
userinfo.workPostalCode=\u90AE\u7F16
userinfo.workFax=\u4F20\u771F
userinfo.workPhoneNumber=\u5DE5\u4F5C\u7535\u8BDD
userinfo.workEmail=\u5DE5\u4F5C\u90AE\u4EF6
userinfo.homeCountry=\u56FD\u5BB6
userinfo.homeRegion=\u7701
userinfo.homeLocality=\u57CE\u5E02
userinfo.homeStreetAddress=\u5BB6\u5EAD\u5730\u5740
userinfo.homePostalCode=\u5BB6\u5EAD\u90AE\u7F16
userinfo.homeFax=\u5BB6\u5EAD\u4F20\u771F
userinfo.homePhoneNumber=\u5BB6\u5EAD\u7535\u8BDD
userinfo.homeEmail=\u5BB6\u5EAD\u90AE\u7BB1
userinfo.authnType=\u767B\u5F55\u65B9\u5F0F
userinfo.authnType.authnType.1=\u666E\u901A\u767B\u5F55
userinfo.authnType.authnType.2=\u624B\u673A\u4EE4\u724C
@ -105,4 +167,39 @@ button.text.action=\u8BBF\u95EE
button.text.visit=\u8BBF\u95EE
button.text.save=\u4FDD\u5B58
button.text.select=\u8BF7\u9009\u62E9
button.text.search=\u67E5\u8BE2
button.text.expandsearch=\u5C55\u5F00
button.text.collapsesearch=\u6536\u7F29
log.loginhistory.id=\u7F16\u53F7
log.loginhistory.sessionId=\u4F1A\u8BDD
log.loginhistory.username=\u767B\u5F55\u540D
log.loginhistory.displayName=\u7528\u6237\u540D\u79F0
log.loginhistory.provider=\u63D0\u4F9B\u5546
log.loginhistory.message=\u72B6\u6001
log.loginhistory.loginType=\u767B\u5F55\u65B9\u5F0F
log.loginhistory.sourceIp=\u8BBF\u95EE\u5730\u5740
log.loginhistory.browser=\u6D4F\u89C8\u5668
log.loginhistory.loginTime=\u767B\u5F55\u65F6\u95F4
log.loginhistory.logoutTime=\u9000\u51FA\u65F6\u95F4
log.loginhistory.platform=\u5E73\u53F0
log.loginhistory.application=\u5E94\u7528
log.loginhistory.loginUrl=\u767B\u5F55\u5730\u5740
log.loginhistory.code=\u4EE3\u7801
log.loginhistory.rpUserInfo=\u7B2C\u4E09\u65B9
log.loginappshistory.id=\u7F16\u53F7
log.loginappshistory.sessionId=\u4F1A\u8BDD
log.loginappshistory.uid=\u7528\u6237\u7F16\u53F7
log.loginappshistory.username=\u767B\u5F55\u540D
log.loginappshistory.displayName=\u7528\u6237\u540D
log.loginappshistory.appId=\u5E94\u7528\u7F16\u53F7
log.loginappshistory.appName=\u5E94\u7528\u540D\u79F0
log.loginappshistory.loginTime=\u767B\u5F55\u65F6\u95F4
log.operate.servicename=\u670D\u52A1
log.operate.message=\u6D88\u606F
log.operate.content=\u5185\u5BB9
log.operate.messageType=\u6D88\u606F\u7C7B\u578B
log.operate.operateType=\u64CD\u4F5C\u7C7B\u578B
log.operate.username=\u64CD\u4F5C\u4EBA

View File

@ -1,16 +1,11 @@
package org.maxkey.web.contorller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import org.maxkey.constants.OPERATEMESSAGE;
import org.maxkey.dao.service.MyProfileService;
import org.maxkey.dao.service.UserInfoService;
import org.maxkey.domain.UserInfo;
import org.maxkey.util.JsonUtils;
import org.maxkey.util.StringUtils;
import org.maxkey.web.WebContext;
import org.maxkey.web.message.Message;
@ -20,12 +15,10 @@ import org.maxkey.web.message.OperateType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@ -41,157 +34,56 @@ public class ProfileController {
private MyProfileService myProfileService;
@RequestMapping(value={"/forwardBasic"})
@RequestMapping(value={"/myProfile"})
public ModelAndView forwardBasic(){
ModelAndView modelAndView=new ModelAndView("profile/basic");
ModelAndView modelAndView=new ModelAndView("profile/myProfile");
UserInfo userInfo=new UserInfo();
userInfo.setId(WebContext.getUserInfo().getId());
userInfo=userInfoService.load(userInfo);
WebContext.getSession().setAttribute(userInfo.getId(), userInfo.getPicture());
modelAndView.addObject("model", userInfo);
return modelAndView;
}
@RequestMapping(value={"/forwardHome"})
public ModelAndView forwardHome(){
ModelAndView modelAndView=new ModelAndView("profile/home");
UserInfo userInfo=new UserInfo();
userInfo.setId(WebContext.getUserInfo().getId());
userInfo=userInfoService.load(userInfo);
modelAndView.addObject("model", userInfo);
return modelAndView;
}
@RequestMapping(value={"/forwardCompany"})
public ModelAndView forwardCompany(){
ModelAndView modelAndView=new ModelAndView("profile/company");
UserInfo userInfo=new UserInfo();
userInfo.setId(WebContext.getUserInfo().getId());
userInfo=userInfoService.load(userInfo);
modelAndView.addObject("model", userInfo);
return modelAndView;
}
@RequestMapping(value={"/forwardExtra"})
public ModelAndView forwardUpdateUsers(){
ModelAndView modelAndView=new ModelAndView("profile/extra");
UserInfo userInfo=new UserInfo();
userInfo.setId(WebContext.getUserInfo().getId());
userInfo=userInfoService.load(userInfo);
HashMap<String,Object>extraAttributeMap=new HashMap<String,Object>();
extraAttributeMap=(HashMap<String,Object>)JsonUtils.json2Object(userInfo.getExtraAttribute(),extraAttributeMap);
modelAndView.addObject("extraAttributeMap", extraAttributeMap);
_logger.info("extraAttributeMap : "+extraAttributeMap);
// HashMap<String,Object>extraAttributeMap=new HashMap<String,Object>();
// extraAttributeMap=(HashMap<String,Object>)JsonUtils.json2Object(userInfo.getExtraAttribute(),extraAttributeMap);
// modelAndView.addObject("extraAttributeMap", extraAttributeMap);
// _logger.info("extraAttributeMap : "+extraAttributeMap);
modelAndView.addObject("model", userInfo);
return modelAndView;
}
/**
* 修改用户
* @param userInfo
* @param result
* @return
*/
@RequestMapping(value="/update/basic")
@RequestMapping(value="/update/myProfile")
public ModelAndView updatebasic(@Valid @ModelAttribute("userInfo")UserInfo userInfo,BindingResult result) {
_logger.debug(userInfo.toString());
userInfo.setNameZHShortSpell(StringUtils.hanYu2Pinyin(userInfo.getDisplayName(), true));
userInfo.setNameZHSpell(StringUtils.hanYu2Pinyin(userInfo.getDisplayName(), false));
if(myProfileService.updateBasic(userInfo)>0) {
//TODO syncProvisioningService.updateUser(userInfo);
// if(userInfo.getExtraAttributeValue()!=null){
// String []extraAttributeLabel=userInfo.getExtraAttributeName().split(",");
// String []extraAttributeValue=userInfo.getExtraAttributeValue().split(",");
// Map<String,String> extraAttributeMap=new HashMap<String,String> ();
// for(int i=0;i<extraAttributeLabel.length;i++){
// extraAttributeMap.put(extraAttributeLabel[i], extraAttributeValue[i]);
// }
// String extraAttribute=JsonUtils.object2Json(extraAttributeMap);
// userInfo.setExtraAttribute(extraAttribute);
// }
if(myProfileService.updateProfile(userInfo)>0) {
new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),userInfo,MessageType.success,OperateType.add,MessageScope.DB);
}else{
new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_ERROR),MessageType.error);
}
return WebContext.forward("forwardBasic");
return WebContext.forward("forwardMyProfile");
}
/**
* 修改用户
* @param userInfo
* @param result
* @return
*/
@ResponseBody
@RequestMapping(value="/update/company")
public Message updateCompany(@Valid @ModelAttribute("userInfo")UserInfo userInfo,BindingResult result) {
_logger.debug(userInfo.toString());
if(result.hasErrors()){
//return new Message(WebContext.getValidErrorText(),result);
}
if(myProfileService.updateCompany(userInfo)>0) {
//TODO syncProvisioningService.updateUser(userInfo);
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),userInfo,MessageType.success,OperateType.add,MessageScope.DB);
}
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_ERROR),MessageType.error);
}
/**
* 修改用户
* @param userInfo
* @param result
* @return
*/
@ResponseBody
@RequestMapping(value="/update/home")
public Message updateHome(@Valid @ModelAttribute("userInfo")UserInfo userInfo,BindingResult result) {
_logger.debug(userInfo.toString());
if(result.hasErrors()){
//return new Message(WebContext.getValidErrorText(),result);
}
if(myProfileService.updateHome(userInfo)>0) {
//TODO syncProvisioningService.updateUser(userInfo);
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),userInfo,MessageType.success,OperateType.add,MessageScope.DB);
}
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_ERROR),MessageType.error);
}
/**
* 修改用户
* @param userInfo
* @param result
* @return
*/
@ResponseBody
@RequestMapping(value="/update/extra")
public Message updateExtra(@Valid @ModelAttribute("userInfo")UserInfo userInfo,BindingResult result) {
_logger.debug(userInfo.toString());
if(result.hasErrors()){
//return new Message(WebContext.getValidErrorText(),result);
}
if(userInfo.getExtraAttributeValue()!=null){
String []extraAttributeLabel=userInfo.getExtraAttributeName().split(",");
String []extraAttributeValue=userInfo.getExtraAttributeValue().split(",");
Map<String,String> extraAttributeMap=new HashMap<String,String> ();
for(int i=0;i<extraAttributeLabel.length;i++){
extraAttributeMap.put(extraAttributeLabel[i], extraAttributeValue[i]);
}
String extraAttribute=JsonUtils.object2Json(extraAttributeMap);
userInfo.setExtraAttribute(extraAttribute);
}
if(myProfileService.updateExtra(userInfo)>0) {
//TODO syncProvisioningService.updateUser(userInfo);
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),userInfo,MessageType.success,OperateType.add,MessageScope.DB);
}
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_ERROR),MessageType.error);
}
}

View File

@ -76,37 +76,6 @@ public class IndexEndpoint {
}
@RequestMapping(value={"/layout/top"})
public ModelAndView top() {
_logger.debug("IndexEndpoint /layout/top.");
return new ModelAndView("layout/top");
}
@RequestMapping(value={"/layout/nologintop"})
public ModelAndView nologintop() {
_logger.debug("IndexEndpoint /layout/nologintop.");
return new ModelAndView("layout/nologintop");
}
@RequestMapping(value={"/layout/left"})
public ModelAndView left() {
_logger.debug("IndexEndpoint /layout/left.");
return new ModelAndView("layout/left");
}
@RequestMapping(value={"/layout/main"})
public ModelAndView main() {
_logger.debug("IndexEndpoint /layout/main.");
return new ModelAndView("layout/main");
}
@RequestMapping(value={"/layout/bottom"})
public ModelAndView bottom() {
_logger.debug("IndexEndpoint /layout/bottom.");
return new ModelAndView("layout/bottom");
}
@RequestMapping(value={"/accessdeny"})
public ModelAndView accessdeny() {
_logger.debug("exception/accessdeny.");

View File

@ -95,7 +95,7 @@ public class LoginEndpoint {
@RequestParam(value=WsFederationConstants.WRESULT,required=false) String wsFederationWResult) {
_logger.debug("LoginController /login.");
ModelAndView modelAndView = new ModelAndView();
ModelAndView modelAndView = new ModelAndView("login");
boolean isAuthenticated= WebContext.isAuthenticated();
//for RemeberMe login
@ -150,28 +150,24 @@ public class LoginEndpoint {
}else {
WebContext.setAttribute(WebConstants.SPRING_PROCESS_SAVED_REQUEST, firstSavedRequest);
}
if(isAuthenticated){
modelAndView.setViewName("index");
}else{
modelAndView.setViewName("login");
return WebContext.redirect("/forwardindex");
}
return modelAndView;
}
@RequestMapping(value={"/logon.do"})
@ResponseBody
public ModelAndView logon(@ModelAttribute("authentication") BasicAuthentication authentication) {
ModelAndView modelAndView = new ModelAndView();
boolean isAuthenticated=false;
authenticationProvider.authenticate(authentication);
if(isAuthenticated){
modelAndView.setViewName("index");
if(WebContext.isAuthenticated()){
return WebContext.redirect("/forwardindex");
}else{
modelAndView.setViewName("login");
return WebContext.redirect("/login");
}
return modelAndView;
}

View File

@ -47,7 +47,7 @@ public class IpAddressFilter implements Filter {
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
HttpSession session = httpServletRequest.getSession();
String ipAddress=WebContext.getRequestIpAddress(httpServletRequest);
_logger.debug("IpAddress "+ipAddress);
_logger.trace("IpAddress "+ipAddress);
//黑名单地址
if(IpAddressCache.ipAddressBlackListMap.containsKey(ipAddress)){
IpAddrFilter ipAddrFilter=IpAddressCache.ipAddressBlackListMap.get(ipAddress);

View File

@ -42,7 +42,7 @@ public class PermissionAdapter extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {
_logger.debug("PermissionAdapter preHandle");
//加载定义的功能菜单地址
if(navigationsMap==null){
/*if(navigationsMap==null){
List<Navigations> navigationsList=((NavigationsService)WebContext.getBean("navigationsService")).query(null);
navigationsMap=new ConcurrentHashMap<String ,String >();
for(Navigations nav : navigationsList){

View File

@ -1,11 +1,11 @@
global.access.application=MaxKey\u5E94\u7528\u5B89\u5168\u7CFB\u7EDF
global.application=MaxKey\u5E94\u7528\u5B89\u5168\u7CFB\u7EDF
global.change.language=\u8BED\u97F3\u9009\u62E9
global.change.language.en=\u82F1\u6587
global.change.language.zh=\u4E2D\u6587
global.text.welcome=\u6B22\u8FCE\u60A8
global.text.manage=\u7BA1\u7406
global.text.copyright=\u7248\u6743\u6240\u6709
global.text.copyright.content=shimingxy@163.com
global.text.copyright.content=Copyright 2018-2019 shimingxy@163.com Licensed under the Apache License, Version 2.0
global.text.logout=\u9000\u51FA
global.logout.tip=\u6CE8\u9500\u6210\u529F
global.logout.text.suffix=\u91CD\u65B0\u767B\u5F55
@ -26,7 +26,12 @@ common.grid.loadtext=\u6B63\u5728\u52A0\u8F7D...
common.grid.loadnodata=\u6CA1\u6709\u67E5\u8BE2\u5230\u7B26\u5408\u6570\u636E
common.submit.hintText=\u60A8\u786E\u5B9A\u8981\u8FDB\u884C\u6B64\u9879\u64CD\u4F5C\u5417?
common.submit.errorText=\u6267\u884C\u64CD\u4F5C\u5931\u8D25
common.text.startdate=\u5F00\u59CB\u65F6\u95F4
common.text.enddate=\u7ED3\u675F\u65F6\u95F4
common.text.createdby=\u521B\u5EFA\u4EBA
common.text.createddate=\u521B\u5EFA\u65F6\u95F4
common.text.modifiedby=\u4FEE\u6539\u4EBA
common.text.modifieddate=\u4FEE\u6539\u65F6\u95F4
login.text.login.twofactor.obtain.valid=\u91CD\u65B0\u83B7\u53D6
login.text.login.twofactor.obtain=\u83B7\u53D6\u52A8\u6001\u9A8C\u8BC1\u7801
@ -63,6 +68,63 @@ userinfo.displayName=\u7528\u6237\u540D
userinfo.username=\u767B\u5F55\u8D26\u53F7
userinfo.email=\u90AE\u7BB1\u5730\u5740
userinfo.mobile=\u624B\u673A\u53F7\u7801
userinfo.userType=\u7528\u6237\u7C7B\u578B
userinfo.picture=\u5934\u50CF
userinfo.familyName=\u59D3
userinfo.givenName=\u540D
userinfo.middleName=\u4E2D\u95F4\u540D
userinfo.nickName=\u6635\u79F0
userinfo.gender=\u6027\u522B
userinfo.gender.female=\u5973
userinfo.gender.male=\u7537
userinfo.married=\u5A5A\u59FB\u72B6\u6001
userinfo.married.unknown=\u672A\u77E5
userinfo.married.single=\u5355\u8EAB
userinfo.married.married=\u5DF2\u5A5A
userinfo.married.divorce=\u79BB\u5F02
userinfo.married.widowed=\u4E27\u5076
userinfo.website=\u4e2a\u4eba\u4e3b\u9875
userinfo.idtype=\u8bc1\u4ef6\u7c7b\u578b
userinfo.idtype.unknown=\u672A\u77E5
userinfo.idtype.idcard=\u8EAB\u4EFD\u8BC1
userinfo.idtype.passport=\u62A4\u7167
userinfo.idtype.studentcard=\u5B66\u751F\u8BC1
userinfo.idtype.militarycard=\u519B\u4EBA\u8BC1
userinfo.idCardNo=\u8BC1\u4EF6\u53F7\u7801
userinfo.startWorkDate=\u5DE5\u4F5C\u5F00\u59CB\u65F6\u95F4
userinfo.preferredLanguage=\u8BED\u97F3\u504F\u597D
userinfo.timeZone=\u65F6\u533A
userinfo.locale=\u8BED\u8A00\u9009\u62E9
userinfo.employeeNumber=\u5458\u5DE5\u7F16\u53F7
userinfo.windowsAccount=AD\u57DF\u8D26\u53F7
userinfo.organization=\u6240\u5C5E\u673A\u6784
userinfo.division=\u5206\u652F\u673A\u6784
userinfo.department=\u90E8\u95E8
userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3
userinfo.jobTitle=\u804C\u4F4D
userinfo.jobLevel=\u7EA7\u522B
userinfo.manager=\u4E0A\u7EA7\u7ECF\u7406
userinfo.assistant=\u52A9\u7406
userinfo.entryDate=\u5165\u804C\u65F6\u95F4
userinfo.quitDate=\u79BB\u804C\u65F6\u95F4
userinfo.workCountry=\u56FD\u5BB6
userinfo.workRegion=\u7701
userinfo.workLocality=\u57CE\u5E02
userinfo.workStreetAddress=\u5730\u5740
userinfo.workPostalCode=\u90AE\u7F16
userinfo.workFax=\u4F20\u771F
userinfo.workPhoneNumber=\u5DE5\u4F5C\u7535\u8BDD
userinfo.workEmail=\u5DE5\u4F5C\u90AE\u4EF6
userinfo.homeCountry=\u56FD\u5BB6
userinfo.homeRegion=\u7701
userinfo.homeLocality=\u57CE\u5E02
userinfo.homeStreetAddress=\u5BB6\u5EAD\u5730\u5740
userinfo.homePostalCode=\u5BB6\u5EAD\u90AE\u7F16
userinfo.homeFax=\u5BB6\u5EAD\u4F20\u771F
userinfo.homePhoneNumber=\u5BB6\u5EAD\u7535\u8BDD
userinfo.homeEmail=\u5BB6\u5EAD\u90AE\u7BB1
userinfo.authnType=\u767B\u5F55\u65B9\u5F0F
userinfo.authnType.authnType.1=\u666E\u901A\u767B\u5F55
userinfo.authnType.authnType.2=\u624B\u673A\u4EE4\u724C
@ -105,4 +167,39 @@ button.text.action=\u8BBF\u95EE
button.text.visit=\u8BBF\u95EE
button.text.save=\u4FDD\u5B58
button.text.select=\u8BF7\u9009\u62E9
button.text.search=\u67E5\u8BE2
button.text.expandsearch=\u5C55\u5F00
button.text.collapsesearch=\u6536\u7F29
log.loginhistory.id=\u7F16\u53F7
log.loginhistory.sessionId=\u4F1A\u8BDD
log.loginhistory.username=\u767B\u5F55\u540D
log.loginhistory.displayName=\u7528\u6237\u540D\u79F0
log.loginhistory.provider=\u63D0\u4F9B\u5546
log.loginhistory.message=\u72B6\u6001
log.loginhistory.loginType=\u767B\u5F55\u65B9\u5F0F
log.loginhistory.sourceIp=\u8BBF\u95EE\u5730\u5740
log.loginhistory.browser=\u6D4F\u89C8\u5668
log.loginhistory.loginTime=\u767B\u5F55\u65F6\u95F4
log.loginhistory.logoutTime=\u9000\u51FA\u65F6\u95F4
log.loginhistory.platform=\u5E73\u53F0
log.loginhistory.application=\u5E94\u7528
log.loginhistory.loginUrl=\u767B\u5F55\u5730\u5740
log.loginhistory.code=\u4EE3\u7801
log.loginhistory.rpUserInfo=\u7B2C\u4E09\u65B9
log.loginappshistory.id=\u7F16\u53F7
log.loginappshistory.sessionId=\u4F1A\u8BDD
log.loginappshistory.uid=\u7528\u6237\u7F16\u53F7
log.loginappshistory.username=\u767B\u5F55\u540D
log.loginappshistory.displayName=\u7528\u6237\u540D
log.loginappshistory.appId=\u5E94\u7528\u7F16\u53F7
log.loginappshistory.appName=\u5E94\u7528\u540D\u79F0
log.loginappshistory.loginTime=\u767B\u5F55\u65F6\u95F4
log.operate.servicename=\u670D\u52A1
log.operate.message=\u6D88\u606F
log.operate.content=\u5185\u5BB9
log.operate.messageType=\u6D88\u606F\u7C7B\u578B
log.operate.operateType=\u64CD\u4F5C\u7C7B\u578B
log.operate.username=\u64CD\u4F5C\u4EBA

View File

@ -1,10 +0,0 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%-- common css begin --%>
<%-- if browser is not msie 6.0,follow styles over ie 6.0 style --%>
<link type="text/css" rel="stylesheet" href="<s:Base/>/css/base.css"/>
<link type="text/css" rel="stylesheet" href="<s:Base/>/css/menu.css"/>
<link type="text/css" rel="stylesheet" href="<s:Base/>/css/login.css"/>
<link type="text/css" rel="stylesheet" href="<s:Base/>/css/blitzer/jquery-ui-1.10.2.custom.min.css"/>
<%-- common css end --%>

View File

@ -0,0 +1,88 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%-- javascript js begin --%>
<%-- jquery base --%>
<script src ="<s:Base/>/jquery/jquery-3.4.1.min.js" type="text/javascript"></script>
<script src ="<s:Base/>/jquery/popper.min.js" type="text/javascript" ></script>
<%-- bootstrap-4.3.1 --%>
<link href="<s:Base/>/bootstrap-4.3.1/css/bootstrap.min.css" type="text/css" rel="stylesheet" />
<script src ="<s:Base/>/bootstrap-4.3.1/js/bootstrap.min.js" type="text/javascript" ></script>
<%-- metadata --%>
<script src ="<s:Base/>/jquery/jquery.metadata.js" type="text/javascript" ></script>
<%--bootstrap-table-1.14.2--%>
<link href="<s:Base/>/jquery/bootstrap-table-1.14.2/bootstrap-table.css" type="text/css" rel="stylesheet" />
<script src ="<s:Base/>/jquery/bootstrap-table-1.14.2/bootstrap-table.min.js" type="text/javascript" ></script>
<script src ="<s:Base/>/jquery/bootstrap-table-1.14.2/bootstrap-table-locale-all.min.js" type="text/javascript" ></script>
<%-- zTreev 3.5--%>
<link href="<s:Base/>/jquery/zTree-v3.5.40/css/zTreeStyle/zTreeStyle.css" type="text/css" rel="stylesheet"/>
<script src ="<s:Base/>/jquery/zTree-v3.5.40/js/jquery.ztree.core.js" type="text/javascript" ></script>
<script src ="<s:Base/>/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.js" type="text/javascript" ></script>
<%-- artDialog-5.0.4 --%>
<link href="<s:Base/>/jquery/artDialog-5.0.4/skins/platform.css" type="text/css" rel="stylesheet"/>
<script src ="<s:Base/>/jquery/artDialog-5.0.4/jquery.artDialog.min.js" type="text/javascript" ></script>
<script src ="<s:Base/>/jquery/artDialog-5.0.4/artDialog.plugins.min.js" type="text/javascript" ></script>
<%-- datetimepicker-2.5.20 --%>
<link href="<s:Base/>/jquery/datetimepicker-2.5.20/jquery.datetimepicker.css" type="text/css" rel="stylesheet" />
<script src ="<s:Base/>/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.full.js" type="text/javascript" ></script>
<script src ="<s:Base/>/jquery/jquery.cookie.js" type="text/javascript" ></script>
<%-- form --%>
<script src ="<s:Base/>/jquery/jquery.form.js" type="text/javascript" ></script>
<script src ="<s:Base/>/jquery/json2form/json2form.js" type="text/javascript" ></script>
<%-- blockUI --%>
<script src ="<s:Base/>/jquery/jquery.blockUI.js" type="text/javascript" ></script>
<%-- serializeObject --%>
<script src ="<s:Base/>/jquery/jquery.serialize-object.min.js" type="text/javascript" ></script>
<%-- validation --%>
<script src ="<s:Base/>/jquery/jquery-validation-1.11.1/jquery.validate.min.js" type="text/javascript" ></script>
<script src ="<s:Base/>/jquery/jquery-validation-1.11.1/localization/messages_<s:Locale />.js" type="text/javascript" ></script>
<script src ="<s:Base/>/jquery/jsonformatter.js" type="text/javascript" ></script>
<script src ="<s:Base/>/jquery/switchtab/switchtab.js" type="text/javascript" ></script>
<link href="<s:Base/>/jquery/switchtab/switchtab.css" type="text/css" rel="stylesheet" />
<%-- common script start --%>
<script type="text/javascript">
$(function () {
$(".datetimepicker").datetimepicker({format:'Y-m-d H:i',lang:'<s:Locale/>'.substring(0, 2)});
$(".datepicker").datetimepicker({timepicker:false,format:'Y-m-d',lang:'<s:Locale/>'.substring(0, 2)});
$.platform = $.platform || {};
$.platform.messages = $.platform.messages || {};
$.extend($.platform.messages, {
window: {
title : '<s:Locale code="common.window.title" />'
},
alert: {
title : '<s:Locale code="common.alert.title" />',
closeText : '<s:Locale code="common.alert.closeText" />'
},
conform:{
title : '<s:Locale code="common.conform.title" />',
yes : '<s:Locale code="common.conform.yes" />',
no : '<s:Locale code="common.conform.no" />'
},
select:{
alertText : '<s:Locale code="common.select.hintText" />'
},
del:{
conformText : '<s:Locale code="common.delete.hintText" />'
},
grid:{
loadtext : '<s:Locale code="common.grid.loadtext" />',
loadnodata : '<s:Locale code="common.grid.loadnodata" />'
},
submit:{
conformText : '<s:Locale code="common.submit.hintText" />',
errorText : '<s:Locale code="common.submit.errorText" />'
}
});
});
</script>
<%-- common script end --%>
<%-- platform common script --%>
<script src ="<s:Base/>/jquery/platform.common.js" type="text/javascript" ></script>
<%-- common js end --%>
<%-- common css begin --%>
<%-- if browser is not msie 6.0,follow styles over ie 6.0 style --%>
<link type="text/css" rel="stylesheet" href="<s:Base/>/css/base.css"/>
<link type="text/css" rel="stylesheet" href="<s:Base/>/css/menu.css"/>
<link type="text/css" rel="stylesheet" href="<s:Base/>/css/login.css"/>
<%-- common css end --%>

View File

@ -1,84 +0,0 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%-- javascript js begin --%>
<%-- jquery base --%>
<script type="text/javascript" src="<s:Base/>/jquery/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/jquery-ui-1.10.3.custom.min.js"></script>
<%-- metadata --%>
<script type="text/javascript" src="<s:Base/>/jquery/jquery.metadata.js"></script>
<%--free-jqGrid 4.13.4--%>
<link type="text/css" rel="stylesheet" href="<s:Base/>/jquery/jqGrid-4.13.4/css/ui.jqgrid.css"/>
<link type="text/css" rel="stylesheet" href="<s:Base/>/css/grid.css"/>
<script type="text/javascript" src="<s:Base/>/jquery/jqGrid-4.13.4/js/i18n/grid.locale-<s:Locale />.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/jqGrid-4.13.4/js/jquery.jqgrid.src.js"></script>
<%-- zTreev 3.5--%>
<link type="text/css" rel="stylesheet" href="<s:Base/>/jquery/zTree-v3.5.24/css/zTreeStyle/zTreeStyle.css"/>
<script type="text/javascript" src="<s:Base/>/jquery/zTree-v3.5.24/js/jquery.ztree.core.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/zTree-v3.5.24/js/jquery.ztree.excheck.js"></script>
<%-- artDialog-5.0.4 --%>
<link type="text/css" rel="stylesheet" href="<s:Base/>/jquery/artDialog-5.0.4/skins/platform.css" />
<script type="text/javascript" src="<s:Base/>/jquery/artDialog-5.0.4/jquery.artDialog.min.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/artDialog-5.0.4/artDialog.plugins.min.js"></script>
<%-- selecter-2.1.4 --%>
<link type="text/css" rel="stylesheet" href="<s:Base/>/jquery/selecter-3.2.3/jquery.fs.selecter.css" />
<script type="text/javascript" src="<s:Base/>/jquery/selecter-3.2.3/jquery.fs.selecter.js"></script>
<%-- DateTimePicker-2.4.1 --%>
<link type="text/css" rel="stylesheet" href="<s:Base/>/jquery/DateTimePicker-2.4.1/jquery.datetimepicker.css" />
<script type="text/javascript" src="<s:Base/>/jquery/DateTimePicker-2.4.1/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/jquery.cookie.js"></script>
<%-- form --%>
<script type="text/javascript" src="<s:Base/>/jquery/jquery.form.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/json2form/json2form.js"></script>
<%-- blockUI --%>
<script type="text/javascript" src="<s:Base/>/jquery/jquery.blockUI.js"></script>
<%-- serializeObject --%>
<script type="text/javascript" src="<s:Base/>/jquery/jquery.serialize-object.min.js"></script>
<%-- validation --%>
<script type="text/javascript" src="<s:Base/>/jquery/jquery-validation-1.11.1/jquery.validate.min.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/jquery-validation-1.11.1/localization/messages_<s:Locale />.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/jsonformatter.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/switchtab/switchtab.js"></script>
<link type="text/css" rel="stylesheet" href="<s:Base/>/jquery/switchtab/switchtab.css"/>
<%-- common script start --%>
<script type="text/javascript">
$(function () {
$(".datetimepicker").datetimepicker({format:'Y-m-d H:i',lang:'<s:Locale/>'});
$(".datepicker").datetimepicker({timepicker:false,format:'Y-m-d',lang:'<s:Locale/>'});
$.platform = $.platform || {};
$.platform.messages = $.platform.messages || {};
$.extend($.platform.messages, {
window: {
title : '<s:Locale code="common.window.title" />'
},
alert: {
title : '<s:Locale code="common.alert.title" />',
closeText : '<s:Locale code="common.alert.closeText" />'
},
conform:{
title : '<s:Locale code="common.conform.title" />',
yes : '<s:Locale code="common.conform.yes" />',
no : '<s:Locale code="common.conform.no" />'
},
select:{
alertText : '<s:Locale code="common.select.hintText" />'
},
del:{
conformText : '<s:Locale code="common.delete.hintText" />'
},
grid:{
loadtext : '<s:Locale code="common.grid.loadtext" />',
loadnodata : '<s:Locale code="common.grid.loadnodata" />'
},
submit:{
conformText : '<s:Locale code="common.submit.hintText" />',
errorText : '<s:Locale code="common.submit.errorText" />'
}
});
});
</script>
<%-- common script end --%>
<%-- platform common script --%>
<script type="text/javascript" src="<s:Base/>/jquery/platform.common.js"></script>
<%-- common js end --%>

View File

@ -1,6 +1,6 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<title><s:Locale code="global.access.application"/></title>
<title><s:Locale code="global.application"/></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">

View File

@ -6,11 +6,8 @@
<div id="nav_primary" >
<div id="nav_primary" class="menuprimary">
<ul >
<li id="nav_primay_10" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/appList">我的应用</a>
</li>
<li id="nav_primay_11" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/appConfigList">应用配置</a>
<a href="<s:Base/>/appList">我的应用</a>
</li>
<li id="nav_primay_12" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/socialsignon/list">认证关联</a>
@ -25,11 +22,21 @@
</ul>
<ul>
<li id="nav_second_1302" class="nav_second_level">
<a href="<s:Base/>/safe/forward/changeAppLoginPasswod">应用登录密码</a>
<a href="<s:Base/>/safe/forward/changePasswod">密码修改</a>
</li>
</ul>
<ul>
<li id="nav_second_1303" class="nav_second_level">
<a href="<s:Base/>/safe/forward/changeAppLoginPasswod">应用登录密码</a>
</li>
</ul>
<ul>
<li id="nav_second_1304" class="nav_second_level">
<a href="<s:Base/>/appConfigList">应用配置</a>
</li>
</ul>
<ul>
<li id="nav_second_1305" class="nav_second_level">
<a href="<s:Base/>/safe/otp/timebased">时间令牌</a>
</li>
</ul>
@ -37,29 +44,7 @@
</li>
<li id="nav_primay_14" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/profile/forwardBasic">我的资料</a>
<div id="nav_child_1401" class="nav_second_child">
<ul>
<li id="nav_second_1401" class="nav_second_level">
<a href="<s:Base/>/profile/forwardBasic">基本资料</a>
</li>
</ul>
<ul>
<li id="nav_second_1402" class="nav_second_level">
<a href="<s:Base/>/profile/forwardCompany">组织信息</a>
</li>
</ul>
<ul>
<li id="nav_second_1403" class="nav_second_level">
<a href="<s:Base/>/profile/forwardHome">个人资料</a>
</li>
</ul>
<ul>
<li id="nav_second_1404" class="nav_second_level">
<a href="<s:Base/>/profile/forwardExtra">扩展信息</a>
</li>
</ul>
</div>
<a href="<s:Base/>/profile/myProfile">我的资料</a>
</li>
<li id="nav_primay_15" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/logs/loginHistoryList">日志审计</a>

View File

@ -8,7 +8,7 @@
<div class="container">
<div style="float:left;margin-left:20px;margin-top: 5px;"><IMG SRC="<s:Base/>/images/logo.jpg" style="width:55px;heigth:55px"></div>
<div style="margin-top:15px;margin-left:10px;float:left">
<div style="letter-spacing:2px;font-size:28px;font-weight:bolder;"><s:Locale code="global.access.application"/></div>
<div style="letter-spacing:2px;font-size:28px;font-weight:bolder;"><s:Locale code="global.application"/></div>
</div>
<div style="margin-top:30px;margin-right:10px;float:right;">

View File

@ -8,7 +8,7 @@
<div class="container">
<div style="float:left;margin-left:20px;margin-top: 5px;"><IMG SRC="<s:Base/>/images/logo.jpg" style="width:55px;heigth:55px"></div>
<div style="margin-top:15px;margin-left:10px;float:left">
<div style="letter-spacing:2px;font-size:28px;font-weight:bolder;"><s:Locale code="global.access.application"/></div>
<div style="letter-spacing:2px;font-size:28px;font-weight:bolder;"><s:Locale code="global.application"/></div>
</div>
<div style="margin-top:25px;margin-right:10px;float:right;">
@ -43,7 +43,7 @@
</a>
</td>
<td class="ui-widget-header" >
<td id="logout" class="ui-widget-header" >
<a href="<s:Base/>/logout?reLoginUrl=login">
<div style="float:right;" >&nbsp;&nbsp;<s:Locale code="global.text.logout"/>&nbsp;&nbsp;</div>
</a>

View File

@ -8,8 +8,7 @@
<html>
<head>
<jsp:include page="layout/header.jsp"></jsp:include>
<jsp:include page="layout/common.css.jsp"></jsp:include>
<jsp:include page="layout/common.js.jsp"></jsp:include>
<jsp:include page="layout/common.cssjs.jsp"></jsp:include>
<title><s:Locale code="global.logout.tip"/></title>
<script type="text/javascript">
$(function(){

View File

@ -10,19 +10,11 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%if(WebContext.getUserInfo() != null) {%>
<authz:authorize access="hasRole('ROLE_USER')"><script type="text/javascript">
window.top.location.href="<s:Base />/forwardindex";
</script></authz:authorize>
<script type="text/javascript">window.top.location.href="<s:Base />/forwardindex";
<%}%>
<head>
<jsp:include page="layout/header.jsp"></jsp:include>
<jsp:include page="layout/common.css.jsp"></jsp:include>
<jsp:include page="layout/common.js.jsp"></jsp:include>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<title><s:Locale code="global.access.application"/></title>
<link rel="shortcut icon" type="image/x-icon" href="<s:Base />/images/favicon.ico"/>
<base href="<s:BasePath/>"/>
<jsp:include page="layout/common.cssjs.jsp"></jsp:include>
<c:if test="${'true'==isKerberos}">
<s:Browser version="MSIE">
<script type="text/javascript">
@ -217,16 +209,16 @@ $(function(){
<%}%>
<tr>
<td><s:Locale code="login.text.username"/></td>
<td><input type='text' id='j_username' name='j_username' value="admin" tabindex="1"/></td>
<td><input class="form-control" type='text' id='j_username' name='j_username' value="admin" tabindex="1"/></td>
</tr>
<tr>
<td><s:Locale code="login.text.password"/></td>
<td><input type='password' id='j_password' name='j_password' value="admin" tabindex="2"/></td>
<td><input class="form-control" type='password' id='j_password' name='j_password' value="admin" tabindex="2"/></td>
</tr>
<c:if test="${'true'==isCaptcha}">
<tr>
<td><s:Locale code="login.text.captcha"/></td>
<td><input type='text' id="j_captcha" name="j_captcha" tabindex="3" value="" /><img id="j_captchaimg" src="<c:url value="/captcha"/>" /></td>
<td><input class="form-control" type='text' id="j_captcha" name="j_captcha" tabindex="3" value="" /><img id="j_captchaimg" src="<c:url value="/captcha"/>" /></td>
</tr>
</c:if>
@ -249,16 +241,11 @@ $(function(){
</c:if>
<tr style="display:none">
<td>sessionid</td>
<td><input type='text' id="sessionid" name="j_sessionid" value="${sessionid}" /></td>
</tr>
<tr style="display:none">
<td>jwtToken</td>
<td><input type='text' id="jwtToken" name="j_jwt_token" value="${jwtToken}" /></td>
<td><input class="form-control" type='text' id="sessionid" name="j_sessionid" value="${sessionid}" /></td>
</tr>
<tr >
<td colspan="2"><input id="loginSubmit" type="button" tabindex="5" class="button primary login_button" value="<s:Locale code="login.button.login"/>"/></td>
<td colspan="2"><input id="loginSubmit" type="button" tabindex="5" style="width: 230px;" class="button btn btn-lg btn-primary btn-block" value="<s:Locale code="login.button.login"/>"/></td>
</tr>
</table>
@ -279,24 +266,24 @@ $(function(){
<%} %>
<tr>
<td><s:Locale code="login.text.username"/></td>
<td><input type='text' id='tfa_j_username' name='j_username' value="" tabindex="1"/></td>
<td><input class="form-control" type='text' id='tfa_j_username' name='j_username' value="" tabindex="1"/></td>
</tr>
<tr>
<td><s:Locale code="login.text.password"/></td>
<td><input type='password' id='tfa_j_password' name='j_password' value="" tabindex="2" /></td>
<td><input class="form-control" type='password' id='tfa_j_password' name='j_password' value="" tabindex="2" /></td>
</tr>
<c:if test="${'true'==isOneTimePwd}">
<tr>
<td><s:Locale code="login.text.currenttime"/></td>
<td>
<input readonly type='text' id="currentTime" name="currentTime" tabindex="3" value="" />
<input class="form-control" readonly type='text' id="currentTime" name="currentTime" tabindex="3" value="" />
</td>
</tr>
<tr>
<td><s:Locale code="login.text.captcha"/></td>
<td>
<input type='text' id="tfa_j_otp_captcha" name="j_otp_captcha" tabindex="3" value="" />
<input id="tfa_j_otp_captcha_button" type="button" tabindex="5" class="button" value="获取动态验证码"/>
<input class="form-control" type='text' id="tfa_j_otp_captcha" name="j_otp_captcha" tabindex="3" value="" />
<input class="form-control" id="tfa_j_otp_captcha_button" type="button" tabindex="5" class="button" value="获取动态验证码"/>
</td>
</tr>
@ -326,16 +313,11 @@ $(function(){
</c:if>
<tr style="display:none">
<td>sessionid</td>
<td><input type='text' id="tfa_sessionid" name="j_sessionid" value="${sessionid}" /></td>
</tr>
<tr style="display:none">
<td>jwtToken</td>
<td><input type='text' id="jwtToken" name="j_jwt_token" value="${jwtToken}" /></td>
<td><input class="form-control" type='text' id="tfa_sessionid" name="j_sessionid" value="${sessionid}" /></td>
</tr>
<tr >
<td colspan="2"><input id="tfa_loginSubmit" type="button" tabindex="5" class="button primary login_button" value="<s:Locale code="login.button.login"/>"/></td>
<td colspan="2"><input id="tfa_loginSubmit" type="button" style="width: 230px;" tabindex="5" class="button btn btn-lg btn-primary btn-block" value="<s:Locale code="login.button.login"/>"/></td>
</tr>
</table>

View File

@ -4,14 +4,18 @@
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
<script type="text/javascript" src="<s:Base/>/jquery/jsonformatter.js"></script>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<script type="text/javascript" src="<s:Base/>/resources/My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/jsonformatter.js"></script>
<script type="text/javascript">
</script>
<div class="container">
<div id="tool_box">
<table class="datatable">
<tr>
@ -20,9 +24,9 @@
</td>
<td width="375px">
<form id="basic_search_form">
<input name="appName" type="text" style ="width:150px">
<input class="button primary" id="searchBtn" type="button" size="50" value="<s:Locale code="button.text.search"/>">
<input class="button" id="advancedSearchExpandBtn" type="button" size="50" value="<s:Locale code="button.text.expandsearch"/>" expandValue="<s:Locale code="button.text.expandsearch"/>" collapseValue="<s:Locale code="button.text.collapsesearch"/>">
<input class="form-control" name="appName" type="text" style ="width:150px;float:left;">
<input class="button btn btn-primary mr-3" id="searchBtn" type="button" size="50" value="<s:Locale code="button.text.search"/>">
<input class="button btn btn-secondary" id="advancedSearchExpandBtn" type="button" size="50" value="<s:Locale code="button.text.expandsearch"/>" expandValue="<s:Locale code="button.text.expandsearch"/>" collapseValue="<s:Locale code="button.text.collapsesearch"/>">
</form>
</td>
<td colspan="2">
@ -40,11 +44,11 @@
<tr>
<td width="120px"><s:Locale code="common.text.startdate"/></td>
<td width="360px">
<input class="datetimepicker" name="startDate" type="text" >
<input class="form-control datetimepicker" name="startDate" type="text" >
</td>
<td width="120px"><s:Locale code="common.text.enddate"/></td>
<td width="360px">
<input style="width:70%" class="datetimepicker" type="text" id="endDate" name="endDate" title="" value=""/>
<input class="form-control datetimepicker" style="width:70%" type="text" id="endDate" name="endDate" title="" value=""/>
</td>
</tr>
</table>
@ -52,14 +56,36 @@
</div>
<div class="mainwrap" id="main">
<s:Grid id="list" url="/logs/loginAppsHistory/grid" multiselect="false">
<s:Column width="0" field="id" title="id" hidden="true"/>
<s:Column width="20" field="sessionId" title="loginhistory.sessionId"/>
<s:Column width="10" field="uid" title="loginhistory.uid" hidden="true"/>
<s:Column width="15" field="username" title="userinfo.username"/>
<s:Column width="15" field="displayName" title="userinfo.displayName"/>
<s:Column width="10" field="appId" title="apps.appId" hidden="true"/>
<s:Column width="10" field="appName" title="apps.name"/>
<s:Column width="15" field="loginTime" title="loginhistory.logintime" />
</s:Grid>
<table data-url="<s:Base />/logs/loginAppsHistory/grid"
id="datagrid"
data-toggle="table"
data-classes="table table-bordered table-hover table-striped"
data-pagination="true"
data-total-field="records"
data-page-list="[10, 25, 50, 100]"
data-search="false"
data-locale="zh-CN"
data-query-params="dataGridQueryParams"
data-query-params-type="pageSize"
data-side-pagination="server">
<thead>
<tr>
<th data-sortable="true" data-field="id" data-visible="false"><s:Locale code="log.loginappshistory.id" /></th>
<th data-field="sessionId" ><s:Locale code="log.loginappshistory.sessionId" /></th>
<th data-field="uid" data-visible="false"><s:Locale code="log.loginappshistory.uid" /></th>
<th data-field="username" ><s:Locale code="log.loginappshistory.username" /></th>
<th data-field="displayName" ><s:Locale code="log.loginappshistory.displayName" /></th>
<th data-field="appId" data-visible="false"><s:Locale code="log.loginappshistory.appId" /></th>
<th data-field="appName" ><s:Locale code="log.loginappshistory.appName" /></th>
<th data-field="loginTime" ><s:Locale code="log.loginappshistory.loginTime" /></th>
</tr>
</thead>
</table>
</div>
</div>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
</body>
</html>

View File

@ -4,26 +4,28 @@
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<script type="text/javascript" src="<s:Base/>/resources/My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript" src="<s:Base/>/jquery/jsonformatter.js"></script>
<script type="text/javascript">
</script>
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
<script type="text/javascript" src="<s:Base/>/jquery/jsonformatter.js"></script>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<div class="container">
<div id="tool_box">
<table class="datatable">
<table class="table table-bordered">
<tr>
<td width="120px">
<s:Locale code="loginhistory.sourceip"/>:
<s:Locale code="log.loginhistory.sourceIp"/>
</td>
<td width="375px">
<form id="basic_search_form">
<input name="sourceIp" type="text" style ="width:150px">
<input class="button primary" id="searchBtn" type="button" size="50" value="<s:Locale code="button.text.search"/>">
<input class="button" id="advancedSearchExpandBtn" type="button" size="50" value="<s:Locale code="button.text.expandsearch"/>" expandValue="<s:Locale code="button.text.expandsearch"/>" collapseValue="<s:Locale code="button.text.collapsesearch"/>">
<input class="form-control" name="sourceIp" type="text" style ="width:150px;float:left;">
<input class="button btn btn-primary mr-3" id="searchBtn" type="button" size="50" value="<s:Locale code="button.text.search"/>">
<input class="button btn btn-secondary" id="advancedSearchExpandBtn" type="button" size="50" value="<s:Locale code="button.text.expandsearch"/>" expandValue="<s:Locale code="button.text.expandsearch"/>" collapseValue="<s:Locale code="button.text.collapsesearch"/>">
</form>
</td>
<td colspan="2">
@ -37,15 +39,15 @@
<div id="advanced_search">
<form id="advanced_search_form">
<table class="datatable">
<table class="table table-bordered">
<tr>
<td width="120px"><s:Locale code="common.text.startdate"/></td>
<td width="360px">
<input class="datetimepicker" name="startDate" type="text" >
<input class="datetimepicker form-control" name="startDate" type="text" >
</td>
<td width="120px"><s:Locale code="common.text.enddate"/></td>
<td width="360px">
<input style="width:70%" class="datetimepicker" type="text" id="endDate" name="endDate" title="" value=""/>
<input style="width:70%" class="datetimepicker form-control" type="text" id="endDate" name="endDate" title="" value=""/>
</td>
</tr>
</table>
@ -53,23 +55,45 @@
</div>
<div class="mainwrap" id="main">
<s:Grid id="list" url="/logs/loginHistory/grid" multiselect="false">
<s:Column width="0" field="id" title="id" hidden="true"/>
<s:Column width="20" field="sessionId" title="sessionId" hidden="true"/>
<s:Column width="15" field="username" title="loginhistory.username"/>
<s:Column width="15" field="displayName" title="userinfo.displayName"/>
<s:Column width="10" field="provider" title="loginhistory.provider"/>
<s:Column width="10" field="message" title="loginhistory.message"/>
<s:Column width="10" field="loginType" title="loginhistory.logintype" />
<s:Column width="10" field="sourceIp" title="loginhistory.sourceip" />
<s:Column width="15" field="browser" title="loginhistory.browser"/>
<s:Column width="15" field="loginTime" title="loginhistory.logintime" />
<s:Column width="15" field="logoutTime" title="loginhistory.logouttime" />
<s:Column width="50" field="platform" title="loginhistory.platform" hidden="true"/>
<s:Column width="100" field="application" title="loginhistory.application" hidden="true"/>
<s:Column width="100" field="loginUrl" title="loginhistory.loginurl" hidden="true"/>
<s:Column width="100" field="code" title="code" hidden="true"/>
<s:Column width="100" field="rpUserInfo" title="rpUserInfo" hidden="true"/>
</s:Grid>
<table data-url="<s:Base />/logs/loginHistory/grid"
id="datagrid"
data-toggle="table"
data-classes="table table-bordered table-hover table-striped"
data-pagination="true"
data-total-field="records"
data-page-list="[10, 25, 50, 100]"
data-search="false"
data-locale="zh-CN"
data-query-params="dataGridQueryParams"
data-query-params-type="pageSize"
data-side-pagination="server">
<thead>
<tr>
<th data-sortable="true" data-field="id" data-visible="false"><s:Locale code="log.loginhistory.id"/></th>
<th data-field="sessionId"><s:Locale code="log.loginhistory.sessionId"/></th>
<th data-field="username"><s:Locale code="log.loginhistory.username"/></th>
<th data-field="displayName"><s:Locale code="log.loginhistory.displayName"/></th>
<th data-field="provider"><s:Locale code="log.loginhistory.provider"/></th>
<th data-field="message"><s:Locale code="log.loginhistory.message"/></th>
<th data-field="loginType"><s:Locale code="log.loginhistory.loginType"/></th>
<th data-field="sourceIp"><s:Locale code="log.loginhistory.sourceIp"/></th>
<th data-field="browser"><s:Locale code="log.loginhistory.browser"/></th>
<th data-field="loginTime"><s:Locale code="log.loginhistory.loginTime"/></th>
<th data-field="logoutTime"><s:Locale code="log.loginhistory.logoutTime"/></th>
<th data-field="platform"><s:Locale code="log.loginhistory.platform"/></th>
<th data-field="application"><s:Locale code="log.loginhistory.application"/></th>
<th data-field="loginUrl"><s:Locale code="log.loginhistory.loginUrl"/></th>
<th data-field="code"><s:Locale code="log.loginhistory.code"/></th>
<th data-field="rpUserInfo"><s:Locale code="log.loginhistory.rpUserInfo"/></th>
</tr>
</thead>
</table>
</div>
</div>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
</body>
</html>

View File

@ -4,9 +4,13 @@
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<script type="text/javascript">
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
<script type="text/javascript" src="<s:Base/>/jquery/jsonformatter.js"></script>
<script type="text/javascript">
function viewformatter (value, options, rData){
return "<a href='javascript:void(0);' selid='"+rData["id"]+"' class='viewJsonObject' title='view more' >view more</a>";
}
@ -27,23 +31,49 @@
});
});
</script>
</script>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<div class="container">
<div class="mainwrap" id="main">
<s:Grid id="list" url="/logs/grid" multiselect="false">
<s:Column width="0" field="id" title="id" hidden="true"/>
<s:Column width="100" field="serviceName" title="logs.servicename"/>
<s:Column width="100" field="message" title="logs.message"/>
<s:Column width="100" field="view" title="logs.content" formatter="viewformatter"/>
<s:Column width="100" field="messageType" title="logs.messagetype"/>
<s:Column width="100" field="operateType" title="logs.operatetype" />
<s:Column width="100" field="username" title="userinfo.username" />
<s:Column width="100" field="tname" title="company.shortname" />
<s:Column width="0" field="createdBy" title="common.text.createdby" hidden="true"/>
<s:Column width="0" field="createdDate" title="common.text.createddate" hidden="true"/>
<s:Column width="0" field="modifiedBy" title="common.text.modifiedby" hidden="true"/>
<s:Column width="0" field="modifiedDate" title="common.text.modifieddate" hidden="true"/>
</s:Grid>
<table data-url="<s:Base />/logs/grid"
id="datagrid"
data-toggle="table"
data-classes="table table-bordered table-hover table-striped"
data-pagination="true"
data-total-field="records"
data-page-list="[10, 25, 50, 100]"
data-search="false"
data-locale="zh-CN"
data-query-params="dataGridQueryParams"
data-query-params-type="pageSize"
data-side-pagination="server">
<thead>
<tr>
<th data-sortable="true" data-field="id" data-visible="false">id</th>
<th data-field="serviceName"><s:Locale code="log.operate.servicename"/></th>
<th data-field="message"><s:Locale code="log.operate.message"/></th>
<th data-field="view"><s:Locale code="log.operate.content"/></th>
<th data-field="messageType"><s:Locale code="log.operate.messageType"/></th>
<th data-field="operateType"><s:Locale code="log.operate.operateType"/></th>
<th data-field="username"><s:Locale code="log.operate.username"/></th>
<th data-field="createdBy"><s:Locale code="common.text.createdby"/></th>
<th data-field="createdDate"><s:Locale code="common.text.createddate"/></th>
<th data-field="modifiedBy"><s:Locale code="common.text.modifiedby"/></th>
<th data-field="modifiedDate"><s:Locale code="common.text.modifieddate"/></th>
</tr>
</thead>
</table>
</div>
</div>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
</body>
</html>

View File

@ -10,15 +10,14 @@
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<div class="container">
<%if(WebContext.getUserInfo().getGridList()==0) {%>
<table class="datatable">
<table class="table">
<c:forEach begin="1" end="${(fn:length(appList)+4)/5}" var="num">
<tr>
<c:forEach items="${appList}" var="app" begin="${(num-1)*5}" end="${5*num-1}">
@ -47,7 +46,7 @@
</c:forEach>
</table>
<%}else{%>
<table class="datatable">
<table class="table">
<tr>
<td>
<s:Locale code="apps.icon"/>
@ -98,6 +97,7 @@
</c:forEach>
</table>
<%} %>
</div>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>

View File

@ -7,73 +7,68 @@
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<table width="100%">
<tr>
<td>
<table class="datatable" >
<div class="container">
<table class="table table-bordered" style="width:100%;">
<tbody>
<tr>
<td colspan="2"><s:Locale code="login.totp.title" /></td>
</tr>
<tr>
<td> <img id="captchaimg" src="<c:url value="/image/${id}"/>" /></td>
<td width="50%">
<table class="datatable">
<td style="width:75%;">
<table class="table" style="width:100%;">
<tr>
<th width="120px"><s:Locale code="userinfo.displayName" /> :</th>
<th style="width:30%;"><s:Locale code="userinfo.displayName" /> :</th>
<td>
<input readonly type="text" class="required" title="" value="${userInfo.displayName}"/>
<input readonly type="text" class="required form-control" title="" value="${userInfo.displayName}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.username" /> :</th>
<td>
<input readonly type="text" class="required" title="" value="${userInfo.username}"/>
<input readonly type="text" class="required form-control" title="" value="${userInfo.username}"/>
</td>
</tr>
<tr>
<th><s:Locale code="login.totp.sharedSecret" />(BASE32) :</th>
<td>
<input readonly type="text" class="required" title="" value="${sharedSecret}"/>
<input readonly type="text" class="required form-control" title="" value="${sharedSecret}"/>
</td>
</tr>
<tr>
<th><s:Locale code="login.totp.sharedSecret" />(HEX) :</th>
<td>
<input readonly type="text" class="required" title="" value="${hexSharedSecret}"/>
<input readonly type="text" class="required form-control" title="" value="${hexSharedSecret}"/>
</td>
</tr>
<tr>
<th><s:Locale code="login.totp.period" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.period}"/>
<input readonly type="text" class="required form-control" title="" value="${format.period}"/>
</td>
</tr>
<tr>
<th><s:Locale code="login.totp.digits" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.digits}"/>
<input readonly type="text" class="required form-control" title="" value="${format.digits}"/>
</td>
</tr>
<tr>
<th><s:Locale code="login.totp.crypto" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.crypto}"/>
<input readonly type="text" class="required form-control" title="" value="${format.crypto}"/>
</td>
</tr>
<tr>
<td colspan="2" class="center">
<input class="button forward" style="width:100px" wurl="<c:url value="/safe/otp/gen/timebased"/>" type="button" id="forward" value="<s:Locale code="login.totp.generate" />"/>
<input class="button forward btn btn-primary" style="width:100px" wurl="<c:url value="/safe/otp/gen/timebased"/>" type="button" id="forward" value="<s:Locale code="login.totp.generate" />"/>
</td>
</tr>
</table>
@ -81,9 +76,6 @@
</tr>
</tbody>
</table>
</td>
</tr>
</table>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>

View File

@ -5,8 +5,7 @@
<html>
<head>
<jsp:include page="layout/header.jsp"></jsp:include>
<jsp:include page="layout/common.css.jsp"></jsp:include>
<jsp:include page="layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><s:Locale code="login.password.expired" /></title>
</head>

View File

@ -5,8 +5,7 @@
<html>
<head>
<jsp:include page="layout/header.jsp"></jsp:include>
<jsp:include page="layout/common.css.jsp"></jsp:include>
<jsp:include page="layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><s:Locale code="login.password.initial.change.tip" /></title>
</head>

View File

@ -1,324 +0,0 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<script type="text/javascript">
<!--
$(function(){
$("#picture").on("click",function(){
$("#pictureFile").click();
});
});
//-->
</script>
<form id="actionForm"
method="post"
type="alert"
forward="<s:Base/>/profile/forwardBasic"
action="<s:Base/>/profile/update/basic"
enctype="multipart/form-data">
<div class="" style="width:100%;">
<div class="main">
<div class="mainin">
<!-- content -->
<!--table-->
<table class="datatable">
<tbody>
<tr>
<th style="width:15%;"><s:Locale code="userinfo.username" /></th>
<td style="width:35%;">
<input type="hidden" id="id" name="id" value="${model.id}"/>
<input type="text" readonly id="username" name="username" title="" value="${model.username}"/>
<label for="username"></label>
</td>
<th style="width:15%;"><s:Locale code="userinfo.userType" /></th>
<td style="width:35%;">
<c:forEach items="${userTypeList}" var="userType">
<c:if test="${model.userType eq userType.id}"><input readonly type="text" id="userType" name="userType" title="" value="${userType.name}"/></c:if>
</c:forEach>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.displayName" /></th>
<td>
<input type="text" id="displayName" name="displayName" title="" value="${model.displayName}"/>
<label for="displayName"></label>
</td>
<th rowspan="4"><s:Locale code="userinfo.picture" /></th>
<td rowspan="4">
<c:if test="${null==model.picture}">
<img id="picture" width="150px" height="150px" src="<c:url value="/images/uploadimage.jpg"/>" />
</c:if>
<c:if test="${null!=model.picture}">
<img id="picture" width="150px" height="150px" src="<c:url value="/image/${model.id}"/>" />
</c:if>
<input type="file" id="pictureFile" name="pictureFile" style="display:none" />
<b class="orange">*</b><label for="picture"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.familyName" /></th>
<td>
<input type="text" id="familyName" name="familyName" title="" value="${model.familyName}"/>
<b class="orange">*</b><label for="familyName"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.givenName" /></th>
<td>
<input type="text" id="givenName" name="givenName" title="" value="${model.givenName}"/>
<b class="orange">*</b><label for="givenName"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.middleName" /></th>
<td>
<input type="text" id="middleName" name="middleName" title="" value="${model.middleName}"/>
<label for="middleName"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.nickName" /></th>
<td>
<input type="text" id="nickName" name="nickName" title="" value="${model.nickName}"/>
<label for="nickName"></label>
</td>
<th><s:Locale code="userinfo.gender" /></th>
<td>
<select name="gender" class="gender">
<option value="1" <c:if test="${1==model.gender}">selected</c:if> ><s:Locale code="userinfo.gender.female" /></option>
<option value="2" <c:if test="${2==model.gender}">selected</c:if> ><s:Locale code="userinfo.gender.male" /></option>
</select>
<label for="gender"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.married" /></th>
<td>
<select name="married" class="select_t">
<option value="0" <c:if test="${0==model.married}">selected</c:if> ><s:Locale code="userinfo.usertype.UNKNOWN" /></option>
<option value="1" <c:if test="${1==model.married}">selected</c:if> ><s:Locale code="userinfo.usertype.SINGLE" /></option>
<option value="2" <c:if test="${2==model.married}">selected</c:if> ><s:Locale code="userinfo.usertype.MARRIED" /></option>
<option value="3" <c:if test="${3==model.married}">selected</c:if> ><s:Locale code="userinfo.usertype.DIVORCE" /></option>
<option value="4" <c:if test="${4==model.married}">selected</c:if> ><s:Locale code="userinfo.usertype.WIDOWED" /></option>
</select>
</td>
<th><s:Locale code="userinfo.webSite" /></th>
<td>
<input type="text" id="webSite" name="webSite" title="" value="${model.webSite}"/>
<label for="webSite"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.idType" /></th>
<td>
<select name="idType" class="select_t">
<option value="0" <c:if test="${0==model.idType}">selected</c:if> ><s:Locale code="userinfo.usertype.UNKNOWN" /></option>
<option value="1" <c:if test="${1==model.idType}">selected</c:if> ><s:Locale code="userinfo.usertype.IDCARD" /></option>
<option value="2" <c:if test="${2==model.idType}">selected</c:if> ><s:Locale code="userinfo.usertype.PASSPORT" /></option>
<option value="3" <c:if test="${3==model.idType}">selected</c:if> ><s:Locale code="userinfo.usertype.STUDENTCARD" /></option>
<option value="4" <c:if test="${4==model.idType}">selected</c:if> ><s:Locale code="userinfo.usertype.MILITARYCARD" /></option>
</select>
</td>
<th><s:Locale code="userinfo.idCardNo" /></th>
<td>
<input type="text" id="idCardNo" name="idCardNo" title="" value="${model.idCardNo}"/>
<label for="idCardNo"></label>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.startWorkDate" /></th>
<td>
<input type="text" class="datepicker" id="startWorkDate" name="startWorkDate" title="" value="${model.startWorkDate}"/>
<label for="startWorkDate"></label>
</td>
<th><s:Locale code="userinfo.preferredLanguage" /></th>
<td>
<select name="preferredLanguage" id="preferredLanguage">
<option value="en_US" <c:if test="${'en_US'==model.preferredLanguage}">selected</c:if> >English</option>
<option value="nl_NL" <c:if test="${'nl_NL'==model.preferredLanguage}">selected</c:if> >Dutch</option>
<option value="fr" <c:if test="${'fr'==model.preferredLanguage}">selected</c:if> >French</option>
<option value="de" <c:if test="${'de'==model.preferredLanguage}">selected</c:if> >German</option>
<option value="it" <c:if test="${'it'==model.preferredLanguage}">selected</c:if> >Italian</option>
<option value="es" <c:if test="${'es'==model.preferredLanguage}">selected</c:if> >Spanish</option>
<option value="sv" <c:if test="${'sv'==model.preferredLanguage}">selected</c:if> >Swedish</option>
<option value="pt_BR" <c:if test="${'pt_BR'==model.preferredLanguage}">selected</c:if> >Portuguese (Brazilian)</option>
<option value="ja" <c:if test="${'ja'==model.preferredLanguage}">selected</c:if> >Japanese</option>
<option value="zh_CN" <c:if test="${'zh_CN'==model.preferredLanguage}">selected</c:if> >Chinese (Simplified)</option>
<option value="zh_TW" <c:if test="${'zh_TW'==model.preferredLanguage}">selected</c:if> >Chinese (Traditional)</option>
<option value="ko" <c:if test="${'ko'==model.preferredLanguage}">selected</c:if> >Korean</option>
<option value="th" <c:if test="${'th'==model.preferredLanguage}">selected</c:if> >Thai</option>
<option value="fi" <c:if test="${'fi'==model.preferredLanguage}">selected</c:if> >Finnish</option>
<option value="ru" <c:if test="${'ru'==model.preferredLanguage}">selected</c:if> >Russian</option>
</select>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.timeZone" /></th>
<td>
<select id="timeZone" name="timeZone" tabindex="61">
<option value="Pacific/Kiritimati" <c:if test="${'Pacific/Kiritimati'==model.timeZone}">selected</c:if>>(GMT+14:00) Line Islands Time (Pacific/Kiritimati)</option>
<option value="Pacific/Chatham" <c:if test="${'Pacific/Chatham'==model.timeZone}">selected</c:if>>(GMT+13:45) Chatham Daylight Time (Pacific/Chatham)</option>
<option value="Pacific/Auckland" <c:if test="${'Pacific/Auckland'==model.timeZone}">selected</c:if>>(GMT+13:00) New Zealand Daylight Time (Pacific/Auckland)</option>
<option value="Pacific/Enderbury" <c:if test="${'Pacific/Enderbury'==model.timeZone}">selected</c:if>>(GMT+13:00) Phoenix Islands Time (Pacific/Enderbury)</option>
<option value="Pacific/Tongatapu" <c:if test="${'Pacific/Tongatapu'==model.timeZone}">selected</c:if>>(GMT+13:00) Tonga Time (Pacific/Tongatapu)</option>
<option value="Asia/Kamchatka" <c:if test="${'Asia/Kamchatkai'==model.timeZone}">selected</c:if>>(GMT+12:00) Magadan Time (Asia/Kamchatka)</option>
<option value="Pacific/Fiji" <c:if test="${'Pacific/Fiji'==model.timeZone}">selected</c:if>>(GMT+12:00) Fiji Time (Pacific/Fiji)</option>
<option value="Pacific/Norfolk" <c:if test="${'Pacific/Norfolk'==model.timeZone}">selected</c:if>>(GMT+11:30) Norfolk Islands Time (Pacific/Norfolk)</option>
<option value="Australia/Lord_Howe" <c:if test="${'Australia/Lord_Howe'==model.timeZone}">selected</c:if>>(GMT+11:00) Lord Howe Daylight Time (Australia/Lord_Howe)</option>
<option value="Australia/Sydney" <c:if test="${'Australia/Sydney'==model.timeZone}">selected</c:if>>(GMT+11:00) Australian Eastern Daylight Time (Australia/Sydney)</option>
<option value="Pacific/Guadalcanal" <c:if test="${'Australia/Sydney'==model.timeZone}">selected</c:if> >(GMT+11:00) Solomon Islands Time (Pacific/Guadalcanal)</option>
<option value="Australia/Adelaide" <c:if test="${'Australia/Adelaide'==model.timeZone}">selected</c:if>>(GMT+10:30) Australian Central Daylight Time (Australia/Adelaide)</option>
<option value="Australia/Brisbane" <c:if test="${'Australia/Brisbane'==model.timeZone}">selected</c:if>>(GMT+10:00) Australian Eastern Standard Time (Australia/Brisbane)</option>
<option value="Australia/Darwin" <c:if test="${'Australia/Darwin'==model.timeZone}">selected</c:if>>(GMT+09:30) Australian Central Standard Time (Australia/Darwin)</option>
<option value="Asia/Seoul" <c:if test="${'Asia/Seoul'==model.timeZone}">selected</c:if>>(GMT+09:00) Korean Standard Time (Asia/Seoul)</option>
<option value="Asia/Tokyo" <c:if test="${'Asia/Tokyo'==model.timeZone}">selected</c:if>>(GMT+09:00) Japan Standard Time (Asia/Tokyo)</option>
<option value="Asia/Hong_Kong" <c:if test="${'Asia/Hong_Kong'==model.timeZone}">selected</c:if>>(GMT+08:00) Hong Kong Time (Asia/Hong_Kong)</option>
<option value="Asia/Kuala_Lumpur" <c:if test="${'Asia/Kuala_Lumpur'==model.timeZone}">selected</c:if>>(GMT+08:00) Malaysia Time (Asia/Kuala_Lumpur)</option>
<option value="Asia/Manila" <c:if test="${'Asia/Manila'==model.timeZone}">selected</c:if>>(GMT+08:00) Philippine Time (Asia/Manila)</option>
<option value="Asia/Shanghai" <c:if test="${'Asia/Shanghai'==model.timeZone}">selected</c:if>>(GMT+08:00) China Standard Time (Asia/Shanghai)</option>
<option value="Asia/Singapore" <c:if test="${'Asia/Singapore'==model.timeZone}">selected</c:if>>(GMT+08:00) Singapore Standard Time (Asia/Singapore)</option>
<option value="Asia/Taipei" <c:if test="${'Asia/Taipei'==model.timeZone}">selected</c:if> >(GMT+08:00) Taipei Standard Time (Asia/Taipei)</option>
<option value="Australia/Perth" <c:if test="${'Australia/Perth'==model.timeZone}">selected</c:if>>(GMT+08:00) Australian Western Standard Time (Australia/Perth)</option>
<option value="Asia/Bangkok" <c:if test="${'Asia/Bangkok'==model.timeZone}">selected</c:if>>(GMT+07:00) Indochina Time (Asia/Bangkok)</option>
<option value="Asia/Ho_Chi_Minh" <c:if test="${'Asia/Ho_Chi_Minh'==model.timeZone}">selected</c:if>>(GMT+07:00) Indochina Time (Asia/Ho_Chi_Minh)</option>
<option value="Asia/Jakarta" <c:if test="${'Asia/Jakarta'==model.timeZone}">selected</c:if>>(GMT+07:00) Western Indonesia Time (Asia/Jakarta)</option>
<option value="Asia/Rangoon" <c:if test="${'Asia/Rangoon'==model.timeZone}">selected</c:if>>(GMT+06:30) Myanmar Time (Asia/Rangoon)</option>
<option value="Asia/Dhaka" <c:if test="${'Asia/Dhaka'==model.timeZone}">selected</c:if>>(GMT+06:00) Bangladesh Time (Asia/Dhaka)</option>
<option value="Asia/Yekaterinburg" <c:if test="${'Asia/Yekaterinburg'==model.timeZone}">selected</c:if>>(GMT+06:00) Yekaterinburg Time (Asia/Yekaterinburg)</option>
<option value="Asia/Kathmandu" <c:if test="${'Asia/Kathmandu'==model.timeZone}">selected</c:if>>(GMT+05:45) Nepal Time (Asia/Kathmandu)</option>
<option value="Asia/Colombo" <c:if test="${'Asia/Colombo'==model.timeZone}">selected</c:if>>(GMT+05:30) India Standard Time (Asia/Colombo)</option>
<option value="Asia/Kolkata" <c:if test="${'Asia/Kolkata'==model.timeZone}">selected</c:if>>(GMT+05:30) India Standard Time (Asia/Kolkata)</option>
<option value="Asia/Baku" <c:if test="${'Asia/Baku'==model.timeZone}">selected</c:if>>(GMT+05:00) Azerbaijan Summer Time (Asia/Baku)</option>
<option value="Asia/Karachi" <c:if test="${'Asia/Karachi'==model.timeZone}">selected</c:if>>(GMT+05:00) Pakistan Time (Asia/Karachi)</option>
<option value="Asia/Tashkent" <c:if test="${'Asia/Tashkent'==model.timeZone}">selected</c:if>>(GMT+05:00) Uzbekistan Time (Asia/Tashkent)</option>
<option value="Asia/Kabul" <c:if test="${'Asia/Kabul'==model.timeZone}">selected</c:if>>(GMT+04:30) Afghanistan Time (Asia/Kabul)</option>
<option value="Asia/Dubai" <c:if test="${'Asia/Dubai'==model.timeZone}">selected</c:if>>(GMT+04:00) Gulf Standard Time (Asia/Dubai)</option>
<option value="Asia/Tbilisi" <c:if test="${'Asia/Tbilisi'==model.timeZone}">selected</c:if>>(GMT+04:00) Georgia Time (Asia/Tbilisi)</option>
<option value="Asia/Yerevan" <c:if test="${'Asia/Yerevan'==model.timeZone}">selected</c:if>>(GMT+04:00) Armenia Time (Asia/Yerevan)</option>
<option value="Europe/Moscow" <c:if test="${'Europe/Moscow'==model.timeZone}">selected</c:if>>(GMT+04:00) Moscow Standard Time (Europe/Moscow)</option>
<option value="Asia/Tehran" <c:if test="${'Asia/Tehran'==model.timeZone}">selected</c:if>>(GMT+03:30) Iran Standard Time (Asia/Tehran)</option>
<option value="Africa/Nairobi" <c:if test="${'Africa/Nairobi'==model.timeZone}">selected</c:if>>(GMT+03:00) East Africa Time (Africa/Nairobi)</option>
<option value="Asia/Baghdad" <c:if test="${'Asia/Baghdad'==model.timeZone}">selected</c:if>>(GMT+03:00) Arabian Standard Time (Asia/Baghdad)</option>
<option value="Asia/Beirut" <c:if test="${'Asia/Beirut'==model.timeZone}">selected</c:if>>(GMT+03:00) Eastern European Summer Time (Asia/Beirut)</option>
<option value="Asia/Jerusalem" <c:if test="${'Asia/Jerusalem'==model.timeZone}">selected</c:if>>(GMT+03:00) Israel Daylight Time (Asia/Jerusalem)</option>
<option value="Asia/Kuwait" <c:if test="${'Asia/Kuwait'==model.timeZone}">selected</c:if>>(GMT+03:00) Arabian Standard Time (Asia/Kuwait)</option>
<option value="Asia/Riyadh" <c:if test="${'Asia/Riyadh'==model.timeZone}">selected</c:if>>(GMT+03:00) Arabian Standard Time (Asia/Riyadh)</option>
<option value="Europe/Athens" <c:if test="${'Europe/Athens'==model.timeZone}">selected</c:if>>(GMT+03:00) Eastern European Summer Time (Europe/Athens)</option>
<option value="Europe/Bucharest" <c:if test="${'Europe/Bucharest'==model.timeZone}">selected</c:if>>(GMT+03:00) Eastern European Summer Time (Europe/Bucharest)</option>
<option value="Europe/Helsinki" <c:if test="${'Europe/Helsinki'==model.timeZone}">selected</c:if>>(GMT+03:00) Eastern European Summer Time (Europe/Helsinki)</option>
<option value="Europe/Istanbul" <c:if test="${'Europe/Istanbul'==model.timeZone}">selected</c:if>>(GMT+03:00) Eastern European Summer Time (Europe/Istanbul)</option>
<option value="Europe/Minsk" <c:if test="${'Europe/Minsk'==model.timeZone}">selected</c:if>>(GMT+03:00) Further-eastern European Time (Europe/Minsk)</option>
<option value="Africa/Cairo" <c:if test="${'Africa/Cairo'==model.timeZone}">selected</c:if>>(GMT+02:00) Eastern European Time (Africa/Cairo)</option>
<option value="Africa/Johannesburg" <c:if test="${'Africa/Johannesburg'==model.timeZone}">selected</c:if>>(GMT+02:00) South Africa Standard Time (Africa/Johannesburg)</option>
<option value="Europe/Amsterdam" <c:if test="${'Europe/Amsterdam'==model.timeZone}">selected</c:if>>(GMT+02:00) Central European Summer Time (Europe/Amsterdam)</option>
<option value="Europe/Berlin" <c:if test="${'Europe/Berlin'==model.timeZone}">selected</c:if>>(GMT+02:00) Central European Summer Time (Europe/Berlin)</option>
<option value="Europe/Brussels" <c:if test="${'Europe/Brussels'==model.timeZone}">selected</c:if>>(GMT+02:00) Central European Summer Time (Europe/Brussels)</option>
<option value="Europe/Paris" <c:if test="${'Europe/Paris'==model.timeZone}">selected</c:if>>(GMT+02:00) Central European Summer Time (Europe/Paris)</option>
<option value="Europe/Prague" <c:if test="${'Europe/Prague'==model.timeZone}">selected</c:if>>(GMT+02:00) Central European Summer Time (Europe/Prague)</option>
<option value="Europe/Rome" <c:if test="${'Europe/Rome'==model.timeZone}">selected</c:if>>(GMT+02:00) Central European Summer Time (Europe/Rome)</option>
<option value="Africa/Algiers" <c:if test="${'Africa/Algiers'==model.timeZone}">selected</c:if>>(GMT+01:00) Central European Time (Africa/Algiers)</option>
<option value="Europe/Dublin" <c:if test="${'Europe/Dublin'==model.timeZone}">selected</c:if>>(GMT+01:00) Irish Summer Time (Europe/Dublin)</option>
<option value="Europe/Lisbon" <c:if test="${'Europe/Lisbon'==model.timeZone}">selected</c:if>>(GMT+01:00) Western European Summer Time (Europe/Lisbon)</option>
<option value="Europe/London" <c:if test="${'Europe/London'==model.timeZone}">selected</c:if>>(GMT+01:00) British Summer Time (Europe/London)</option>
<option value="Africa/Casablanca" <c:if test="${'Africa/Casablanca'==model.timeZone}">selected</c:if>>(GMT+00:00) Western European Time (Africa/Casablanca)</option>
<option value="America/Scoresbysund" <c:if test="${'America/Scoresbysund'==model.timeZone}">selected</c:if>>(GMT+00:00) East Greenland Summer Time (America/Scoresbysund)</option>
<option value="Atlantic/Azores" <c:if test="${'Atlantic/Azores'==model.timeZone}">selected</c:if>>(GMT+00:00) Azores Summer Time (Atlantic/Azores)</option>
<option value="GMT" <c:if test="${'GMT'==model.timeZone}">selected</c:if>>(GMT+00:00) Greenwich Mean Time (GMT)</option>
<option value="Atlantic/Cape_Verde" <c:if test="${'Atlantic/Cape_Verde'==model.timeZone}">selected</c:if>>(GMT-01:00) Cape Verde Time (Atlantic/Cape_Verde)</option>
<option value="Atlantic/South_Georgia" <c:if test="${'Atlantic/South_Georgia'==model.timeZone}">selected</c:if>>(GMT-02:00) South Georgia Time (Atlantic/South_Georgia)</option>
<option value="America/St_Johns" <c:if test="${'America/St_Johns'==model.timeZone}">selected</c:if>>(GMT-02:30) Newfoundland Daylight Time (America/St_Johns)</option>
<option value="America/Argentina/Buenos_Aires" <c:if test="${'America/Argentina/Buenos_Aires'==model.timeZone}">selected</c:if>>(GMT-03:00) Argentina Time (America/Argentina/Buenos_Aires)</option>
<option value="America/Halifax" <c:if test="${'America/Halifax'==model.timeZone}">selected</c:if>>(GMT-03:00) Atlantic Daylight Time (America/Halifax)</option>
<option value="America/Santiago" <c:if test="${'America/Santiago'==model.timeZone}">selected</c:if>>(GMT-03:00) Chile Summer Time (America/Santiago)</option>
<option value="America/Sao_Paulo" <c:if test="${'America/Sao_Paulo'==model.timeZone}">selected</c:if>>(GMT-03:00) Brasilia Time (America/Sao_Paulo)</option>
<option value="Atlantic/Bermuda" <c:if test="${'Atlantic/Bermuda'==model.timeZone}">selected</c:if>>(GMT-03:00) Atlantic Daylight Time (Atlantic/Bermuda)</option>
<option value="America/Indiana/Indianapolis" <c:if test="${'America/Indiana/Indianapolis'==model.timeZone}">selected</c:if>>(GMT-04:00) Eastern Daylight Time (America/Indiana/Indianapolis)</option>
<option value="America/New_York" <c:if test="${'America/New_York'==model.timeZone}">selected</c:if>>(GMT-04:00) Eastern Daylight Time (America/New_York)</option>
<option value="America/Puerto_Rico" <c:if test="${'America/Puerto_Rico'==model.timeZone}">selected</c:if>>(GMT-04:00) Atlantic Standard Time (America/Puerto_Rico)</option>
<option value="America/Caracas" <c:if test="${'America/Caracas'==model.timeZone}">selected</c:if>>(GMT-04:30) Venezuela Time (America/Caracas)</option>
<option value="America/Bogota" <c:if test="${'America/Bogota'==model.timeZone}">selected</c:if>>(GMT-05:00) Colombia Time (America/Bogota)</option>
<option value="America/Chicago" <c:if test="${'America/Chicago'==model.timeZone}">selected</c:if>>(GMT-05:00) Central Daylight Time (America/Chicago)</option>
<option value="America/Lima" <c:if test="${'America/Lima'==model.timeZone}">selected</c:if>>(GMT-05:00) Peru Time (America/Lima)</option>
<option value="America/Mexico_City" <c:if test="${'America/Mexico_City'==model.timeZone}">selected</c:if>>(GMT-05:00) Central Daylight Time (America/Mexico_City)</option>
<option value="America/Panama" <c:if test="${'America/Panama'==model.timeZone}">selected</c:if>>(GMT-05:00) Eastern Standard Time (America/Panama)</option>
<option value="America/Denver" <c:if test="${'America/Denver'==model.timeZone}">selected</c:if>>(GMT-06:00) Mountain Daylight Time (America/Denver)</option>
<option value="America/El_Salvador" <c:if test="${'America/El_Salvador'==model.timeZone}">selected</c:if>>(GMT-06:00) Central Standard Time (America/El_Salvador)</option>
<option value="America/Mazatlan" <c:if test="${'America/Mazatlan'==model.timeZone}">selected</c:if>>(GMT-06:00) Mountain Daylight Time (America/Mazatlan)</option>
<option value="America/Los_Angeles" <c:if test="${'America/Los_Angeles'==model.timeZone}">selected</c:if>>(GMT-07:00) Pacific Daylight Time (America/Los_Angeles)</option>
<option value="America/Phoenix" <c:if test="${'America/Phoenix'==model.timeZone}">selected</c:if>>(GMT-07:00) Mountain Standard Time (America/Phoenix)</option>
<option value="America/Tijuana" <c:if test="${'America/Tijuana'==model.timeZone}">selected</c:if>>(GMT-07:00) Pacific Daylight Time (America/Tijuana)</option>
<option value="America/Anchorage" <c:if test="${'America/Anchorage'==model.timeZone}">selected</c:if>>(GMT-08:00) Alaska Daylight Time (America/Anchorage)</option>
<option value="Pacific/Pitcairn" <c:if test="${'Pacific/Pitcairn'==model.timeZone}">selected</c:if>>(GMT-08:00) Pitcairn Time (Pacific/Pitcairn)</option>
<option value="America/Adak" <c:if test="${'America/Adak'==model.timeZone}">selected</c:if>>(GMT-09:00) Hawaii-Aleutian Standard Time (America/Adak)</option>
<option value="Pacific/Gambier" <c:if test="${'Pacific/Gambier'==model.timeZone}">selected</c:if>>(GMT-09:00) Gambier Time (Pacific/Gambier)</option>
<option value="Pacific/Marquesas" <c:if test="${'Pacific/Marquesas'==model.timeZone}">selected</c:if>>(GMT-09:30) Marquesas Time (Pacific/Marquesas)</option>
<option value="Pacific/Honolulu" <c:if test="${'Pacific/Honolulu'==model.timeZone}">selected</c:if>>(GMT-10:00) Hawaii-Aleutian Standard Time (Pacific/Honolulu)</option>
<option value="Pacific/Niue" <c:if test="${'Pacific/Niue'==model.timeZone}">selected</c:if>>(GMT-11:00) Niue Time (Pacific/Niue)</option>
<option value="Pacific/Pago_Pago" <c:if test="${'Pacific/Pago_Pago'==model.timeZone}">selected</c:if>>(GMT-11:00) Samoa Standard Time (Pacific/Pago_Pago)</option>
</select>
</td>
<th><s:Locale code="userinfo.locale" /></th>
<td>
<select name="locale" id="locale">
<option value="en_US" <c:if test="${'en_US'==model.locale}">selected</c:if> >English</option>
<option value="nl_NL" <c:if test="${'nl_NL'==model.locale}">selected</c:if> >Dutch</option>
<option value="fr" <c:if test="${'fr'==model.locale}">selected</c:if> >French</option>
<option value="de" <c:if test="${'de'==model.locale}">selected</c:if> >German</option>
<option value="it" <c:if test="${'it'==model.locale}">selected</c:if> >Italian</option>
<option value="es" <c:if test="${'es'==model.locale}">selected</c:if> >Spanish</option>
<option value="sv" <c:if test="${'sv'==model.locale}">selected</c:if> >Swedish</option>
<option value="pt_BR" <c:if test="${'pt_BR'==model.locale}">selected</c:if> >Portuguese (Brazilian)</option>
<option value="ja" <c:if test="${'ja'==model.locale}">selected</c:if> >Japanese</option>
<option value="zh_CN" <c:if test="${'zh_CN'==model.locale}">selected</c:if> >Chinese (Simplified)</option>
<option value="zh_TW" <c:if test="${'zh_TW'==model.locale}">selected</c:if> >Chinese (Traditional)</option>
<option value="ko" <c:if test="${'ko'==model.locale}">selected</c:if> >Korean</option>
<option value="th" <c:if test="${'th'==model.locale}">selected</c:if> >Thai</option>
<option value="fi" <c:if test="${'fi'==model.locale}">selected</c:if> >Finnish</option>
<option value="ru" <c:if test="${'ru'==model.locale}">selected</c:if> >Russian</option>
</select>
</td>
</tr>
</tbody>
</table>
<div class="clear"></div>
</div>
</div>
<div >
<div >
<input id="_method" type="hidden" name="_method" value="post"/>
<input id="submitBtn" class="button" type="button" value="<s:Locale code="button.text.save" />"/>
</div>
</div>
</div>
</form>

View File

@ -1,439 +0,0 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<script type="text/javascript">
</script>
<form id="actionForm" method="post" type="alert" action="<s:Base/>/profile/update/company">
<div class="" style="width:100%;">
<div class="main">
<div class="mainin">
<!-- content -->
<!--table-->
<table class="datatable">
<tbody>
<tr>
<th style="width:15%;"><s:Locale code="userinfo.username" /></th>
<td style="width:35%;">
<input type="hidden" id="id" name="id" value="${model.id}"/>
<input readonly type="text" id="username" name="username" title="" value="${model.username}"/>
<label for="username"></label>
</td>
<th style="width:15%;"><s:Locale code="userinfo.displayName" /></th>
<td style="width:35%;">
<input readonly type="text" id="displayName" name="displayName" title="" value="${model.displayName}"/>
<label for="displayName"></label>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.employeeNumber" /></th>
<td>
<input readonly type="text" id="employeeNumber" name="employeeNumber" title="" value="${model.employeeNumber}"/>
<label for="username"></label>
</td>
<th><s:Locale code="userinfo.windowsAccount" /></th>
<td>
<input type="text" id="windowsAccount" name="windowsAccount" title="" value="${model.windowsAccount}"/>
<label for="windowsAccount"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.organization" /></th>
<td>
<input type="text" id="organization" name="organization" title="" value="${model.organization}"/>
<label for="organization"></label>
</td>
<th><s:Locale code="userinfo.division" /></th>
<td>
<input type="text" id="division" name="division" title="" value="${model.division}"/>
<label for="division"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.department" /></th>
<td>
<input type="hidden" id="departmentId" name="departmentId" title="" value="${model.departmentId}"/>
<input type="text" id="department" name="department" title="" value="${model.department}"/>
<label for="department"></label>
</td>
<th><s:Locale code="userinfo.costCenter" /></th>
<td>
<input type="text" id="costCenter" name="costCenter" title="" value="${model.costCenter}"/>
<label for="costCenter"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.jobTitle" /></th>
<td>
<input type="text" id="jobTitle" name="jobTitle" title="" value="${model.jobTitle}"/>
<label for="jobTitle"></label>
</td>
<th><s:Locale code="userinfo.jobLevel" /></th>
<td>
<input type="text" id="jobLevel" name="jobLevel" title="" value="${model.jobLevel}"/>
<label for="jobLevel"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.manager" /></th>
<td>
<input type="hidden" id="managerId" name="managerId" title="" value="${model.managerId}"/>
<input type="text" id="manager" name="manager" title="" value="${model.manager}"/>
<label for="manager"></label>
</td>
<th><s:Locale code="userinfo.assistant" /></th>
<td>
<input type="hidden" id="assistantId" name="assistantId" title="" value="${model.assistantId}"/>
<input type="text" id="assistant" name="assistant" title="" value="${model.assistant}"/>
<label for="delegatedApprover"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.entryDate" /></th>
<td>
<input type="text" class="datepicker" id="entryDate" name="entryDate" title="" value="${model.entryDate}"/>
<label for="entryDate"></label>
</td>
<th><s:Locale code="userinfo.quitDate" /></th>
<td>
<input type="text" class="datepicker" id="quitDate" name="quitDate" title="" value="${model.quitDate}"/>
<label for="delegatedApprover"></label>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.workCountry" /></th>
<td>
<select id="workCountry" name="workCountry">
<option value="AFG" <c:if test="${'AFG'==model.workCountry}">selected</c:if>>Afghanistan</option>
<option value="ALA" <c:if test="${'ALA'==model.workCountry}">selected</c:if>>Åland Islands</option>
<option value="ALB" <c:if test="${'ALB'==model.workCountry}">selected</c:if>>Albania</option>
<option value="DZA" <c:if test="${'DZA'==model.workCountry}">selected</c:if>>Algeria</option>
<option value="ASM" <c:if test="${'ASM'==model.workCountry}">selected</c:if>>American Samoa</option>
<option value="AND" <c:if test="${'AND'==model.workCountry}">selected</c:if>>Andorra</option>
<option value="AGO" <c:if test="${'AGO'==model.workCountry}">selected</c:if>>Angola</option>
<option value="AIA" <c:if test="${'AIA'==model.workCountry}">selected</c:if>>Anguilla</option>
<option value="ATA" <c:if test="${'ATA'==model.workCountry}">selected</c:if>>Antarctica</option>
<option value="ATG" <c:if test="${'ATG'==model.workCountry}">selected</c:if>>Antigua and Barbuda</option>
<option value="ARG" <c:if test="${'ARG'==model.workCountry}">selected</c:if>>Argentina</option>
<option value="ARM" <c:if test="${'ARM'==model.workCountry}">selected</c:if>>Armenia</option>
<option value="ABW" <c:if test="${'ABW'==model.workCountry}">selected</c:if>>Aruba</option>
<option value="AUS" <c:if test="${'AUS'==model.workCountry}">selected</c:if>>Australia</option>
<option value="AUT" <c:if test="${'AUT'==model.workCountry}">selected</c:if>>Austria</option>
<option value="AZE" <c:if test="${'AZE'==model.workCountry}">selected</c:if>>Azerbaijan</option>
<option value="BHS" <c:if test="${'BHS'==model.workCountry}">selected</c:if>>Bahamas</option>
<option value="BHR" <c:if test="${'BHR'==model.workCountry}">selected</c:if>>Bahrain</option>
<option value="BGD" <c:if test="${'BGD'==model.workCountry}">selected</c:if>>Bangladesh</option>
<option value="BRB" <c:if test="${'BRB'==model.workCountry}">selected</c:if>>Barbados</option>
<option value="BLR" <c:if test="${'BLR'==model.workCountry}">selected</c:if>>Belarus</option>
<option value="BEL" <c:if test="${'BEL'==model.workCountry}">selected</c:if>>Belgium</option>
<option value="BLZ" <c:if test="${'BLZ'==model.workCountry}">selected</c:if>>Belize</option>
<option value="BEN" <c:if test="${'BEN'==model.workCountry}">selected</c:if>>Benin</option>
<option value="BMU" <c:if test="${'BMU'==model.workCountry}">selected</c:if>>Bermuda</option>
<option value="BTN" <c:if test="${'BTN'==model.workCountry}">selected</c:if>>Bhutan</option>
<option value="BOL" <c:if test="${'BOL'==model.workCountry}">selected</c:if>>Bolivia, Plurinational State of</option>
<option value="BES" <c:if test="${'BES'==model.workCountry}">selected</c:if>>Bonaire, Sint Eustatius and Saba</option>
<option value="BIH" <c:if test="${'BIH'==model.workCountry}">selected</c:if>>Bosnia and Herzegovina</option>
<option value="BWA" <c:if test="${'BWA'==model.workCountry}">selected</c:if>>Botswana</option>
<option value="BVT" <c:if test="${'BVT'==model.workCountry}">selected</c:if>>Bouvet Island</option>
<option value="BRA" <c:if test="${'BRA'==model.workCountry}">selected</c:if>>Brazil</option>
<option value="IOT" <c:if test="${'IOT'==model.workCountry}">selected</c:if>>British Indian Ocean Territory</option>
<option value="BRN" <c:if test="${'BRN'==model.workCountry}">selected</c:if>>Brunei Darussalam</option>
<option value="BGR" <c:if test="${'BGR'==model.workCountry}">selected</c:if>>Bulgaria</option>
<option value="BFA" <c:if test="${'BFA'==model.workCountry}">selected</c:if>>Burkina Faso</option>
<option value="BDI" <c:if test="${'BDI'==model.workCountry}">selected</c:if>>Burundi</option>
<option value="KHM" <c:if test="${'KHM'==model.workCountry}">selected</c:if>>Cambodia</option>
<option value="CMR" <c:if test="${'CMR'==model.workCountry}">selected</c:if>>Cameroon</option>
<option value="CAN" <c:if test="${'CAN'==model.workCountry}">selected</c:if>>Canada</option>
<option value="CPV" <c:if test="${'CPV'==model.workCountry}">selected</c:if>>Cape Verde</option>
<option value="CYM" <c:if test="${'CYM'==model.workCountry}">selected</c:if>>Cayman Islands</option>
<option value="CAF" <c:if test="${'CAF'==model.workCountry}">selected</c:if>>Central African Republic</option>
<option value="TCD" <c:if test="${'TCD'==model.workCountry}">selected</c:if>>Chad</option>
<option value="CHL" <c:if test="${'CHL'==model.workCountry}">selected</c:if>>Chile</option>
<option value="CHN" <c:if test="${'CHN'==model.workCountry}">selected</c:if>>China</option>
<option value="CXR" <c:if test="${'CXR'==model.workCountry}">selected</c:if>>Christmas Island</option>
<option value="CCK" <c:if test="${'CCK'==model.workCountry}">selected</c:if>>Cocos (Keeling) Islands</option>
<option value="COL" <c:if test="${'COL'==model.workCountry}">selected</c:if>>Colombia</option>
<option value="COM" <c:if test="${'COM'==model.workCountry}">selected</c:if>>Comoros</option>
<option value="COG" <c:if test="${'COG'==model.workCountry}">selected</c:if>>Congo</option>
<option value="COD" <c:if test="${'COD'==model.workCountry}">selected</c:if>>Congo, the Democratic Republic of the</option>
<option value="COK" <c:if test="${'COK'==model.workCountry}">selected</c:if>>Cook Islands</option>
<option value="CRI" <c:if test="${'CRI'==model.workCountry}">selected</c:if>>Costa Rica</option>
<option value="CIV" <c:if test="${'CIV'==model.workCountry}">selected</c:if>>Côte d'Ivoire</option>
<option value="HRV" <c:if test="${'HRV'==model.workCountry}">selected</c:if>>Croatia</option>
<option value="CUB" <c:if test="${'CUB'==model.workCountry}">selected</c:if>>Cuba</option>
<option value="CUW" <c:if test="${'CUW'==model.workCountry}">selected</c:if>>Curaçao</option>
<option value="CYP" <c:if test="${'CYP'==model.workCountry}">selected</c:if>>Cyprus</option>
<option value="CZE" <c:if test="${'CZE'==model.workCountry}">selected</c:if>>Czech Republic</option>
<option value="DNK" <c:if test="${'DNK'==model.workCountry}">selected</c:if>>Denmark</option>
<option value="DJI" <c:if test="${'DJI'==model.workCountry}">selected</c:if>>Djibouti</option>
<option value="DMA" <c:if test="${'DMA'==model.workCountry}">selected</c:if>>Dominica</option>
<option value="DOM" <c:if test="${'DOM'==model.workCountry}">selected</c:if>>Dominican Republic</option>
<option value="ECU" <c:if test="${'ECU'==model.workCountry}">selected</c:if>>Ecuador</option>
<option value="EGY" <c:if test="${'EGY'==model.workCountry}">selected</c:if>>Egypt</option>
<option value="SLV" <c:if test="${'SLV'==model.workCountry}">selected</c:if>>El Salvador</option>
<option value="GNQ" <c:if test="${'GNQ'==model.workCountry}">selected</c:if>>Equatorial Guinea</option>
<option value="ERI" <c:if test="${'ERI'==model.workCountry}">selected</c:if>>Eritrea</option>
<option value="EST" <c:if test="${'EST'==model.workCountry}">selected</c:if>>Estonia</option>
<option value="ETH" <c:if test="${'ETH'==model.workCountry}">selected</c:if>>Ethiopia</option>
<option value="FLK" <c:if test="${'FLK'==model.workCountry}">selected</c:if>>Falkland Islands (Malvinas)</option>
<option value="FRO" <c:if test="${'FRO'==model.workCountry}">selected</c:if>>Faroe Islands</option>
<option value="FJI" <c:if test="${'FJI'==model.workCountry}">selected</c:if>>Fiji</option>
<option value="FIN" <c:if test="${'FIN'==model.workCountry}">selected</c:if>>Finland</option>
<option value="FRA" <c:if test="${'FRA'==model.workCountry}">selected</c:if>>France</option>
<option value="GUF" <c:if test="${'GUF'==model.workCountry}">selected</c:if>>French Guiana</option>
<option value="PYF" <c:if test="${'PYF'==model.workCountry}">selected</c:if>>French Polynesia</option>
<option value="ATF" <c:if test="${'ATF'==model.workCountry}">selected</c:if>>French Southern Territories</option>
<option value="GAB" <c:if test="${'GAB'==model.workCountry}">selected</c:if>>Gabon</option>
<option value="GMB" <c:if test="${'GMB'==model.workCountry}">selected</c:if>>Gambia</option>
<option value="GEO" <c:if test="${'GEO'==model.workCountry}">selected</c:if>>Georgia</option>
<option value="DEU" <c:if test="${'DEU'==model.workCountry}">selected</c:if>>Germany</option>
<option value="GHA" <c:if test="${'GHA'==model.workCountry}">selected</c:if>>Ghana</option>
<option value="GIB" <c:if test="${'GIB'==model.workCountry}">selected</c:if>>Gibraltar</option>
<option value="GRC" <c:if test="${'GRC'==model.workCountry}">selected</c:if>>Greece</option>
<option value="GRL" <c:if test="${'GRL'==model.workCountry}">selected</c:if>>Greenland</option>
<option value="GRD" <c:if test="${'GRD'==model.workCountry}">selected</c:if>>Grenada</option>
<option value="GLP" <c:if test="${'GLP'==model.workCountry}">selected</c:if>>Guadeloupe</option>
<option value="GUM" <c:if test="${'GUM'==model.workCountry}">selected</c:if>>Guam</option>
<option value="GTM" <c:if test="${'GTM'==model.workCountry}">selected</c:if>>Guatemala</option>
<option value="GGY" <c:if test="${'GGY'==model.workCountry}">selected</c:if>>Guernsey</option>
<option value="GIN" <c:if test="${'GIN'==model.workCountry}">selected</c:if>>Guinea</option>
<option value="GNB" <c:if test="${'GNB'==model.workCountry}">selected</c:if>>Guinea-Bissau</option>
<option value="GUY" <c:if test="${'GUY'==model.workCountry}">selected</c:if>>Guyana</option>
<option value="HTI" <c:if test="${'HTI'==model.workCountry}">selected</c:if>>Haiti</option>
<option value="HMD" <c:if test="${'HMD'==model.workCountry}">selected</c:if>>Heard Island and McDonald Islands</option>
<option value="VAT" <c:if test="${'VAT'==model.workCountry}">selected</c:if>>Holy See (Vatican City State)</option>
<option value="HND" <c:if test="${'HND'==model.workCountry}">selected</c:if>>Honduras</option>
<option value="HKG" <c:if test="${'HKG'==model.workCountry}">selected</c:if>>Hong Kong</option>
<option value="HUN" <c:if test="${'HUN'==model.workCountry}">selected</c:if>>Hungary</option>
<option value="ISL" <c:if test="${'ISL'==model.workCountry}">selected</c:if>>Iceland</option>
<option value="IND" <c:if test="${'IND'==model.workCountry}">selected</c:if>>India</option>
<option value="IDN" <c:if test="${'IDN'==model.workCountry}">selected</c:if>>Indonesia</option>
<option value="IRN" <c:if test="${'IRN'==model.workCountry}">selected</c:if>>Iran, Islamic Republic of</option>
<option value="IRQ" <c:if test="${'IRQ'==model.workCountry}">selected</c:if>>Iraq</option>
<option value="IRL" <c:if test="${'IRL'==model.workCountry}">selected</c:if>>Ireland</option>
<option value="IMN" <c:if test="${'IMN'==model.workCountry}">selected</c:if>>Isle of Man</option>
<option value="ISR" <c:if test="${'ISR'==model.workCountry}">selected</c:if>>Israel</option>
<option value="ITA" <c:if test="${'ITA'==model.workCountry}">selected</c:if>>Italy</option>
<option value="JAM" <c:if test="${'JAM'==model.workCountry}">selected</c:if>>Jamaica</option>
<option value="JPN" <c:if test="${'JPN'==model.workCountry}">selected</c:if>>Japan</option>
<option value="JEY" <c:if test="${'JEY'==model.workCountry}">selected</c:if>>Jersey</option>
<option value="JOR" <c:if test="${'JOR'==model.workCountry}">selected</c:if>>Jordan</option>
<option value="KAZ" <c:if test="${'KAZ'==model.workCountry}">selected</c:if>>Kazakhstan</option>
<option value="KEN" <c:if test="${'KEN'==model.workCountry}">selected</c:if>>Kenya</option>
<option value="KIR" <c:if test="${'KIR'==model.workCountry}">selected</c:if>>Kiribati</option>
<option value="PRK" <c:if test="${'PRK'==model.workCountry}">selected</c:if>>Korea, Democratic People's Republic of</option>
<option value="KOR" <c:if test="${'KOR'==model.workCountry}">selected</c:if>>Korea, Republic of</option>
<option value="KWT" <c:if test="${'KWT'==model.workCountry}">selected</c:if>>Kuwait</option>
<option value="KGZ" <c:if test="${'KGZ'==model.workCountry}">selected</c:if>>Kyrgyzstan</option>
<option value="LAO" <c:if test="${'LAO'==model.workCountry}">selected</c:if>>Lao People's Democratic Republic</option>
<option value="LVA" <c:if test="${'LVA'==model.workCountry}">selected</c:if>>Latvia</option>
<option value="LBN" <c:if test="${'LBN'==model.workCountry}">selected</c:if>>Lebanon</option>
<option value="LSO" <c:if test="${'LSO'==model.workCountry}">selected</c:if>>Lesotho</option>
<option value="LBR" <c:if test="${'LBR'==model.workCountry}">selected</c:if>>Liberia</option>
<option value="LBY" <c:if test="${'LBY'==model.workCountry}">selected</c:if>>Libya</option>
<option value="LIE" <c:if test="${'LIE'==model.workCountry}">selected</c:if>>Liechtenstein</option>
<option value="LTU" <c:if test="${'LTU'==model.workCountry}">selected</c:if>>Lithuania</option>
<option value="LUX" <c:if test="${'LUX'==model.workCountry}">selected</c:if>>Luxembourg</option>
<option value="MAC" <c:if test="${'MAC'==model.workCountry}">selected</c:if>>Macao</option>
<option value="MKD" <c:if test="${'MKD'==model.workCountry}">selected</c:if>>Macedonia, the former Yugoslav Republic of</option>
<option value="MDG" <c:if test="${'MDG'==model.workCountry}">selected</c:if>>Madagascar</option>
<option value="MWI" <c:if test="${'MWI'==model.workCountry}">selected</c:if>>Malawi</option>
<option value="MYS" <c:if test="${'MYS'==model.workCountry}">selected</c:if>>Malaysia</option>
<option value="MDV" <c:if test="${'MDV'==model.workCountry}">selected</c:if>>Maldives</option>
<option value="MLI" <c:if test="${'MLI'==model.workCountry}">selected</c:if>>Mali</option>
<option value="MLT" <c:if test="${'MLT'==model.workCountry}">selected</c:if>>Malta</option>
<option value="MHL" <c:if test="${'MHL'==model.workCountry}">selected</c:if>>Marshall Islands</option>
<option value="MTQ" <c:if test="${'MTQ'==model.workCountry}">selected</c:if>>Martinique</option>
<option value="MRT" <c:if test="${'MRT'==model.workCountry}">selected</c:if>>Mauritania</option>
<option value="MUS" <c:if test="${'MUS'==model.workCountry}">selected</c:if>>Mauritius</option>
<option value="MYT" <c:if test="${'MYT'==model.workCountry}">selected</c:if>>Mayotte</option>
<option value="MEX" <c:if test="${'MEX'==model.workCountry}">selected</c:if>>Mexico</option>
<option value="FSM" <c:if test="${'FSM'==model.workCountry}">selected</c:if>>Micronesia, Federated States of</option>
<option value="MDA" <c:if test="${'MDA'==model.workCountry}">selected</c:if>>Moldova, Republic of</option>
<option value="MCO" <c:if test="${'MCO'==model.workCountry}">selected</c:if>>Monaco</option>
<option value="MNG" <c:if test="${'MNG'==model.workCountry}">selected</c:if>>Mongolia</option>
<option value="MNE" <c:if test="${'MNE'==model.workCountry}">selected</c:if>>Montenegro</option>
<option value="MSR" <c:if test="${'MSR'==model.workCountry}">selected</c:if>>Montserrat</option>
<option value="MAR" <c:if test="${'MAR'==model.workCountry}">selected</c:if>>Morocco</option>
<option value="MOZ" <c:if test="${'MOZ'==model.workCountry}">selected</c:if>>Mozambique</option>
<option value="MMR" <c:if test="${'MMR'==model.workCountry}">selected</c:if>>Myanmar</option>
<option value="NAM" <c:if test="${'NAM'==model.workCountry}">selected</c:if>>Namibia</option>
<option value="NRU" <c:if test="${'NRU'==model.workCountry}">selected</c:if>>Nauru</option>
<option value="NPL" <c:if test="${'NPL'==model.workCountry}">selected</c:if>>Nepal</option>
<option value="NLD" <c:if test="${'NLD'==model.workCountry}">selected</c:if>>Netherlands</option>
<option value="NCL" <c:if test="${'NCL'==model.workCountry}">selected</c:if>>New Caledonia</option>
<option value="NZL" <c:if test="${'NZL'==model.workCountry}">selected</c:if>>New Zealand</option>
<option value="NIC" <c:if test="${'NIC'==model.workCountry}">selected</c:if>>Nicaragua</option>
<option value="NER" <c:if test="${'NER'==model.workCountry}">selected</c:if>>Niger</option>
<option value="NGA" <c:if test="${'NGA'==model.workCountry}">selected</c:if>>Nigeria</option>
<option value="NIU" <c:if test="${'NIU'==model.workCountry}">selected</c:if>>Niue</option>
<option value="NFK" <c:if test="${'NFK'==model.workCountry}">selected</c:if>>Norfolk Island</option>
<option value="MNP" <c:if test="${'MNP'==model.workCountry}">selected</c:if>>Northern Mariana Islands</option>
<option value="NOR" <c:if test="${'NOR'==model.workCountry}">selected</c:if>>Norway</option>
<option value="OMN" <c:if test="${'OMN'==model.workCountry}">selected</c:if>>Oman</option>
<option value="PAK" <c:if test="${'PAK'==model.workCountry}">selected</c:if>>Pakistan</option>
<option value="PLW" <c:if test="${'PLW'==model.workCountry}">selected</c:if>>Palau</option>
<option value="PSE" <c:if test="${'PSE'==model.workCountry}">selected</c:if>>Palestinian Territory, Occupied</option>
<option value="PAN" <c:if test="${'PAN'==model.workCountry}">selected</c:if>>Panama</option>
<option value="PNG" <c:if test="${'PNG'==model.workCountry}">selected</c:if>>Papua New Guinea</option>
<option value="PRY" <c:if test="${'PRY'==model.workCountry}">selected</c:if>>Paraguay</option>
<option value="PER" <c:if test="${'PER'==model.workCountry}">selected</c:if>>Peru</option>
<option value="PHL" <c:if test="${'PHL'==model.workCountry}">selected</c:if>>Philippines</option>
<option value="PCN" <c:if test="${'PCN'==model.workCountry}">selected</c:if>>Pitcairn</option>
<option value="POL" <c:if test="${'POL'==model.workCountry}">selected</c:if>>Poland</option>
<option value="PRT" <c:if test="${'PRT'==model.workCountry}">selected</c:if>>Portugal</option>
<option value="PRI" <c:if test="${'PRI'==model.workCountry}">selected</c:if>>Puerto Rico</option>
<option value="QAT" <c:if test="${'QAT'==model.workCountry}">selected</c:if>>Qatar</option>
<option value="REU" <c:if test="${'REU'==model.workCountry}">selected</c:if>>Réunion</option>
<option value="ROU" <c:if test="${'ROU'==model.workCountry}">selected</c:if>>Romania</option>
<option value="RUS" <c:if test="${'RUS'==model.workCountry}">selected</c:if>>Russian Federation</option>
<option value="RWA" <c:if test="${'RWA'==model.workCountry}">selected</c:if>>Rwanda</option>
<option value="BLM" <c:if test="${'BLM'==model.workCountry}">selected</c:if>>Saint Barthélemy</option>
<option value="SHN" <c:if test="${'SHN'==model.workCountry}">selected</c:if>>Saint Helena, Ascension and Tristan da Cunha</option>
<option value="KNA" <c:if test="${'KNA'==model.workCountry}">selected</c:if>>Saint Kitts and Nevis</option>
<option value="LCA" <c:if test="${'LCA'==model.workCountry}">selected</c:if>>Saint Lucia</option>
<option value="MAF" <c:if test="${'MAF'==model.workCountry}">selected</c:if>>Saint Martin (French part)</option>
<option value="SPM" <c:if test="${'SPM'==model.workCountry}">selected</c:if>>Saint Pierre and Miquelon</option>
<option value="VCT" <c:if test="${'VCT'==model.workCountry}">selected</c:if>>Saint Vincent and the Grenadines</option>
<option value="WSM" <c:if test="${'WSM'==model.workCountry}">selected</c:if>>Samoa</option>
<option value="SMR" <c:if test="${'SMR'==model.workCountry}">selected</c:if>>San Marino</option>
<option value="STP" <c:if test="${'STP'==model.workCountry}">selected</c:if>>Sao Tome and Principe</option>
<option value="SAU" <c:if test="${'SAU'==model.workCountry}">selected</c:if>>Saudi Arabia</option>
<option value="SEN" <c:if test="${'SEN'==model.workCountry}">selected</c:if>>Senegal</option>
<option value="SRB" <c:if test="${'SRB'==model.workCountry}">selected</c:if>>Serbia</option>
<option value="SYC" <c:if test="${'SYC'==model.workCountry}">selected</c:if>>Seychelles</option>
<option value="SLE" <c:if test="${'SLE'==model.workCountry}">selected</c:if>>Sierra Leone</option>
<option value="SGP" <c:if test="${'SGP'==model.workCountry}">selected</c:if>>Singapore</option>
<option value="SXM" <c:if test="${'SXM'==model.workCountry}">selected</c:if>>Sint Maarten (Dutch part)</option>
<option value="SVK" <c:if test="${'SVK'==model.workCountry}">selected</c:if>>Slovakia</option>
<option value="SVN" <c:if test="${'SVN'==model.workCountry}">selected</c:if>>Slovenia</option>
<option value="SLB" <c:if test="${'SLB'==model.workCountry}">selected</c:if>>Solomon Islands</option>
<option value="SOM" <c:if test="${'SOM'==model.workCountry}">selected</c:if>>Somalia</option>
<option value="ZAF" <c:if test="${'ZAF'==model.workCountry}">selected</c:if>>South Africa</option>
<option value="SGS" <c:if test="${'SGS'==model.workCountry}">selected</c:if>>South Georgia and the South Sandwich Islands</option>
<option value="SSD" <c:if test="${'SSD'==model.workCountry}">selected</c:if>>South Sudan</option>
<option value="ESP" <c:if test="${'ESP'==model.workCountry}">selected</c:if>>Spain</option>
<option value="LKA" <c:if test="${'LKA'==model.workCountry}">selected</c:if>>Sri Lanka</option>
<option value="SDN" <c:if test="${'SDN'==model.workCountry}">selected</c:if>>Sudan</option>
<option value="SUR" <c:if test="${'SUR'==model.workCountry}">selected</c:if>>Suriname</option>
<option value="SJM" <c:if test="${'SJM'==model.workCountry}">selected</c:if>>Svalbard and Jan Mayen</option>
<option value="SWZ" <c:if test="${'SWZ'==model.workCountry}">selected</c:if>>Swaziland</option>
<option value="SWE" <c:if test="${'SWE'==model.workCountry}">selected</c:if>>Sweden</option>
<option value="CHE" <c:if test="${'CHE'==model.workCountry}">selected</c:if>>Switzerland</option>
<option value="SYR" <c:if test="${'SYR'==model.workCountry}">selected</c:if>>Syrian Arab Republic</option>
<option value="TWN" <c:if test="${'TWN'==model.workCountry}">selected</c:if>>Taiwan, Province of China</option>
<option value="TJK" <c:if test="${'TJK'==model.workCountry}">selected</c:if>>Tajikistan</option>
<option value="TZA" <c:if test="${'TZA'==model.workCountry}">selected</c:if>>Tanzania, United Republic of</option>
<option value="THA" <c:if test="${'THA'==model.workCountry}">selected</c:if>>Thailand</option>
<option value="TLS" <c:if test="${'TLS'==model.workCountry}">selected</c:if>>Timor-Leste</option>
<option value="TGO" <c:if test="${'TGO'==model.workCountry}">selected</c:if>>Togo</option>
<option value="TKL" <c:if test="${'TKL'==model.workCountry}">selected</c:if>>Tokelau</option>
<option value="TON" <c:if test="${'TON'==model.workCountry}">selected</c:if>>Tonga</option>
<option value="TTO" <c:if test="${'TTO'==model.workCountry}">selected</c:if>>Trinidad and Tobago</option>
<option value="TUN" <c:if test="${'TUN'==model.workCountry}">selected</c:if>>Tunisia</option>
<option value="TUR" <c:if test="${'TUR'==model.workCountry}">selected</c:if>>Turkey</option>
<option value="TKM" <c:if test="${'TKM'==model.workCountry}">selected</c:if>>Turkmenistan</option>
<option value="TCA" <c:if test="${'TCA'==model.workCountry}">selected</c:if>>Turks and Caicos Islands</option>
<option value="TUV" <c:if test="${'TUV'==model.workCountry}">selected</c:if>>Tuvalu</option>
<option value="UGA" <c:if test="${'UGA'==model.workCountry}">selected</c:if>>Uganda</option>
<option value="UKR" <c:if test="${'UKR'==model.workCountry}">selected</c:if>>Ukraine</option>
<option value="ARE" <c:if test="${'ARE'==model.workCountry}">selected</c:if>>United Arab Emirates</option>
<option value="GBR" <c:if test="${'GBR'==model.workCountry}">selected</c:if>>United Kingdom</option>
<option value="USA" <c:if test="${'USA'==model.workCountry}">selected</c:if>>United States</option>
<option value="UMI" <c:if test="${'UMI'==model.workCountry}">selected</c:if>>United States Minor Outlying Islands</option>
<option value="URY" <c:if test="${'URY'==model.workCountry}">selected</c:if>>Uruguay</option>
<option value="UZB" <c:if test="${'UZB'==model.workCountry}">selected</c:if>>Uzbekistan</option>
<option value="VUT" <c:if test="${'VUT'==model.workCountry}">selected</c:if>>Vanuatu</option>
<option value="VEN" <c:if test="${'VEN'==model.workCountry}">selected</c:if>>Venezuela, Bolivarian Republic of</option>
<option value="VNM" <c:if test="${'VNM'==model.workCountry}">selected</c:if>>Viet Nam</option>
<option value="VGB" <c:if test="${'VGB'==model.workCountry}">selected</c:if>>Virgin Islands, British</option>
<option value="VIR" <c:if test="${'VIR'==model.workCountry}">selected</c:if>>Virgin Islands, U.S.</option>
<option value="WLF" <c:if test="${'WLF'==model.workCountry}">selected</c:if>>Wallis and Futuna</option>
<option value="ESH" <c:if test="${'ESH'==model.workCountry}">selected</c:if>>Western Sahara</option>
<option value="YEM" <c:if test="${'YEM'==model.workCountry}">selected</c:if>>Yemen</option>
<option value="ZMB" <c:if test="${'ZMB'==model.workCountry}">selected</c:if>>Zambia</option>
<option value="ZWE" <c:if test="${'ZWE'==model.workCountry}">selected</c:if>>Zimbabwe</option>
</select>
<label for="workCountry"></label>
</td>
<th><s:Locale code="userinfo.workRegion" /></th>
<td>
<input type="text" id="workRegion" name="workRegion" title="" value="${model.workRegion}"/>
<label for="province"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.workLocality" /></th>
<td>
<input type="text" id="workLocality" name="workLocality" title="" value="${model.workLocality}"/>
<label for="workLocality"></label>
</td>
<th><s:Locale code="userinfo.workStreetAddress" /></th>
<td>
<input type="text" id="workStreetAddress" name="workStreetAddress" title="" value="${model.workStreetAddress}"/>
<label for="street"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.workPostalCode" /></th>
<td>
<input type="text" id="workPostalCode" name="workPostalCode" title="" value="${model.workPostalCode}"/>
<label for="workPostalCode"></label>
</td>
<th><s:Locale code="userinfo.workFax" /></th>
<td>
<input type="text" id="workFax" name="workFax" title="" value="${model.workFax}"/>
<label for="workFax"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.workPhoneNumber" /></th>
<td>
<input type="text" id="workPhoneNumber" name="workPhoneNumber" title="" value="${model.workPhoneNumber}"/>
<label for="workPhoneNumber"></label>
</td>
<th><s:Locale code="userinfo.workEmail" /></th>
<td>
<input type="text" id="workEmail" name="workEmail" title="" value="${model.workEmail}"/>
<label for="workEmail"></label>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;
</td>
</tr>
</tbody>
</table>
<div class="clear"></div>
</div>
</div>
<div >
<div >
<input id="_method" type="hidden" name="_method" value="post"/>
<input id="submitBtn" class="button" type="button" value="<s:Locale code="button.text.save" />"/>
</div>
</div>
</div>
</form>

View File

@ -1,425 +0,0 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<form id="actionForm" method="post" type="alert" action="<s:Base/>/profile/update/home">
<div class="" style="width:100%;">
<div class="main">
<div class="mainin">
<!-- content -->
<!--table-->
<table class="datatable">
<tbody>
<tr>
<th style="width:15%;"><s:Locale code="userinfo.username" /></th>
<td style="width:35%;">
<input type="hidden" id="id" name="id" value="${model.id}"/>
<input readonly type="text" id="username" name="username" title="" value="${model.username}"/>
<label for="username"></label>
</td>
<th style="width:15%;"><s:Locale code="userinfo.displayName" /></th>
<td style="width:35%;">
<input readonly type="text" id="displayName" name="displayName" title="" value="${model.displayName}"/>
<label for="displayName"></label>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.homeCountry" /></th>
<td>
<select id="homeCountry" name="homeCountry">
<option value="AFG" <c:if test="${'AFG'==model.homeCountry}">selected</c:if>>Afghanistan</option>
<option value="ALA" <c:if test="${'ALA'==model.homeCountry}">selected</c:if>>Åland Islands</option>
<option value="ALB" <c:if test="${'ALB'==model.homeCountry}">selected</c:if>>Albania</option>
<option value="DZA" <c:if test="${'DZA'==model.homeCountry}">selected</c:if>>Algeria</option>
<option value="ASM" <c:if test="${'ASM'==model.homeCountry}">selected</c:if>>American Samoa</option>
<option value="AND" <c:if test="${'AND'==model.homeCountry}">selected</c:if>>Andorra</option>
<option value="AGO" <c:if test="${'AGO'==model.homeCountry}">selected</c:if>>Angola</option>
<option value="AIA" <c:if test="${'AIA'==model.homeCountry}">selected</c:if>>Anguilla</option>
<option value="ATA" <c:if test="${'ATA'==model.homeCountry}">selected</c:if>>Antarctica</option>
<option value="ATG" <c:if test="${'ATG'==model.homeCountry}">selected</c:if>>Antigua and Barbuda</option>
<option value="ARG" <c:if test="${'ARG'==model.homeCountry}">selected</c:if>>Argentina</option>
<option value="ARM" <c:if test="${'ARM'==model.homeCountry}">selected</c:if>>Armenia</option>
<option value="ABW" <c:if test="${'ABW'==model.homeCountry}">selected</c:if>>Aruba</option>
<option value="AUS" <c:if test="${'AUS'==model.homeCountry}">selected</c:if>>Australia</option>
<option value="AUT" <c:if test="${'AUT'==model.homeCountry}">selected</c:if>>Austria</option>
<option value="AZE" <c:if test="${'AZE'==model.homeCountry}">selected</c:if>>Azerbaijan</option>
<option value="BHS" <c:if test="${'BHS'==model.homeCountry}">selected</c:if>>Bahamas</option>
<option value="BHR" <c:if test="${'BHR'==model.homeCountry}">selected</c:if>>Bahrain</option>
<option value="BGD" <c:if test="${'BGD'==model.homeCountry}">selected</c:if>>Bangladesh</option>
<option value="BRB" <c:if test="${'BRB'==model.homeCountry}">selected</c:if>>Barbados</option>
<option value="BLR" <c:if test="${'BLR'==model.homeCountry}">selected</c:if>>Belarus</option>
<option value="BEL" <c:if test="${'BEL'==model.homeCountry}">selected</c:if>>Belgium</option>
<option value="BLZ" <c:if test="${'BLZ'==model.homeCountry}">selected</c:if>>Belize</option>
<option value="BEN" <c:if test="${'BEN'==model.homeCountry}">selected</c:if>>Benin</option>
<option value="BMU" <c:if test="${'BMU'==model.homeCountry}">selected</c:if>>Bermuda</option>
<option value="BTN" <c:if test="${'BTN'==model.homeCountry}">selected</c:if>>Bhutan</option>
<option value="BOL" <c:if test="${'BOL'==model.homeCountry}">selected</c:if>>Bolivia, Plurinational State of</option>
<option value="BES" <c:if test="${'BES'==model.homeCountry}">selected</c:if>>Bonaire, Sint Eustatius and Saba</option>
<option value="BIH" <c:if test="${'BIH'==model.homeCountry}">selected</c:if>>Bosnia and Herzegovina</option>
<option value="BWA" <c:if test="${'BWA'==model.homeCountry}">selected</c:if>>Botswana</option>
<option value="BVT" <c:if test="${'BVT'==model.homeCountry}">selected</c:if>>Bouvet Island</option>
<option value="BRA" <c:if test="${'BRA'==model.homeCountry}">selected</c:if>>Brazil</option>
<option value="IOT" <c:if test="${'IOT'==model.homeCountry}">selected</c:if>>British Indian Ocean Territory</option>
<option value="BRN" <c:if test="${'BRN'==model.homeCountry}">selected</c:if>>Brunei Darussalam</option>
<option value="BGR" <c:if test="${'BGR'==model.homeCountry}">selected</c:if>>Bulgaria</option>
<option value="BFA" <c:if test="${'BFA'==model.homeCountry}">selected</c:if>>Burkina Faso</option>
<option value="BDI" <c:if test="${'BDI'==model.homeCountry}">selected</c:if>>Burundi</option>
<option value="KHM" <c:if test="${'KHM'==model.homeCountry}">selected</c:if>>Cambodia</option>
<option value="CMR" <c:if test="${'CMR'==model.homeCountry}">selected</c:if>>Cameroon</option>
<option value="CAN" <c:if test="${'CAN'==model.homeCountry}">selected</c:if>>Canada</option>
<option value="CPV" <c:if test="${'CPV'==model.homeCountry}">selected</c:if>>Cape Verde</option>
<option value="CYM" <c:if test="${'CYM'==model.homeCountry}">selected</c:if>>Cayman Islands</option>
<option value="CAF" <c:if test="${'CAF'==model.homeCountry}">selected</c:if>>Central African Republic</option>
<option value="TCD" <c:if test="${'TCD'==model.homeCountry}">selected</c:if>>Chad</option>
<option value="CHL" <c:if test="${'CHL'==model.homeCountry}">selected</c:if>>Chile</option>
<option value="CHN" <c:if test="${'CHN'==model.homeCountry}">selected</c:if>>China</option>
<option value="CXR" <c:if test="${'CXR'==model.homeCountry}">selected</c:if>>Christmas Island</option>
<option value="CCK" <c:if test="${'CCK'==model.homeCountry}">selected</c:if>>Cocos (Keeling) Islands</option>
<option value="COL" <c:if test="${'COL'==model.homeCountry}">selected</c:if>>Colombia</option>
<option value="COM" <c:if test="${'COM'==model.homeCountry}">selected</c:if>>Comoros</option>
<option value="COG" <c:if test="${'COG'==model.homeCountry}">selected</c:if>>Congo</option>
<option value="COD" <c:if test="${'COD'==model.homeCountry}">selected</c:if>>Congo, the Democratic Republic of the</option>
<option value="COK" <c:if test="${'COK'==model.homeCountry}">selected</c:if>>Cook Islands</option>
<option value="CRI" <c:if test="${'CRI'==model.homeCountry}">selected</c:if>>Costa Rica</option>
<option value="CIV" <c:if test="${'CIV'==model.homeCountry}">selected</c:if>>Côte d'Ivoire</option>
<option value="HRV" <c:if test="${'HRV'==model.homeCountry}">selected</c:if>>Croatia</option>
<option value="CUB" <c:if test="${'CUB'==model.homeCountry}">selected</c:if>>Cuba</option>
<option value="CUW" <c:if test="${'CUW'==model.homeCountry}">selected</c:if>>Curaçao</option>
<option value="CYP" <c:if test="${'CYP'==model.homeCountry}">selected</c:if>>Cyprus</option>
<option value="CZE" <c:if test="${'CZE'==model.homeCountry}">selected</c:if>>Czech Republic</option>
<option value="DNK" <c:if test="${'DNK'==model.homeCountry}">selected</c:if>>Denmark</option>
<option value="DJI" <c:if test="${'DJI'==model.homeCountry}">selected</c:if>>Djibouti</option>
<option value="DMA" <c:if test="${'DMA'==model.homeCountry}">selected</c:if>>Dominica</option>
<option value="DOM" <c:if test="${'DOM'==model.homeCountry}">selected</c:if>>Dominican Republic</option>
<option value="ECU" <c:if test="${'ECU'==model.homeCountry}">selected</c:if>>Ecuador</option>
<option value="EGY" <c:if test="${'EGY'==model.homeCountry}">selected</c:if>>Egypt</option>
<option value="SLV" <c:if test="${'SLV'==model.homeCountry}">selected</c:if>>El Salvador</option>
<option value="GNQ" <c:if test="${'GNQ'==model.homeCountry}">selected</c:if>>Equatorial Guinea</option>
<option value="ERI" <c:if test="${'ERI'==model.homeCountry}">selected</c:if>>Eritrea</option>
<option value="EST" <c:if test="${'EST'==model.homeCountry}">selected</c:if>>Estonia</option>
<option value="ETH" <c:if test="${'ETH'==model.homeCountry}">selected</c:if>>Ethiopia</option>
<option value="FLK" <c:if test="${'FLK'==model.homeCountry}">selected</c:if>>Falkland Islands (Malvinas)</option>
<option value="FRO" <c:if test="${'FRO'==model.homeCountry}">selected</c:if>>Faroe Islands</option>
<option value="FJI" <c:if test="${'FJI'==model.homeCountry}">selected</c:if>>Fiji</option>
<option value="FIN" <c:if test="${'FIN'==model.homeCountry}">selected</c:if>>Finland</option>
<option value="FRA" <c:if test="${'FRA'==model.homeCountry}">selected</c:if>>France</option>
<option value="GUF" <c:if test="${'GUF'==model.homeCountry}">selected</c:if>>French Guiana</option>
<option value="PYF" <c:if test="${'PYF'==model.homeCountry}">selected</c:if>>French Polynesia</option>
<option value="ATF" <c:if test="${'ATF'==model.homeCountry}">selected</c:if>>French Southern Territories</option>
<option value="GAB" <c:if test="${'GAB'==model.homeCountry}">selected</c:if>>Gabon</option>
<option value="GMB" <c:if test="${'GMB'==model.homeCountry}">selected</c:if>>Gambia</option>
<option value="GEO" <c:if test="${'GEO'==model.homeCountry}">selected</c:if>>Georgia</option>
<option value="DEU" <c:if test="${'DEU'==model.homeCountry}">selected</c:if>>Germany</option>
<option value="GHA" <c:if test="${'GHA'==model.homeCountry}">selected</c:if>>Ghana</option>
<option value="GIB" <c:if test="${'GIB'==model.homeCountry}">selected</c:if>>Gibraltar</option>
<option value="GRC" <c:if test="${'GRC'==model.homeCountry}">selected</c:if>>Greece</option>
<option value="GRL" <c:if test="${'GRL'==model.homeCountry}">selected</c:if>>Greenland</option>
<option value="GRD" <c:if test="${'GRD'==model.homeCountry}">selected</c:if>>Grenada</option>
<option value="GLP" <c:if test="${'GLP'==model.homeCountry}">selected</c:if>>Guadeloupe</option>
<option value="GUM" <c:if test="${'GUM'==model.homeCountry}">selected</c:if>>Guam</option>
<option value="GTM" <c:if test="${'GTM'==model.homeCountry}">selected</c:if>>Guatemala</option>
<option value="GGY" <c:if test="${'GGY'==model.homeCountry}">selected</c:if>>Guernsey</option>
<option value="GIN" <c:if test="${'GIN'==model.homeCountry}">selected</c:if>>Guinea</option>
<option value="GNB" <c:if test="${'GNB'==model.homeCountry}">selected</c:if>>Guinea-Bissau</option>
<option value="GUY" <c:if test="${'GUY'==model.homeCountry}">selected</c:if>>Guyana</option>
<option value="HTI" <c:if test="${'HTI'==model.homeCountry}">selected</c:if>>Haiti</option>
<option value="HMD" <c:if test="${'HMD'==model.homeCountry}">selected</c:if>>Heard Island and McDonald Islands</option>
<option value="VAT" <c:if test="${'VAT'==model.homeCountry}">selected</c:if>>Holy See (Vatican City State)</option>
<option value="HND" <c:if test="${'HND'==model.homeCountry}">selected</c:if>>Honduras</option>
<option value="HKG" <c:if test="${'HKG'==model.homeCountry}">selected</c:if>>Hong Kong</option>
<option value="HUN" <c:if test="${'HUN'==model.homeCountry}">selected</c:if>>Hungary</option>
<option value="ISL" <c:if test="${'ISL'==model.homeCountry}">selected</c:if>>Iceland</option>
<option value="IND" <c:if test="${'IND'==model.homeCountry}">selected</c:if>>India</option>
<option value="IDN" <c:if test="${'IDN'==model.homeCountry}">selected</c:if>>Indonesia</option>
<option value="IRN" <c:if test="${'IRN'==model.homeCountry}">selected</c:if>>Iran, Islamic Republic of</option>
<option value="IRQ" <c:if test="${'IRQ'==model.homeCountry}">selected</c:if>>Iraq</option>
<option value="IRL" <c:if test="${'IRL'==model.homeCountry}">selected</c:if>>Ireland</option>
<option value="IMN" <c:if test="${'IMN'==model.homeCountry}">selected</c:if>>Isle of Man</option>
<option value="ISR" <c:if test="${'ISR'==model.homeCountry}">selected</c:if>>Israel</option>
<option value="ITA" <c:if test="${'ITA'==model.homeCountry}">selected</c:if>>Italy</option>
<option value="JAM" <c:if test="${'JAM'==model.homeCountry}">selected</c:if>>Jamaica</option>
<option value="JPN" <c:if test="${'JPN'==model.homeCountry}">selected</c:if>>Japan</option>
<option value="JEY" <c:if test="${'JEY'==model.homeCountry}">selected</c:if>>Jersey</option>
<option value="JOR" <c:if test="${'JOR'==model.homeCountry}">selected</c:if>>Jordan</option>
<option value="KAZ" <c:if test="${'KAZ'==model.homeCountry}">selected</c:if>>Kazakhstan</option>
<option value="KEN" <c:if test="${'KEN'==model.homeCountry}">selected</c:if>>Kenya</option>
<option value="KIR" <c:if test="${'KIR'==model.homeCountry}">selected</c:if>>Kiribati</option>
<option value="PRK" <c:if test="${'PRK'==model.homeCountry}">selected</c:if>>Korea, Democratic People's Republic of</option>
<option value="KOR" <c:if test="${'KOR'==model.homeCountry}">selected</c:if>>Korea, Republic of</option>
<option value="KWT" <c:if test="${'KWT'==model.homeCountry}">selected</c:if>>Kuwait</option>
<option value="KGZ" <c:if test="${'KGZ'==model.homeCountry}">selected</c:if>>Kyrgyzstan</option>
<option value="LAO" <c:if test="${'LAO'==model.homeCountry}">selected</c:if>>Lao People's Democratic Republic</option>
<option value="LVA" <c:if test="${'LVA'==model.homeCountry}">selected</c:if>>Latvia</option>
<option value="LBN" <c:if test="${'LBN'==model.homeCountry}">selected</c:if>>Lebanon</option>
<option value="LSO" <c:if test="${'LSO'==model.homeCountry}">selected</c:if>>Lesotho</option>
<option value="LBR" <c:if test="${'LBR'==model.homeCountry}">selected</c:if>>Liberia</option>
<option value="LBY" <c:if test="${'LBY'==model.homeCountry}">selected</c:if>>Libya</option>
<option value="LIE" <c:if test="${'LIE'==model.homeCountry}">selected</c:if>>Liechtenstein</option>
<option value="LTU" <c:if test="${'LTU'==model.homeCountry}">selected</c:if>>Lithuania</option>
<option value="LUX" <c:if test="${'LUX'==model.homeCountry}">selected</c:if>>Luxembourg</option>
<option value="MAC" <c:if test="${'MAC'==model.homeCountry}">selected</c:if>>Macao</option>
<option value="MKD" <c:if test="${'MKD'==model.homeCountry}">selected</c:if>>Macedonia, the former Yugoslav Republic of</option>
<option value="MDG" <c:if test="${'MDG'==model.homeCountry}">selected</c:if>>Madagascar</option>
<option value="MWI" <c:if test="${'MWI'==model.homeCountry}">selected</c:if>>Malawi</option>
<option value="MYS" <c:if test="${'MYS'==model.homeCountry}">selected</c:if>>Malaysia</option>
<option value="MDV" <c:if test="${'MDV'==model.homeCountry}">selected</c:if>>Maldives</option>
<option value="MLI" <c:if test="${'MLI'==model.homeCountry}">selected</c:if>>Mali</option>
<option value="MLT" <c:if test="${'MLT'==model.homeCountry}">selected</c:if>>Malta</option>
<option value="MHL" <c:if test="${'MHL'==model.homeCountry}">selected</c:if>>Marshall Islands</option>
<option value="MTQ" <c:if test="${'MTQ'==model.homeCountry}">selected</c:if>>Martinique</option>
<option value="MRT" <c:if test="${'MRT'==model.homeCountry}">selected</c:if>>Mauritania</option>
<option value="MUS" <c:if test="${'MUS'==model.homeCountry}">selected</c:if>>Mauritius</option>
<option value="MYT" <c:if test="${'MYT'==model.homeCountry}">selected</c:if>>Mayotte</option>
<option value="MEX" <c:if test="${'MEX'==model.homeCountry}">selected</c:if>>Mexico</option>
<option value="FSM" <c:if test="${'FSM'==model.homeCountry}">selected</c:if>>Micronesia, Federated States of</option>
<option value="MDA" <c:if test="${'MDA'==model.homeCountry}">selected</c:if>>Moldova, Republic of</option>
<option value="MCO" <c:if test="${'MCO'==model.homeCountry}">selected</c:if>>Monaco</option>
<option value="MNG" <c:if test="${'MNG'==model.homeCountry}">selected</c:if>>Mongolia</option>
<option value="MNE" <c:if test="${'MNE'==model.homeCountry}">selected</c:if>>Montenegro</option>
<option value="MSR" <c:if test="${'MSR'==model.homeCountry}">selected</c:if>>Montserrat</option>
<option value="MAR" <c:if test="${'MAR'==model.homeCountry}">selected</c:if>>Morocco</option>
<option value="MOZ" <c:if test="${'MOZ'==model.homeCountry}">selected</c:if>>Mozambique</option>
<option value="MMR" <c:if test="${'MMR'==model.homeCountry}">selected</c:if>>Myanmar</option>
<option value="NAM" <c:if test="${'NAM'==model.homeCountry}">selected</c:if>>Namibia</option>
<option value="NRU" <c:if test="${'NRU'==model.homeCountry}">selected</c:if>>Nauru</option>
<option value="NPL" <c:if test="${'NPL'==model.homeCountry}">selected</c:if>>Nepal</option>
<option value="NLD" <c:if test="${'NLD'==model.homeCountry}">selected</c:if>>Netherlands</option>
<option value="NCL" <c:if test="${'NCL'==model.homeCountry}">selected</c:if>>New Caledonia</option>
<option value="NZL" <c:if test="${'NZL'==model.homeCountry}">selected</c:if>>New Zealand</option>
<option value="NIC" <c:if test="${'NIC'==model.homeCountry}">selected</c:if>>Nicaragua</option>
<option value="NER" <c:if test="${'NER'==model.homeCountry}">selected</c:if>>Niger</option>
<option value="NGA" <c:if test="${'NGA'==model.homeCountry}">selected</c:if>>Nigeria</option>
<option value="NIU" <c:if test="${'NIU'==model.homeCountry}">selected</c:if>>Niue</option>
<option value="NFK" <c:if test="${'NFK'==model.homeCountry}">selected</c:if>>Norfolk Island</option>
<option value="MNP" <c:if test="${'MNP'==model.homeCountry}">selected</c:if>>Northern Mariana Islands</option>
<option value="NOR" <c:if test="${'NOR'==model.homeCountry}">selected</c:if>>Norway</option>
<option value="OMN" <c:if test="${'OMN'==model.homeCountry}">selected</c:if>>Oman</option>
<option value="PAK" <c:if test="${'PAK'==model.homeCountry}">selected</c:if>>Pakistan</option>
<option value="PLW" <c:if test="${'PLW'==model.homeCountry}">selected</c:if>>Palau</option>
<option value="PSE" <c:if test="${'PSE'==model.homeCountry}">selected</c:if>>Palestinian Territory, Occupied</option>
<option value="PAN" <c:if test="${'PAN'==model.homeCountry}">selected</c:if>>Panama</option>
<option value="PNG" <c:if test="${'PNG'==model.homeCountry}">selected</c:if>>Papua New Guinea</option>
<option value="PRY" <c:if test="${'PRY'==model.homeCountry}">selected</c:if>>Paraguay</option>
<option value="PER" <c:if test="${'PER'==model.homeCountry}">selected</c:if>>Peru</option>
<option value="PHL" <c:if test="${'PHL'==model.homeCountry}">selected</c:if>>Philippines</option>
<option value="PCN" <c:if test="${'PCN'==model.homeCountry}">selected</c:if>>Pitcairn</option>
<option value="POL" <c:if test="${'POL'==model.homeCountry}">selected</c:if>>Poland</option>
<option value="PRT" <c:if test="${'PRT'==model.homeCountry}">selected</c:if>>Portugal</option>
<option value="PRI" <c:if test="${'PRI'==model.homeCountry}">selected</c:if>>Puerto Rico</option>
<option value="QAT" <c:if test="${'QAT'==model.homeCountry}">selected</c:if>>Qatar</option>
<option value="REU" <c:if test="${'REU'==model.homeCountry}">selected</c:if>>Réunion</option>
<option value="ROU" <c:if test="${'ROU'==model.homeCountry}">selected</c:if>>Romania</option>
<option value="RUS" <c:if test="${'RUS'==model.homeCountry}">selected</c:if>>Russian Federation</option>
<option value="RWA" <c:if test="${'RWA'==model.homeCountry}">selected</c:if>>Rwanda</option>
<option value="BLM" <c:if test="${'BLM'==model.homeCountry}">selected</c:if>>Saint Barthélemy</option>
<option value="SHN" <c:if test="${'SHN'==model.homeCountry}">selected</c:if>>Saint Helena, Ascension and Tristan da Cunha</option>
<option value="KNA" <c:if test="${'KNA'==model.homeCountry}">selected</c:if>>Saint Kitts and Nevis</option>
<option value="LCA" <c:if test="${'LCA'==model.homeCountry}">selected</c:if>>Saint Lucia</option>
<option value="MAF" <c:if test="${'MAF'==model.homeCountry}">selected</c:if>>Saint Martin (French part)</option>
<option value="SPM" <c:if test="${'SPM'==model.homeCountry}">selected</c:if>>Saint Pierre and Miquelon</option>
<option value="VCT" <c:if test="${'VCT'==model.homeCountry}">selected</c:if>>Saint Vincent and the Grenadines</option>
<option value="WSM" <c:if test="${'WSM'==model.homeCountry}">selected</c:if>>Samoa</option>
<option value="SMR" <c:if test="${'SMR'==model.homeCountry}">selected</c:if>>San Marino</option>
<option value="STP" <c:if test="${'STP'==model.homeCountry}">selected</c:if>>Sao Tome and Principe</option>
<option value="SAU" <c:if test="${'SAU'==model.homeCountry}">selected</c:if>>Saudi Arabia</option>
<option value="SEN" <c:if test="${'SEN'==model.homeCountry}">selected</c:if>>Senegal</option>
<option value="SRB" <c:if test="${'SRB'==model.homeCountry}">selected</c:if>>Serbia</option>
<option value="SYC" <c:if test="${'SYC'==model.homeCountry}">selected</c:if>>Seychelles</option>
<option value="SLE" <c:if test="${'SLE'==model.homeCountry}">selected</c:if>>Sierra Leone</option>
<option value="SGP" <c:if test="${'SGP'==model.homeCountry}">selected</c:if>>Singapore</option>
<option value="SXM" <c:if test="${'SXM'==model.homeCountry}">selected</c:if>>Sint Maarten (Dutch part)</option>
<option value="SVK" <c:if test="${'SVK'==model.homeCountry}">selected</c:if>>Slovakia</option>
<option value="SVN" <c:if test="${'SVN'==model.homeCountry}">selected</c:if>>Slovenia</option>
<option value="SLB" <c:if test="${'SLB'==model.homeCountry}">selected</c:if>>Solomon Islands</option>
<option value="SOM" <c:if test="${'SOM'==model.homeCountry}">selected</c:if>>Somalia</option>
<option value="ZAF" <c:if test="${'ZAF'==model.homeCountry}">selected</c:if>>South Africa</option>
<option value="SGS" <c:if test="${'SGS'==model.homeCountry}">selected</c:if>>South Georgia and the South Sandwich Islands</option>
<option value="SSD" <c:if test="${'SSD'==model.homeCountry}">selected</c:if>>South Sudan</option>
<option value="ESP" <c:if test="${'ESP'==model.homeCountry}">selected</c:if>>Spain</option>
<option value="LKA" <c:if test="${'LKA'==model.homeCountry}">selected</c:if>>Sri Lanka</option>
<option value="SDN" <c:if test="${'SDN'==model.homeCountry}">selected</c:if>>Sudan</option>
<option value="SUR" <c:if test="${'SUR'==model.homeCountry}">selected</c:if>>Suriname</option>
<option value="SJM" <c:if test="${'SJM'==model.homeCountry}">selected</c:if>>Svalbard and Jan Mayen</option>
<option value="SWZ" <c:if test="${'SWZ'==model.homeCountry}">selected</c:if>>Swaziland</option>
<option value="SWE" <c:if test="${'SWE'==model.homeCountry}">selected</c:if>>Sweden</option>
<option value="CHE" <c:if test="${'CHE'==model.homeCountry}">selected</c:if>>Switzerland</option>
<option value="SYR" <c:if test="${'SYR'==model.homeCountry}">selected</c:if>>Syrian Arab Republic</option>
<option value="TWN" <c:if test="${'TWN'==model.homeCountry}">selected</c:if>>Taiwan, Province of China</option>
<option value="TJK" <c:if test="${'TJK'==model.homeCountry}">selected</c:if>>Tajikistan</option>
<option value="TZA" <c:if test="${'TZA'==model.homeCountry}">selected</c:if>>Tanzania, United Republic of</option>
<option value="THA" <c:if test="${'THA'==model.homeCountry}">selected</c:if>>Thailand</option>
<option value="TLS" <c:if test="${'TLS'==model.homeCountry}">selected</c:if>>Timor-Leste</option>
<option value="TGO" <c:if test="${'TGO'==model.homeCountry}">selected</c:if>>Togo</option>
<option value="TKL" <c:if test="${'TKL'==model.homeCountry}">selected</c:if>>Tokelau</option>
<option value="TON" <c:if test="${'TON'==model.homeCountry}">selected</c:if>>Tonga</option>
<option value="TTO" <c:if test="${'TTO'==model.homeCountry}">selected</c:if>>Trinidad and Tobago</option>
<option value="TUN" <c:if test="${'TUN'==model.homeCountry}">selected</c:if>>Tunisia</option>
<option value="TUR" <c:if test="${'TUR'==model.homeCountry}">selected</c:if>>Turkey</option>
<option value="TKM" <c:if test="${'TKM'==model.homeCountry}">selected</c:if>>Turkmenistan</option>
<option value="TCA" <c:if test="${'TCA'==model.homeCountry}">selected</c:if>>Turks and Caicos Islands</option>
<option value="TUV" <c:if test="${'TUV'==model.homeCountry}">selected</c:if>>Tuvalu</option>
<option value="UGA" <c:if test="${'UGA'==model.homeCountry}">selected</c:if>>Uganda</option>
<option value="UKR" <c:if test="${'UKR'==model.homeCountry}">selected</c:if>>Ukraine</option>
<option value="ARE" <c:if test="${'ARE'==model.homeCountry}">selected</c:if>>United Arab Emirates</option>
<option value="GBR" <c:if test="${'GBR'==model.homeCountry}">selected</c:if>>United Kingdom</option>
<option value="USA" <c:if test="${'USA'==model.homeCountry}">selected</c:if>>United States</option>
<option value="UMI" <c:if test="${'UMI'==model.homeCountry}">selected</c:if>>United States Minor Outlying Islands</option>
<option value="URY" <c:if test="${'URY'==model.homeCountry}">selected</c:if>>Uruguay</option>
<option value="UZB" <c:if test="${'UZB'==model.homeCountry}">selected</c:if>>Uzbekistan</option>
<option value="VUT" <c:if test="${'VUT'==model.homeCountry}">selected</c:if>>Vanuatu</option>
<option value="VEN" <c:if test="${'VEN'==model.homeCountry}">selected</c:if>>Venezuela, Bolivarian Republic of</option>
<option value="VNM" <c:if test="${'VNM'==model.homeCountry}">selected</c:if>>Viet Nam</option>
<option value="VGB" <c:if test="${'VGB'==model.homeCountry}">selected</c:if>>Virgin Islands, British</option>
<option value="VIR" <c:if test="${'VIR'==model.homeCountry}">selected</c:if>>Virgin Islands, U.S.</option>
<option value="WLF" <c:if test="${'WLF'==model.homeCountry}">selected</c:if>>Wallis and Futuna</option>
<option value="ESH" <c:if test="${'ESH'==model.homeCountry}">selected</c:if>>Western Sahara</option>
<option value="YEM" <c:if test="${'YEM'==model.homeCountry}">selected</c:if>>Yemen</option>
<option value="ZMB" <c:if test="${'ZMB'==model.homeCountry}">selected</c:if>>Zambia</option>
<option value="ZWE" <c:if test="${'ZWE'==model.homeCountry}">selected</c:if>>Zimbabwe</option>
</select>
<label for="homeCountry"></label>
</td>
<th><s:Locale code="userinfo.homeRegion" /></th>
<td>
<input type="text" id="homeRegion" name="homeRegion" title="" value="${model.homeRegion}"/>
<label for="homeRegion"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.homeLocality" /></th>
<td>
<input type="text" id="homeLocality" name="homeLocality" title="" value="${model.homeLocality}"/>
<label for="homeLocality"></label>
</td>
<th><s:Locale code="userinfo.homeStreetAddress" /></th>
<td>
<input type="text" id="homeStreetAddress" name="homeStreetAddress" title="" value="${model.homeStreetAddress}"/>
<label for="homeStreetAddress"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.homePostalCode" /></th>
<td>
<input type="text" id="homePostalCode" name="homePostalCode" title="" value="${model.homePostalCode}"/>
<label for="homePostalCode"></label>
</td>
<th><s:Locale code="userinfo.homeFax" /></th>
<td>
<input type="text" id="homeFax" name="homeFax" title="" value="${model.homeFax}"/>
<label for="homeFax"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.homePhoneNumber" /></th>
<td>
<input type="text" id="homePhoneNumber" name="homePhoneNumber" title="" value="${model.homePhoneNumber}"/>
<label for="homePhoneNumber"></label>
</td>
<th><s:Locale code="userinfo.homeEmail" /></th>
<td >
<input type="text" id="homeEmail" name="homeEmail" title="" value="${model.homeEmail}"/>
<label for="homeEmail"></label>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;
</td>
</tr>
<tr>
<th><s:Locale code="QQ" /></th>
<td>
<input type="text" id="qq" name="qq" title="" value="${model.qq}"/>
<label for="qq"></label>
</td>
<th><s:Locale code="userinfo.ims.weixin" /></th>
<td >
<input type="text" id="weixin" name="weixin" title="" value="${model.weixin}"/>
<label for="weixin"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.ims.sinaweibo" /></th>
<td>
<input type="text" id="sinaweibo" name="sinaweibo" title="" value="${model.sinaweibo}"/>
<label for="sinaweibo"></label>
</td>
<th><s:Locale code="userinfo.ims.yixin" /></th>
<td >
<input type="text" id="yixin" name="yixin" title="" value="${model.yixin}"/>
<label for="weixin"></label>
</td>
</tr>
<tr>
<th><s:Locale code="Facebook" /></th>
<td>
<input type="text" id="facebook" name="facebook" title="" value="${model.facebook}"/>
<label for="facebook"></label>
</td>
<th><s:Locale code="Skype" /></th>
<td >
<input type="text" id="skype" name="skype" title="" value="${model.skype}"/>
<label for="weixin"></label>
</td>
</tr>
<tr>
<th><s:Locale code="MSN" /></th>
<td>
<input type="text" id="msn" name="msn" title="" value="${model.msn}"/>
<label for="msn"></label>
</td>
<th><s:Locale code="GTalk" /></th>
<td >
<input type="text" id="gtalk" name="gtalk" title="" value="${model.gtalk}"/>
<label for="gtalk"></label>
</td>
</tr>
<tr>
<th><s:Locale code="YAHOO" /></th>
<td>
<input type="text" id="yahoo" name="yahoo" title="" value="${model.yahoo}"/>
<label for="yahoo"></label>
</td>
<th><s:Locale code="LINE" /></th>
<td >
<input type="text" id="line" name="line" title="" value="${model.line}"/>
<label for="line"></label>
</td>
</tr>
<tr>
<th><s:Locale code="AIM" /></th>
<td>
<input type="text" id="aim" name="aim" title="" value="${model.aim}"/>
<label for="aim"></label>
</td>
<th><s:Locale code="userinfo.ims.define" /></th>
<td >
<input type="text" id="defineIm" name="defineIm" title="" value="${model.defineIm}"/>
<label for="defineIm"></label>
</td>
</tr>
</tbody>
</table>
<div class="clear"></div>
</div>
</div>
<div >
<div >
<input id="_method" type="hidden" name="_method" value="post"/>
<input id="submitBtn" class="button" type="button" value="<s:Locale code="button.text.save" />"/>
</div>
</div>
</div>
</form>

File diff suppressed because it is too large Load Diff

View File

@ -6,20 +6,19 @@
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<div class="container">
<table width="100%">
<tr>
<td>
<form id="actionForm" method="post" type="label" autoclose="true" action="<s:Base/>/safe/changeAppLoginPasswod">
<table class="datatable" >
<table class="table table-bordered" >
<tbody>
<tr>
<th colspan="2"><s:Locale code="login.password.applogin.changepassword" /></th>
@ -27,21 +26,21 @@
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
<td>
<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
<input class="form-control" readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.username" /> :</th>
<td>
<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
<input class="form-control" readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
</td>
</tr>
<tr>
<th><s:Locale code="login.password.oldPassword" /> :</th>
<td>
<input type="password" id="oldPassword" name="oldPassword" class="required" title="" value=""/>
<input class="form-control" type="password" id="oldPassword" name="oldPassword" class="required" title="" value=""/>
<b class="orange">*</b>
<label for="oldPassword"></label>
</td>
@ -49,7 +48,7 @@
<tr>
<th><s:Locale code="login.password.newPassword" />:</th>
<td>
<input type="password" id="newPassword" name="newPassword" class=" required" title="" value=""/>
<input class="form-control" type="password" id="newPassword" name="newPassword" class=" required" title="" value=""/>
<b class="orange">*</b>
<label for="newPassword"></label>
</td>
@ -57,7 +56,7 @@
<tr>
<th><s:Locale code="login.password.confirmPassword" />:</th>
<td nowrap>
<input type="password" id="confirmPassword" name="confirmPassword" class="{ required: true, equalTo: '#newPassword' }" title="" value=""/>
<input class="form-control" type="password" id="confirmPassword" name="confirmPassword" class="{ required: true, equalTo: '#newPassword' }" title="" value=""/>
<b class="orange">*</b>
<label for="confirmPassword"></label>
</td>
@ -65,7 +64,7 @@
<tr>
<td colspan="2" class="center">
<input id="_method" type="hidden" name="_method" value="post"/>
<input class="button" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
<input class="button btn btn-primary" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
</td>
</tr>
@ -75,6 +74,7 @@
</td>
</tr>
</table>
</div>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>

View File

@ -6,20 +6,19 @@
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<div class="container">
<table width="100%">
<tr>
<td>
<form id="actionForm" method="post" type="label" autoclose="true" action="<s:Base/>/safe/changePassword">
<table class="datatable" >
<table class="table table-bordered" >
<tbody>
<tr>
<th colspan="2"><s:Locale code="login.password.changepassword" /></th>
@ -27,21 +26,21 @@
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
<td>
<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
<input class="form-control" readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.username" /> :</th>
<td>
<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
<input class="form-control" readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
</td>
</tr>
<tr>
<th><s:Locale code="login.password.oldPassword" /> :</th>
<td>
<input type="password" id="oldPassword" name="oldPassword" class="required" title="" value=""/>
<input class="form-control" type="password" id="oldPassword" name="oldPassword" class="required" title="" value=""/>
<b class="orange">*</b>
<label for="oldPassword"></label>
</td>
@ -49,7 +48,7 @@
<tr>
<th><s:Locale code="login.password.newPassword" />:</th>
<td>
<input type="password" id="newPassword" name="newPassword" class=" required" title="" value=""/>
<input class="form-control" type="password" id="newPassword" name="newPassword" class=" required" title="" value=""/>
<b class="orange">*</b>
<label for="newPassword"></label>
</td>
@ -57,7 +56,7 @@
<tr>
<th><s:Locale code="login.password.confirmPassword" />:</th>
<td nowrap>
<input type="password" id="confirmPassword" name="confirmPassword" class="{ required: true, equalTo: '#newPassword' }" title="" value=""/>
<input class="form-control" type="password" id="confirmPassword" name="confirmPassword" class="{ required: true, equalTo: '#newPassword' }" title="" value=""/>
<b class="orange">*</b>
<label for="confirmPassword"></label>
</td>
@ -65,7 +64,7 @@
<tr>
<td colspan="2" class="center">
<input id="_method" type="hidden" name="_method" value="post"/>
<input class="button" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
<input class="button btn btn-primary" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
</td>
</tr>
@ -75,6 +74,7 @@
</td>
</tr>
</table>
</div>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>

View File

@ -7,20 +7,19 @@
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<div class="container">
<table width="100%">
<tr>
<td>
<form id="actionForm" method="post" type="label" autoclose="true" action="<s:Base/>/safe/setting">
<table class="datatable" >
<table class="table table-bordered" >
<tbody>
<tr>
<th colspan="2">authnSetting</th>
@ -28,21 +27,21 @@
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
<td style="width:700px">
<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
<input class="form-control" readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.username" /> :</th>
<td>
<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
<input class="form-control" readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.authnType" />:</th>
<td nowrap>
<select name="authnType" id="authnType">
<select class="form-control" name="authnType" id="authnType">
<option value="1" <c:if test="${0==model.authnType}">selected</c:if> ><s:Locale code="button.text.select" /></option>
<option value="1" <c:if test="${1==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.1" /></option>
<!--
@ -65,35 +64,35 @@
<tr>
<th><s:Locale code="userinfo.mobile" /> :</th>
<td>
<input type="text" id="mobile" name="mobile" class=" required" title="" value="${model.mobile}"/>
<input class="form-control" type="text" id="mobile" name="mobile" class=" required" title="" value="${model.mobile}"/>
<label for="mobile"></label>
</td>
</tr>
<tr style="display:none;">
<th>Verify Code :</th>
<td>
<input type="text" id="mobileVerify" name="mobileVerify" class="required" title="" value="1" style="width:200px" /><input class="button" style="width:100px" type="button" id="getMobileVerifyBtn" value="get Verify"/>
<input class="form-control" type="text" id="mobileVerify" name="mobileVerify" class="required" title="" value="1" style="width:200px" /><input class="button" style="width:100px" type="button" id="getMobileVerifyBtn" value="get Verify"/>
<label for="verify"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.email" /> :</th>
<td>
<input type="text" id="email" name="email" class="required" title="" value="${model.email}"/>
<input class="form-control" type="text" id="email" name="email" class="required" title="" value="${model.email}"/>
<label for="eamil"></label>
</td>
</tr>
<tr style="display:none;">
<th>Verify Code :</th>
<td>
<input type="text" id="emailVerify" name="emailVerify" class="required" title="" value="Verify" style="width:200px" /><input class="button" style="width:100px" type="button" id="getEmailVerifyBtn" value="get Verify"/>
<input class="form-control" type="text" id="emailVerify" name="emailVerify" class="required" title="" value="Verify" style="width:200px" /><input class="button" style="width:100px" type="button" id="getEmailVerifyBtn" value="get Verify"/>
<label for="verify"></label>
</td>
</tr>
<tr>
<td colspan="2" class="center">
<input id="_method" type="hidden" name="_method" value="post"/>
<input class="button" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
<input class="button btn btn-primary" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
</td>
</tr>
@ -103,6 +102,7 @@
</td>
</tr>
</table>
</div>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>

View File

@ -10,15 +10,14 @@
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<div class="container">
<%if(WebContext.getUserInfo().getGridList()==0) {%>
<table class="datatable">
<table class="table">
<c:forEach begin="1" end="${(fn:length(listSocialSignOnProvider)+3)/4}" var="num">
<tr>
<c:forEach items="${listSocialSignOnProvider}" var="socialSignOnProvider" begin="${(num-1)*4}" end="${4*num-1}">
@ -45,7 +44,7 @@
</table>
<%}else{%>
<table class="datatable">
<table class="table">
<tr>
<td>
<s:Locale code="login.social.icon"/>
@ -73,6 +72,7 @@
</c:forEach>
</table>
<%} %>
</div>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>

View File

@ -5,8 +5,7 @@
<html>
<head>
<jsp:include page="layout/header.jsp"></jsp:include>
<jsp:include page="layout/common.css.jsp"></jsp:include>
<jsp:include page="layout/common.js.jsp"></jsp:include>
<jsp:include page="../layout/common.cssjs.jsp"></jsp:include>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><s:Locale code="login.session.timeout.tip"/></title>
</head>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,331 @@
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
}
a:hover {
color: #0056b3;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg {
overflow: hidden;
vertical-align: middle;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
select {
word-wrap: normal;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
cursor: pointer;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,64 +5,11 @@ body{
margin-left: auto;
margin-right: auto;
padding: 0 0 0 0px;
font-size: 12px;
font-size: 14px;
text-align:center;
float:center;
font-family: "Arial", "Helvetica", "Verdana", "sans-serif";
}
table td,select,button,input{
font-size: 12px;
}
table.datatable {
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
width: 100%;
}
table.datatable th{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
}
table.datatable td{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
text-align: left;
text-indent: 5px;
}
table.datatable td.center{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
text-align: center;
text-indent: 0px;
}
table.hidetable {
border-collapse:collapse;
width: 100%;
border: 0px;
}
table.hidetable th{
border: 0px;
border-collapse:collapse;
border-spacing:0;
}
table.hidetable td{
border-collapse:collapse;
border-spacing:0;
border: 0px;
}
.form_title_bar{
width: 100%;
@ -83,11 +30,6 @@ table.hidetable td{
vertical-align: central;
}
button,input{
color: #393939;
}
#topBar{
text-shadow: 0 1px 0 #fff;
border-bottom: 1px solid #e5e5e5;
@ -109,7 +51,7 @@ button,input{
}
#nav_second{
height:31px;
height:35px;
}
#nav_third{
/*border-top: 1px solid #e5e5e5;*/
@ -177,20 +119,20 @@ button,input{
}
#logout{
width: 40px;
width: 45px;
background: #c00 ;
color: #fff;
font-weight: bold;
}
#manage{
width: 40px;
width: 50px;
background-color: #2AA9A9;
font-weight: bold;
}
#changepassword{
width: 65px;
width: 75px;
background-color: #f28018;
font-weight: bold;
}
@ -199,202 +141,6 @@ button,input{
color: #fff;
}
a {
color: #4183c4;
text-decoration: none;
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"] {
min-height: 27px;
height: 27px;
padding: 4px 8px;
outline: none;
color: #333;
background-color: #fff;
background-repeat: no-repeat;
background-position: right center;
border: 1px solid #ccc;
border-radius: 3px;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.075);
transition: all 0.15s ease-in;
-webkit-transition: all 0.15s ease-in 0;
vertical-align: middle;
width:90%;
}
textarea {
min-height: 27px;
padding: 4px 8px;
outline: none;
color: #333;
background-color: #fff;
background-repeat: no-repeat;
background-position: right center;
border: 1px solid #ccc;
border-radius: 3px;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.075);
transition: all 0.15s ease-in;
-webkit-transition: all 0.15s ease-in 0;
vertical-align: middle;
width:90%;
}
input[type="text"]:focus,
input[type="text"].focus,
input[type="password"].focus,
input[type="password"]:focus,
input[type="email"].focus,
input[type="email"]:focus,
input[type="number"].focus,
input[type="number"]:focus,
input[type="tel"].focus,
input[type="tel"]:focus,
input[type="url"].focus,
input[type="url"]:focus,
textarea.focus,
textarea:focus {
border-color: #51a7e8;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.075),0 0 5px rgba(81,167,232,0.5)
}
.button,.minibutton {
position: relative;
display: inline-block;
padding: 7px 15px;
font-size: 13px;
font-weight: bold;
color: #333;
text-shadow: 0 1px 0 rgba(255,255,255,0.9);
white-space: nowrap;
background-color: #eaeaea;
background-image: -moz-linear-gradient(#eaeaea, #eaeaea);
background-image: -webkit-linear-gradient(#eaeaea, #eaeaea);
background-image: linear-gradient(#eaeaea, #eaeaea);
background-repeat: repeat-x;
border-radius: 3px;
border: 1px solid #ddd;
border-bottom-color: #c5c5c5;
box-shadow: 0 1px 3px rgba(0,0,0,0.05);
vertical-align: middle;
cursor: pointer;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-appearance: none
}
.button:hover,.button:active,.button.zeroclipboard-is-hover,.button.zeroclipboard-is-active,.minibutton:hover,.minibutton:active,.minibutton.zeroclipboard-is-hover,.minibutton.zeroclipboard-is-active {
text-decoration: none;
background-color: #dadada;
background-image: -moz-linear-gradient(#dadada, #dadada);
background-image: -webkit-linear-gradient(#dadada, #dadada);
background-image: linear-gradient(#dadada, #dadada);
background-repeat: repeat-x;
border-color: #ccc #ccc #b5b5b5
}
.button:active,.button.selected,.button.zeroclipboard-is-active,.minibutton:active,.minibutton.selected,.context-menu-container.active .minibutton.switcher,.context-menu-container.active .context-button,.minibutton.zeroclipboard-is-active {
background-color: #dadada;
background-image: none;
border-color: #b5b5b5;
box-shadow: inset 0 3px 5px rgba(0,0,0,0.15)
}
.button:disabled,.button:disabled:hover,.button.disabled,.button.disabled:hover,.minibutton:disabled,.minibutton:disabled:hover,.minibutton.disabled,.minibutton.disabled:hover {
opacity: .5;
color: #666;
text-shadow: 0 1px 0 rgba(255,255,255,0.9);
background-image: none;
background-color: #e5e5e5;
border-color: #c5c5c5;
cursor: default;
box-shadow: none
}
.button.primary,.minibutton.primary {
color: #fff;
text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
background-color: #44b549;
background-image: -moz-linear-gradient(#44b549, #44b549);
background-image: -webkit-linear-gradient(#44b549, #44b549);
background-image: linear-gradient(#44b549, #44b549);
background-repeat: repeat-x;
border-color: #44b549
}
.button.primary:hover,.minibutton.primary:hover {
color: #fff;
background-color: #4aaf33;
background-image: -moz-linear-gradient(#4aaf33, #4aaf33);
background-image: -webkit-linear-gradient(#4aaf33, #4aaf33);
background-image: linear-gradient(#4aaf33, #4aaf33);
background-repeat: repeat-x;
border-color: #4aaf33
}
.button.primary:active,.button.primary.selected,.minibutton.primary:active,.minibutton.primary.selected,.context-menu-container.active .primary.minibutton.switcher,.context-menu-container.active .primary.context-button {
background-color: #569e3d;
background-image: none;
border-color: #418737
}
.button.primary:disabled,.button.primary:disabled:hover,.button.primary.disabled,.button.primary.disabled:hover,.minibutton.primary:disabled,.minibutton.primary:disabled:hover,.minibutton.primary.disabled,.minibutton.primary.disabled:hover {
color: #fff;
text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
background-color: #60b044;
background-image: -moz-linear-gradient(#8add6d, #60b044);
background-image: -webkit-linear-gradient(#8add6d, #60b044);
background-image: linear-gradient(#8add6d, #60b044);
background-repeat: repeat-x;
border-color: #74bb5a #74bb5a #509338
}
.button,.minibutton {
outline: none
}
.button:focus,.minibutton:focus {
text-decoration: none;
border-color: #51a7e8;
box-shadow: 0 0 5px rgba(81,167,232,0.5)
}
.button img {
position: relative;
top: -1px;
margin-right: 3px;
vertical-align: middle
}
.button>.octicon {
vertical-align: middle;
margin-top: -1px
}
.minibutton {
padding: 0 10px;
line-height: 32px;
box-shadow: none
}
.minibutton:hover .octicon-device-desktop:before {
background-position: -18px 0
}
.minibutton i {
font-weight: 500;
font-style: normal;
opacity: .6
}
.form_radio_label, .form_checkbox_label{
display: inline-block;
text-align: left;

View File

@ -0,0 +1,492 @@
* { padding:0; margin:0; outline:0; }
body{
margin: 0;
margin-top: 0px;
margin-left: auto;
margin-right: auto;
padding: 0 0 0 0px;
font-size: 12px;
text-align:center;
float:center;
font-family: "Arial", "Helvetica", "Verdana", "sans-serif";
}
/*table td,select,button,input{
font-size: 12px;
}
table.datatable {
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
width: 100%;
}
table.datatable th{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
}
table.datatable td{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
text-align: left;
text-indent: 5px;
}
table.datatable td.center{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
text-align: center;
text-indent: 0px;
}
table.hidetable {
border-collapse:collapse;
width: 100%;
border: 0px;
}
table.hidetable th{
border: 0px;
border-collapse:collapse;
border-spacing:0;
}
table.hidetable td{
border-collapse:collapse;
border-spacing:0;
border: 0px;
}
*/
.form_title_bar{
width: 100%;
height: 36px;
text-align: left;
text-indent: 30px;
background-color: #f8f8f8;
}
.form_title_bar a {
text-decoration: none;
display: inline-block;
height: 14px;
color: #333;
font-size: 14px;
font-weight: bold;
padding: 8px 0;
vertical-align: central;
}
button,input{
color: #393939;
}
#topBar{
text-shadow: 0 1px 0 #fff;
border-bottom: 1px solid #e5e5e5;
min-width: 100%;
align:left;
height:60px;
margin-bottom: 1px;
}
#topNav{
border-bottom: 1px solid #e5e5e5;
}
#navs{
border-bottom: 1px solid #e5e5e5;
}
#nav_primary{
background: #414141;
}
#nav_second{
height:31px;
}
#nav_third{
/*border-top: 1px solid #e5e5e5;*/
}
.container {
width: 990px;
margin-left: auto;
margin-right: auto;
padding: 0 10px
}
#mainFrame{
margin-top: 0px;
margin-left: auto;
margin-right: auto;
display: block;
width:990px;
align:center;
}
#footer{
text-shadow: 0 1px 0 #fff;
border-top: 1px solid #e5e5e5;
min-width: 100%;
height:80px;
}
#content{
margin-top: 10px;
min-height:480px;
*height:480px;
margin-bottom: 10px;
}
#tool_box {
margin-bottom: 10px;
border: 1px solid #e5e5e5;
}
#tool_box_left {
padding-left: 10px;
float: left;
height:30px;
width:50%;
text-align: left;
border-right: 1px solid #e5e5e5;
}
#tool_box_right {
height:32px;
text-align: right;
padding-right: 10px;
width:484px;
}
#advanced_search {
margin-top: 10px;
min-height:30px;
*height:40px;
border: 1px solid #e5e5e5;
margin-bottom: 10px;
display: none;
}
#logout{
width: 40px;
background: #c00 ;
color: #fff;
font-weight: bold;
}
#manage{
width: 40px;
background-color: #2AA9A9;
font-weight: bold;
}
#changepassword{
width: 65px;
background-color: #f28018;
font-weight: bold;
}
#manage a,#logout a,#changepassword a{
color: #fff;
}
a {
color: #4183c4;
text-decoration: none;
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"] {
min-height: 27px;
height: 27px;
padding: 4px 8px;
outline: none;
color: #333;
background-color: #fff;
background-repeat: no-repeat;
background-position: right center;
border: 1px solid #ccc;
border-radius: 3px;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.075);
transition: all 0.15s ease-in;
-webkit-transition: all 0.15s ease-in 0;
vertical-align: middle;
width:90%;
}
textarea {
min-height: 27px;
padding: 4px 8px;
outline: none;
color: #333;
background-color: #fff;
background-repeat: no-repeat;
background-position: right center;
border: 1px solid #ccc;
border-radius: 3px;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.075);
transition: all 0.15s ease-in;
-webkit-transition: all 0.15s ease-in 0;
vertical-align: middle;
width:90%;
}
input[type="text"]:focus,
input[type="text"].focus,
input[type="password"].focus,
input[type="password"]:focus,
input[type="email"].focus,
input[type="email"]:focus,
input[type="number"].focus,
input[type="number"]:focus,
input[type="tel"].focus,
input[type="tel"]:focus,
input[type="url"].focus,
input[type="url"]:focus,
textarea.focus,
textarea:focus {
border-color: #51a7e8;
box-shadow: inset 0 1px 2px rgba(0,0,0,0.075),0 0 5px rgba(81,167,232,0.5)
}
.button,.minibutton {
position: relative;
display: inline-block;
padding: 7px 15px;
font-size: 13px;
font-weight: bold;
color: #333;
text-shadow: 0 1px 0 rgba(255,255,255,0.9);
white-space: nowrap;
background-color: #eaeaea;
background-image: -moz-linear-gradient(#eaeaea, #eaeaea);
background-image: -webkit-linear-gradient(#eaeaea, #eaeaea);
background-image: linear-gradient(#eaeaea, #eaeaea);
background-repeat: repeat-x;
border-radius: 3px;
border: 1px solid #ddd;
border-bottom-color: #c5c5c5;
box-shadow: 0 1px 3px rgba(0,0,0,0.05);
vertical-align: middle;
cursor: pointer;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-appearance: none
}
.button:hover,.button:active,.button.zeroclipboard-is-hover,.button.zeroclipboard-is-active,.minibutton:hover,.minibutton:active,.minibutton.zeroclipboard-is-hover,.minibutton.zeroclipboard-is-active {
text-decoration: none;
background-color: #dadada;
background-image: -moz-linear-gradient(#dadada, #dadada);
background-image: -webkit-linear-gradient(#dadada, #dadada);
background-image: linear-gradient(#dadada, #dadada);
background-repeat: repeat-x;
border-color: #ccc #ccc #b5b5b5
}
.button:active,.button.selected,.button.zeroclipboard-is-active,.minibutton:active,.minibutton.selected,.context-menu-container.active .minibutton.switcher,.context-menu-container.active .context-button,.minibutton.zeroclipboard-is-active {
background-color: #dadada;
background-image: none;
border-color: #b5b5b5;
box-shadow: inset 0 3px 5px rgba(0,0,0,0.15)
}
.button:disabled,.button:disabled:hover,.button.disabled,.button.disabled:hover,.minibutton:disabled,.minibutton:disabled:hover,.minibutton.disabled,.minibutton.disabled:hover {
opacity: .5;
color: #666;
text-shadow: 0 1px 0 rgba(255,255,255,0.9);
background-image: none;
background-color: #e5e5e5;
border-color: #c5c5c5;
cursor: default;
box-shadow: none
}
.button.primary,.minibutton.primary {
color: #fff;
text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
background-color: #44b549;
background-image: -moz-linear-gradient(#44b549, #44b549);
background-image: -webkit-linear-gradient(#44b549, #44b549);
background-image: linear-gradient(#44b549, #44b549);
background-repeat: repeat-x;
border-color: #44b549
}
.button.primary:hover,.minibutton.primary:hover {
color: #fff;
background-color: #4aaf33;
background-image: -moz-linear-gradient(#4aaf33, #4aaf33);
background-image: -webkit-linear-gradient(#4aaf33, #4aaf33);
background-image: linear-gradient(#4aaf33, #4aaf33);
background-repeat: repeat-x;
border-color: #4aaf33
}
.button.primary:active,.button.primary.selected,.minibutton.primary:active,.minibutton.primary.selected,.context-menu-container.active .primary.minibutton.switcher,.context-menu-container.active .primary.context-button {
background-color: #569e3d;
background-image: none;
border-color: #418737
}
.button.primary:disabled,.button.primary:disabled:hover,.button.primary.disabled,.button.primary.disabled:hover,.minibutton.primary:disabled,.minibutton.primary:disabled:hover,.minibutton.primary.disabled,.minibutton.primary.disabled:hover {
color: #fff;
text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
background-color: #60b044;
background-image: -moz-linear-gradient(#8add6d, #60b044);
background-image: -webkit-linear-gradient(#8add6d, #60b044);
background-image: linear-gradient(#8add6d, #60b044);
background-repeat: repeat-x;
border-color: #74bb5a #74bb5a #509338
}
.button,.minibutton {
outline: none
}
.button:focus,.minibutton:focus {
text-decoration: none;
border-color: #51a7e8;
box-shadow: 0 0 5px rgba(81,167,232,0.5)
}
.button img {
position: relative;
top: -1px;
margin-right: 3px;
vertical-align: middle
}
.button>.octicon {
vertical-align: middle;
margin-top: -1px
}
.minibutton {
padding: 0 10px;
line-height: 32px;
box-shadow: none
}
.minibutton:hover .octicon-device-desktop:before {
background-position: -18px 0
}
.minibutton i {
font-weight: 500;
font-style: normal;
opacity: .6
}
.form_radio_label, .form_checkbox_label{
display: inline-block;
text-align: left;
cursor: pointer;
margin-right: 1em;
}
.icon_checkbox {
background: url("../images/checkbox.png") 0 -83px no-repeat;
width: 16px;
height: 16px;
vertical-align: middle;
display: inline-block;
margin-top: -0.2em;
}
.icon_checkbox_selected{
background: url("../images/checkbox.png") 0 -109px no-repeat;
width: 16px;
height: 16px;
vertical-align: middle;
display: inline-block;
margin-top: -0.2em;
}
.icon_radiobox {
background: url("../images/checkbox.png") 0 -5px no-repeat;
width: 16px;
height: 16px;
vertical-align: middle;
display: inline-block;
margin-top: -0.2em;
}
.icon_radiobox_selected{
background: url("../images/checkbox.png") 0 -31px no-repeat;
width: 16px;
height: 16px;
vertical-align: middle;
display: inline-block;
margin-top: -0.2em;
}
.select-menu-modal{
position: absolute;
display: none;
z-index: 1989;
width: 300px;
margin-top: 4px;
margin-bottom: 20px;
overflow: hidden;
font-size: 12px;
color: #666;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0,0,0,0.15);
border-radius: 5px;
box-shadow: 0 3px 12px rgba(0,0,0,0.25);
}
.select-menu-item{
cursor: pointer;
line-height: 33px;
border-bottom: 1px solid #eee;
display: table;
table-layout: fixed;
width: 100%;
overflow: hidden;
color: inherit;
text-align: left;
}
.select-menu-item a{
text-decoration : none;
}
.select-menu-item a div{
width: 140px;
line-height: 33px;
}
.select-menu-item-selected{
background-color: #4183c4;
color: #fff;
}
.select-menu-item-selected a{
color: #fff;
}

View File

@ -1,133 +0,0 @@
.jqgridclass {
background: #eee;
}
.ui-jqgrid{
border: 1px solid #ddd;
}
.ui-jqgrid > .ui-jqgrid-view{
font-size: 12px;
}
.ui-jqgrid .ui-jqgrid-htable th {
height: 32px;
background: #fff;
}
.ui-jqgrid .ui-jqgrid-htable th.ui-th-column div{
background: #fff;
color: #333;
}
.ui-jqgrid .jqgrid-rownum{
background: #fff;
}
.ui-jqgrid-sortable {
text-align: center;
color: #333;
margin: 0;
padding: 0;
} /*修改列名的字体大小*/
.ui-jqgrid-jquery-ui.ui-jqgrid .ui-jqgrid-bdiv tr.ui-row-ltr > td{
border-color: #ddd;
}
.ui-jqgrid .ui-jqgrid-bdiv tr.ui-row-ltr > td {
height: 32px;
line-height: 32px;
border-right: solid 1px #ddd;
} /*修改表格内容字体*/
.ui-jqgrid .ui-jqgrid-htable th.ui-th-column {
line-height: 32px;
overflow: hidden;
white-space: nowrap;
text-align: center;
border-top: 0px none;
border-bottom: 0px none;
} /*改变表头的样式*/
.ui-jqgrid .ui-jqgrid-bdiv{
overflow:visible;
}
.ui-jqgrid .ui-jqgrid-hdiv {
overflow-x:visible;
height: 34px;
background: #fff;
}
.ui-jqgrid .ui-jqgrid-htable th div {
height: 32px;
}
.ui-jqgrid-btable .ui-state-highlight{
border:#CDE5F6;
background: #CDE5F6;
}
.ui-jqgrid-hdiv th {
height: 32px;
background: #fff;
}
.ui-jqgrid .ui-pg-table {
margin-top: 0px;
}
.ui-jqgrid .ui-jqgrid-pager {
border-left: 0 none !important;
border-right: 0 none !important;
border-bottom: 0 none !important;
margin: 0 !important;
padding: 0 !important;
position: relative;
height: 32px;
white-space: nowrap;
overflow: hidden;
font-size: 11px;
background: #fff;
}
#pg_list_pager{
border: 1px solid #d8dcdf;
}
.ui-jqgrid .ui-pg-input{
min-height: 28px;
width: 50px;
font-size: 1em;
}
.ui-jqgrid .ui-pg-table .ui-pg-selbox {
font-size: 1em;
border: 1px solid #ccc;
line-height: 18px;
display: block;
height: 31px;
width: 45px;
text-align: center;
margin: 0;
}
.ui-jqgrid .ui-pager-control .ui-pg-button{
height: 28px;
}
.ui-jqgrid #jqgh_list_cb #cb_list{
margin-top: 10px;
}
.ui-jqgrid #jqgh_list2_cb #cb_list2{
margin-top: 10px;
}
.ui-jqgrid .loading {
background: url(../images/loading_img.gif);
border-style: none;
background-repeat: no-repeat;
width:78px;
height:74px;
}

View File

@ -34,11 +34,11 @@
display: block;
background: #414141; /*background of menu items (default state)*/
color: white;
padding: 8px 20px;
padding: 10px 20px;
border-right: 1px solid white;
color: #2d2b2b;
text-decoration: none;
height: 25px;
height: 40px;
font-size: 13px;
}

View File

@ -1,2 +0,0 @@
$ cat .gitignore
parse.php

View File

@ -1,20 +0,0 @@
datetimepicker
==============
[Documentation][doc]
jQuery Plugin Date and Time Picker
DateTimePicker
![ScreenShot](https://raw2.github.com/xdan/datetimepicker/master/screen/1.png)
DatePicker
![ScreenShot](https://raw2.github.com/xdan/datetimepicker/master/screen/2.png)
TimePicker
![ScreenShot](https://raw2.github.com/xdan/datetimepicker/master/screen/3.png)
[doc]: http://xdsoft.net/jqplugins/datetimepicker/

View File

@ -1,50 +0,0 @@
{
"name":"datetimepicker",
"version":"2.4.1",
"main": [
"jquery.datetimepicker.js",
"jquery.datetimepicker.css"
],
"ignore": [
"**/screen",
"**/datetimepicker.jquery.json",
"**/*.png",
"**/*.txt",
"**/*.md",
"**/*.html",
"**/*.tpl",
"**/jquery.js"
],
"keywords": [
"calendar",
"date",
"time",
"form",
"datetime",
"datepicker",
"timepicker",
"datetimepicker",
"validation",
"ui",
"scroller",
"picker",
"i18n",
"input",
"jquery",
"touch"
],
"dependencies": {
"jquery": ">= 1.7.2"
},
"authors": [
{
"name": "Chupurnov Valeriy",
"email": "chupurnov@gmail.com",
"homepage": "http://xdsoft.net/contacts.html"
}
],
"homepage":"http://xdsoft.net/jqplugins/datetimepicker/",
"repository": {
"type": "git", "url": "git://github.com:xdan/datetimepicker.git"
}
}

View File

@ -1,418 +0,0 @@
.xdsoft_datetimepicker{
box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506);
background: #FFFFFF;
border-bottom: 1px solid #BBBBBB;
border-left: 1px solid #CCCCCC;
border-right: 1px solid #CCCCCC;
border-top: 1px solid #CCCCCC;
color: #333333;
font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
padding: 8px;
padding-left: 0;
padding-top: 2px;
position: absolute;
z-index: 9999;
-moz-box-sizing: border-box;
box-sizing: border-box;
display:none;
}
.xdsoft_datetimepicker iframe {
position: absolute;
left: 0;
top: 0;
width: 75px;
height: 210px;
background: transparent;
border:none;
}
/*For IE8 or lower*/
.xdsoft_datetimepicker button {
border:none !important;
}
.xdsoft_noselect{
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.xdsoft_noselect::selection { background: transparent; }
.xdsoft_noselect::-moz-selection { background: transparent; }
.xdsoft_datetimepicker.xdsoft_inline{
display: inline-block;
position: static;
box-shadow: none;
}
.xdsoft_datetimepicker *{
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
}
.xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker{
display:none;
}
.xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active{
display:block;
}
.xdsoft_datetimepicker .xdsoft_datepicker{
width: 224px;
float:left;
margin-left:8px;
}
.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker{
width: 256px;
}
.xdsoft_datetimepicker .xdsoft_timepicker{
width: 58px;
float:left;
text-align:center;
margin-left:8px;
margin-top: 0;
}
.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker{
margin-top:8px;
margin-bottom:3px
}
.xdsoft_datetimepicker .xdsoft_mounthpicker{
position: relative;
text-align: center;
}
.xdsoft_datetimepicker .xdsoft_label i,
.xdsoft_datetimepicker .xdsoft_prev,
.xdsoft_datetimepicker .xdsoft_next,
.xdsoft_datetimepicker .xdsoft_today_button{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC);
}
.xdsoft_datetimepicker .xdsoft_label i{
opacity:0.5;
background-position:-92px -19px;
display: inline-block;
width: 9px;
height: 20px;
vertical-align: middle;
}
.xdsoft_datetimepicker .xdsoft_prev{
float: left;
background-position:-20px 0;
}
.xdsoft_datetimepicker .xdsoft_today_button{
float: left;
background-position:-70px 0;
margin-left:5px;
}
.xdsoft_datetimepicker .xdsoft_next{
float: right;
background-position: 0 0;
}
.xdsoft_datetimepicker .xdsoft_next,
.xdsoft_datetimepicker .xdsoft_prev ,
.xdsoft_datetimepicker .xdsoft_today_button{
background-color: transparent;
background-repeat: no-repeat;
border: 0 none currentColor;
cursor: pointer;
display: block;
height: 30px;
opacity: 0.5;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
outline: medium none currentColor;
overflow: hidden;
padding: 0;
position: relative;
text-indent: 100%;
white-space: nowrap;
width: 20px;
}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next{
float:none;
background-position:-40px -15px;
height: 15px;
width: 30px;
display: block;
margin-left:14px;
margin-top:7px;
}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev{
background-position:-40px 0;
margin-bottom:7px;
margin-top: 0;
}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box{
height:151px;
overflow:hidden;
border-bottom:1px solid #DDDDDD;
}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div{
background: #F5F5F5;
border-top:1px solid #DDDDDD;
color: #666666;
font-size: 12px;
text-align: center;
border-collapse:collapse;
cursor:pointer;
border-bottom-width: 0;
height:25px;
line-height:25px;
}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child{
border-top-width: 0;
}
.xdsoft_datetimepicker .xdsoft_today_button:hover,
.xdsoft_datetimepicker .xdsoft_next:hover,
.xdsoft_datetimepicker .xdsoft_prev:hover {
opacity: 1;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
}
.xdsoft_datetimepicker .xdsoft_label{
display: inline;
position: relative;
z-index: 9999;
margin: 0;
padding: 5px 3px;
font-size: 14px;
line-height: 20px;
font-weight: bold;
background-color: #fff;
float:left;
width:182px;
text-align:center;
cursor:pointer;
}
.xdsoft_datetimepicker .xdsoft_label:hover>span{
text-decoration:underline;
}
.xdsoft_datetimepicker .xdsoft_label:hover i{
opacity:1.0;
}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select{
border:1px solid #ccc;
position:absolute;
right: 0;
top:30px;
z-index:101;
display:none;
background:#fff;
max-height:160px;
overflow-y:hidden;
}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{right:-7px;}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{right:2px;}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{
color: #fff;
background: #ff8000;
}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option{
padding:2px 10px 2px 5px;
text-decoration:none !important;
}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{
background: #33AAFF;
box-shadow: #178FE5 0 1px 3px 0 inset;
color:#fff;
font-weight: 700;
}
.xdsoft_datetimepicker .xdsoft_month{
width:100px;
text-align:right;
}
.xdsoft_datetimepicker .xdsoft_calendar{
clear:both;
}
.xdsoft_datetimepicker .xdsoft_year{
width: 48px;
margin-left: 5px;
}
.xdsoft_datetimepicker .xdsoft_calendar table{
border-collapse:collapse;
width:100%;
}
.xdsoft_datetimepicker .xdsoft_calendar td > div{
padding-right:5px;
}
.xdsoft_datetimepicker .xdsoft_calendar th{
height: 25px;
}
.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th{
width:14.2857142%;
background: #F5F5F5;
border:1px solid #DDDDDD;
color: #666666;
font-size: 12px;
text-align: right;
vertical-align: middle;
padding: 0;
border-collapse:collapse;
cursor:pointer;
height: 25px;
}
.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th{
width:12.5%;
}
.xdsoft_datetimepicker .xdsoft_calendar th{
background: #F1F1F1;
}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today{
color:#33AAFF;
}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{
background: #33AAFF;
box-shadow: #178FE5 0 1px 3px 0 inset;
color:#fff;
font-weight: 700;
}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,
.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled{
opacity:0.5;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled{
opacity:0.2;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
}
.xdsoft_datetimepicker .xdsoft_calendar td:hover,
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover{
color: #fff !important;
background: #ff8000 !important;
box-shadow: none !important;
}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover{
color: inherit !important;
background: inherit !important;
box-shadow: inherit !important;
}
.xdsoft_datetimepicker .xdsoft_calendar th{
font-weight: 700;
text-align: center;
color: #999;
cursor:default;
}
.xdsoft_datetimepicker .xdsoft_copyright{ color:#ccc !important; font-size:10px;clear:both;float:none;margin-left:8px;}
.xdsoft_datetimepicker .xdsoft_copyright a{ color:#eee !important;}
.xdsoft_datetimepicker .xdsoft_copyright a:hover{ color:#aaa !important;}
.xdsoft_time_box{
position:relative;
border:1px solid #ccc;
}
.xdsoft_scrollbar >.xdsoft_scroller{
background:#ccc !important;
height:20px;
border-radius:3px;
}
.xdsoft_scrollbar{
position:absolute;
width:7px;
right: 0;
top: 0;
bottom: 0;
cursor:pointer;
}
.xdsoft_scroller_box{
position:relative;
}
.xdsoft_datetimepicker.xdsoft_dark{
box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506);
background: #000000;
border-bottom: 1px solid #444444;
border-left: 1px solid #333333;
border-right: 1px solid #333333;
border-top: 1px solid #333333;
color: #cccccc;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box{
border-bottom:1px solid #222222;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div{
background: #0a0a0a;
border-top:1px solid #222222;
color: #999999;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label{
background-color: #000;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select{
border:1px solid #333;
background:#000;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{
color: #000;
background: #007fff;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{
background: #cc5500;
box-shadow: #b03e00 0 1px 3px 0 inset;
color:#000;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button{
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==);
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
background: #0a0a0a;
border:1px solid #222222;
color: #999999;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
background: #0e0e0e;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today{
color:#cc5500;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{
background: #cc5500;
box-shadow: #b03e00 0 1px 3px 0 inset;
color:#000;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover{
color: #000 !important;
background: #007fff !important;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{
color: #666;
}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright{ color:#333 !important;}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a{ color:#111 !important;}
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover{ color:#555 !important;}
.xdsoft_dark .xdsoft_time_box{
border:1px solid #333;
}
.xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller{
background:#333 !important;
}

View File

@ -1,28 +0,0 @@
{
"name": "jquery-datetimepicker",
"version": "2.4.0",
"description": "jQuery Plugin DateTimePicker it is DatePicker and TimePicker in one",
"main": "jquery.datetimepicker.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/xdan/datetimepicker.git"
},
"keywords": [
"jquery-plugin",
"calendar",
"date",
"time",
"datetime",
"datepicker",
"timepicker"
],
"author": "Chupurnov <chupurnov@gmail.com> (http://xdsoft.net/)",
"license": "MIT",
"bugs": {
"url": "https://github.com/xdan/datetimepicker/issues"
},
"homepage": "https://github.com/xdan/datetimepicker"
}

View File

@ -0,0 +1,44 @@
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
meta: {
banner: '/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.homepage %> */\n'
},
unwrap: {
options: {
base: './src',
globalBase: './src/global_modules',
name: 'dialog',
namespace: 'window',
banner: '<%= meta.banner %>'
},
'dialog.js': {
src: './src/dialog.js',
dest: './dist/dialog.js'
},
'dialog-plus.js': {
src: './src/dialog-plus.js',
dest: './dist/dialog-plus.js'
}
},
uglify: {
options: {
banner: '<%= meta.banner %>'
},
'dialog.js': {
src: './dist/dialog.js',
dest: './dist/dialog-min.js'
},
'dialog-plus.js': {
src: './dist/dialog-plus.js',
dest: './dist/dialog-plus-min.js'
}
}
});
grunt.loadNpmTasks('grunt-unwrap');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('default', ['unwrap', 'uglify']);
};

View File

@ -0,0 +1,56 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License.
“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.
An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.
A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”.
The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version.
The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:
a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:
a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license document.
c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.

View File

@ -0,0 +1,66 @@
# artDialog
[![CDNJS](https://img.shields.io/cdnjs/v/artDialog.svg)](https://cdnjs.com/libraries/artDialog)
[![NPM Version](https://img.shields.io/npm/v/art-dialog.svg)](https://npmjs.org/package/art-dialog)
[![NPM Downloads](https://img.shields.io/npm/dm/art-dialog.svg)](https://npmjs.org/package/art-dialog)
artDialog——经典、优雅的网页对话框控件。
[文档与示例](http://aui.github.io/artDialog/doc/index.html) | [AngularJS 版本](https://github.com/aui/angular-popups)
```
npm install --save-dev art-dialog
```
## 成功案例
超过 40 万网站在使用 artDialog其中不乏国内顶尖的产品
* [QQ空间 v8腾讯](http://qzone.qq.com)
* [Phpcms盛大](http://www.phpcms.cn)
* [极路由](http://www.hiwifi.com)
* ...
## 更新历史
7.0.0
1. 支持 Webpack
2. 支持 Npm
2. 将 CSS 打包到 JS 中
6.0.4
1. ``content()``方法传入隐藏元素并显示,并且``remove()``的时候会将元素插入到``body``避免被销毁 [#103](https://github.com/aui/artDialog/issues/103) [#126](https://github.com/aui/artDialog/issues/126)
2. 修复``button``方法可能会多次绑定事件的问题
3. 模态对话框可以避免 shift + tab 将焦点移出对话框 [#67](https://github.com/aui/artDialog/issues/67)
6.0.3
1. 修复``button``方法直接传入 html 不显示的问题
2. 修复版本管理导致[#78](https://github.com/aui/artDialog/issues/78)重现问题
6.0.2
1. 提供无依赖 seajs 与 requirejs 的版本
2. 取消按钮增加``cancelDisplay``配置,保留``cancel``事件的同时也不会显示取消按钮
6.0.1
1. 进一步完善焦点管理,避免抢夺开发者自己设置的焦点[#67](https://github.com/aui/artDialog/issues/67)
2. 修复对话框内容使用 html5 data-id 属性冲突的问题[#78](https://github.com/aui/artDialog/issues/78)
3. 改善 Esc 快捷键与 cancel 的问题[#36](https://github.com/aui/artDialog/issues/36)
6.0.0
1. 功能增强:支持定义左下角的区域 HTML、支持 12 个方向的气泡对话框、支持无标题栏与按钮区的对话框
2. 更好的交互体验:更加先进的焦点管理,支持无障碍访问
3. 面向未来:基于 HTML5 Dialog 的 API
4. 模块化:支持 AMD、CMD 规范
5. 可选增强版:拖拽支持、简化框架页面调用
## 授权协议
免费,且开源,基于[LGPL-3.0](./LICENSE.md)协议。
[\[AD\] 前端招聘:在海边写代码](https://juejin.im/post/5a2651d06fb9a0451c3a40ad)

View File

@ -0,0 +1 @@
theme: jekyll-theme-cayman

View File

@ -0,0 +1,461 @@
.ui-dialog {
*zoom: 1;
_float: left;
position: relative;
background-color: #FFF;
border: 1px solid #999;
border-radius: 6px;
outline: 0;
background-clip: padding-box;
font-family: Helvetica, arial, sans-serif;
font-size: 14px;
line-height: 1.428571429;
color: #333;
opacity: 0;
-webkit-transform: scale(0);
transform: scale(0);
-webkit-transition: -webkit-transform .15s ease-in-out, opacity .15s ease-in-out;
transition: transform .15s ease-in-out, opacity .15s ease-in-out;
}
.ui-popup-show .ui-dialog {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}
.ui-popup-focus .ui-dialog {
box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
}
.ui-popup-modal .ui-dialog {
box-shadow: 0 0 8px rgba(0, 0, 0, 0.1), 0 0 256px rgba(255, 255, 255, .3);
}
.ui-dialog-grid {
width: auto;
margin: 0;
border: 0 none;
border-collapse: collapse;
border-spacing: 0;
background: transparent;
}
.ui-dialog-header,
.ui-dialog-body,
.ui-dialog-footer {
padding: 0;
border: 0 none;
text-align: left;
background: transparent;
}
.ui-dialog-header {
white-space: nowrap;
border-bottom: 1px solid #E5E5E5;
}
.ui-dialog-close {
position: relative;
_position: absolute;
float: right;
top: 13px;
right: 13px;
_height: 26px;
padding: 0 4px;
font-size: 21px;
font-weight: bold;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 #FFF;
opacity: .2;
filter: alpha(opacity=20);
cursor: pointer;
background: transparent;
_background: #FFF;
border: 0;
-webkit-appearance: none;
}
.ui-dialog-close:hover,
.ui-dialog-close:focus {
color: #000000;
text-decoration: none;
cursor: pointer;
outline: 0;
opacity: 0.5;
filter: alpha(opacity=50);
}
.ui-dialog-title {
margin: 0;
line-height: 1.428571429;
min-height: 16.428571429px;
padding: 15px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
font-weight: bold;
cursor: default;
}
.ui-dialog-body {
padding: 20px;
text-align: center;
}
.ui-dialog-content {
display: inline-block;
position: relative;
vertical-align: middle;
*zoom: 1;
*display: inline;
text-align: left;
}
.ui-dialog-footer {
padding: 0 20px 20px 20px;
}
.ui-dialog-statusbar {
float: left;
margin-right: 20px;
padding: 6px 0;
line-height: 1.428571429;
font-size: 14px;
color: #888;
white-space: nowrap;
}
.ui-dialog-statusbar label:hover {
color: #333;
}
.ui-dialog-statusbar input,
.ui-dialog-statusbar .label {
vertical-align: middle;
}
.ui-dialog-button {
float: right;
white-space: nowrap;
}
.ui-dialog-footer button+button {
margin-bottom: 0;
margin-left: 5px;
}
.ui-dialog-footer button {
width: auto;
overflow: visible;
display: inline-block;
padding: 6px 12px;
_margin-left: 5px;
margin-bottom: 0;
font-size: 14px;
font-weight: normal;
line-height: 1.428571429;
text-align: center;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.ui-dialog-footer button:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.ui-dialog-footer button:hover,
.ui-dialog-footer button:focus {
color: #333333;
text-decoration: none;
}
.ui-dialog-footer button:active {
background-image: none;
outline: 0;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.ui-dialog-footer button[disabled] {
pointer-events: none;
cursor: not-allowed;
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
}
.ui-dialog-footer button {
color: #333333;
background-color: #ffffff;
border-color: #cccccc;
}
.ui-dialog-footer button:hover,
.ui-dialog-footer button:focus,
.ui-dialog-footer button:active {
color: #333333;
background-color: #ebebeb;
border-color: #adadad;
}
.ui-dialog-footer button:active {
background-image: none;
}
.ui-dialog-footer button[disabled],
.ui-dialog-footer button[disabled]:hover,
.ui-dialog-footer button[disabled]:focus,
.ui-dialog-footer button[disabled]:active {
background-color: #ffffff;
border-color: #cccccc;
}
.ui-dialog-footer button.ui-dialog-autofocus {
color: #ffffff;
background-color: #428bca;
border-color: #357ebd;
}
.ui-dialog-footer button.ui-dialog-autofocus:hover,
.ui-dialog-footer button.ui-dialog-autofocus:focus,
.ui-dialog-footer button.ui-dialog-autofocus:active {
color: #ffffff;
background-color: #3276b1;
border-color: #285e8e;
}
.ui-dialog-footer button.ui-dialog-autofocus:active {
background-image: none;
}
.ui-popup-top-left .ui-dialog,
.ui-popup-top .ui-dialog,
.ui-popup-top-right .ui-dialog {
top: -8px;
}
.ui-popup-bottom-left .ui-dialog,
.ui-popup-bottom .ui-dialog,
.ui-popup-bottom-right .ui-dialog {
top: 8px;
}
.ui-popup-left-top .ui-dialog,
.ui-popup-left .ui-dialog,
.ui-popup-left-bottom .ui-dialog {
left: -8px;
}
.ui-popup-right-top .ui-dialog,
.ui-popup-right .ui-dialog,
.ui-popup-right-bottom .ui-dialog {
left: 8px;
}
.ui-dialog-arrow-a,
.ui-dialog-arrow-b {
position: absolute;
display: none;
width: 0;
height: 0;
overflow: hidden;
_color: #FF3FFF;
_filter: chroma(color=#FF3FFF);
border: 8px dashed transparent;
}
.ui-popup-follow .ui-dialog-arrow-a,
.ui-popup-follow .ui-dialog-arrow-b {
display: block;
}
.ui-popup-top-left .ui-dialog-arrow-a,
.ui-popup-top .ui-dialog-arrow-a,
.ui-popup-top-right .ui-dialog-arrow-a {
bottom: -16px;
border-top: 8px solid #7C7C7C;
}
.ui-popup-top-left .ui-dialog-arrow-b,
.ui-popup-top .ui-dialog-arrow-b,
.ui-popup-top-right .ui-dialog-arrow-b {
bottom: -15px;
border-top: 8px solid #fff;
}
.ui-popup-top-left .ui-dialog-arrow-a,
.ui-popup-top-left .ui-dialog-arrow-b {
left: 15px;
}
.ui-popup-top .ui-dialog-arrow-a,
.ui-popup-top .ui-dialog-arrow-b {
left: 50%;
margin-left: -8px;
}
.ui-popup-top-right .ui-dialog-arrow-a,
.ui-popup-top-right .ui-dialog-arrow-b {
right: 15px;
}
.ui-popup-bottom-left .ui-dialog-arrow-a,
.ui-popup-bottom .ui-dialog-arrow-a,
.ui-popup-bottom-right .ui-dialog-arrow-a {
top: -16px;
border-bottom: 8px solid #7C7C7C;
}
.ui-popup-bottom-left .ui-dialog-arrow-b,
.ui-popup-bottom .ui-dialog-arrow-b,
.ui-popup-bottom-right .ui-dialog-arrow-b {
top: -15px;
border-bottom: 8px solid #fff;
}
.ui-popup-bottom-left .ui-dialog-arrow-a,
.ui-popup-bottom-left .ui-dialog-arrow-b {
left: 15px;
}
.ui-popup-bottom .ui-dialog-arrow-a,
.ui-popup-bottom .ui-dialog-arrow-b {
margin-left: -8px;
left: 50%;
}
.ui-popup-bottom-right .ui-dialog-arrow-a,
.ui-popup-bottom-right .ui-dialog-arrow-b {
right: 15px;
}
.ui-popup-left-top .ui-dialog-arrow-a,
.ui-popup-left .ui-dialog-arrow-a,
.ui-popup-left-bottom .ui-dialog-arrow-a {
right: -16px;
border-left: 8px solid #7C7C7C;
}
.ui-popup-left-top .ui-dialog-arrow-b,
.ui-popup-left .ui-dialog-arrow-b,
.ui-popup-left-bottom .ui-dialog-arrow-b {
right: -15px;
border-left: 8px solid #fff;
}
.ui-popup-left-top .ui-dialog-arrow-a,
.ui-popup-left-top .ui-dialog-arrow-b {
top: 15px;
}
.ui-popup-left .ui-dialog-arrow-a,
.ui-popup-left .ui-dialog-arrow-b {
margin-top: -8px;
top: 50%;
}
.ui-popup-left-bottom .ui-dialog-arrow-a,
.ui-popup-left-bottom .ui-dialog-arrow-b {
bottom: 15px;
}
.ui-popup-right-top .ui-dialog-arrow-a,
.ui-popup-right .ui-dialog-arrow-a,
.ui-popup-right-bottom .ui-dialog-arrow-a {
left: -16px;
border-right: 8px solid #7C7C7C;
}
.ui-popup-right-top .ui-dialog-arrow-b,
.ui-popup-right .ui-dialog-arrow-b,
.ui-popup-right-bottom .ui-dialog-arrow-b {
left: -15px;
border-right: 8px solid #fff;
}
.ui-popup-right-top .ui-dialog-arrow-a,
.ui-popup-right-top .ui-dialog-arrow-b {
top: 15px;
}
.ui-popup-right .ui-dialog-arrow-a,
.ui-popup-right .ui-dialog-arrow-b {
margin-top: -8px;
top: 50%;
}
.ui-popup-right-bottom .ui-dialog-arrow-a,
.ui-popup-right-bottom .ui-dialog-arrow-b {
bottom: 15px;
}
@-webkit-keyframes ui-dialog-loading {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
}
@keyframes ui-dialog-loading {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.ui-dialog-loading {
vertical-align: middle;
position: relative;
display: block;
*zoom: 1;
*display: inline;
overflow: hidden;
width: 32px;
height: 32px;
top: 50%;
margin: -16px auto 0 auto;
font-size: 0;
text-indent: -999em;
color: #666;
}
.ui-dialog-loading {
width: 100%\9;
text-indent: 0\9;
line-height: 32px\9;
text-align: center\9;
font-size: 12px\9;
}
.ui-dialog-loading::after {
position: absolute;
content: '';
width: 3px;
height: 3px;
margin: 14.5px 0 0 14.5px;
border-radius: 100%;
box-shadow: 0 -10px 0 1px #ccc, 10px 0px #ccc, 0 10px #ccc, -10px 0 #ccc, -7px -7px 0 0.5px #ccc, 7px -7px 0 1.5px #ccc, 7px 7px #ccc, -7px 7px #ccc;
-webkit-transform: rotate(360deg);
-webkit-animation: ui-dialog-loading 1.5s infinite linear;
transform: rotate(360deg);
animation: ui-dialog-loading 1.5s infinite linear;
display: none\9;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,21 @@
const fs = require('fs');
const path = require('path');
const MarkdownIt = require('markdown-it');
const md = new MarkdownIt({
html: true
});
const source = path.resolve(__dirname, '..', 'index.md');
const templateSource = path.resolve(__dirname, '..', 'template', 'index.html');
const output = path.resolve(__dirname, '..', 'index.html');
const content = fs.readFileSync(source, 'utf8');
const templateContent = fs.readFileSync(templateSource, 'utf8');
const html = md.render(content);
const template = (string, data) => string.replace(/\$\{([^\}]*?)\}/g, ($0, key) => String(data[key]));
const result = template(templateContent, {
title: 'artDialog',
content: html
});
fs.writeFileSync(output, result, 'utf8');
console.log('ok');

View File

@ -0,0 +1,512 @@
body {
max-width: 620px;
margin: auto;
font-family: Helvetica, arial, sans-serif;
font-size: 14px;
line-height: 1.6;
padding-top: 10px;
padding-bottom: 10px;
background-color: white;
padding: 30px;
}
body>*:first-child {
margin-top: 0 !important;
}
body>*:last-child {
margin-bottom: 0 !important;
}
a {
color: #4183C4;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative;
}
h1:hover a.anchor,
h2:hover a.anchor,
h3:hover a.anchor,
h4:hover a.anchor,
h5:hover a.anchor,
h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none;
}
h1 tt,
h1 code {
font-size: inherit;
}
h2 tt,
h2 code {
font-size: inherit;
}
h3 tt,
h3 code {
font-size: inherit;
}
h4 tt,
h4 code {
font-size: inherit;
}
h5 tt,
h5 code {
font-size: inherit;
}
h6 tt,
h6 code {
font-size: inherit;
}
h1 {
font-size: 28px;
color: black;
text-align: center;
}
h6 {
text-align: center;
}
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black;
}
h3 {
font-size: 18px;
}
h4 {
font-size: 16px;
}
h5 {
font-size: 14px;
}
h6 {
color: #777777;
font-size: 14px;
}
p,
blockquote,
ul,
ol,
dl,
li,
table,
pre {
margin: 15px 0;
}
hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}
body>h2:first-child {
margin-top: 0;
padding-top: 0;
}
body>h1:first-child {
margin-top: 0;
padding-top: 0;
}
body>h1:first-child+h2 {
margin-top: 0;
padding-top: 0;
}
body>h3:first-child,
body>h4:first-child,
body>h5:first-child,
body>h6:first-child {
margin-top: 0;
padding-top: 0;
}
a:first-child h1,
a:first-child h2,
a:first-child h3,
a:first-child h4,
a:first-child h5,
a:first-child h6 {
margin-top: 0;
padding-top: 0;
}
h1 p,
h2 p,
h3 p,
h4 p,
h5 p,
h6 p {
margin-top: 0;
}
li p.first {
display: inline-block;
}
li {
margin: 0;
}
ul,
ol {
padding-left: 30px;
}
ul :first-child,
ol :first-child {
margin-top: 0;
}
dl {
padding: 0;
}
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px;
}
dl dd {
margin: 0 0 15px;
padding: 0 15px;
}
blockquote {
border-left: 2px solid #dddddd;
padding: 0 15px;
color: #777777;
}
blockquote> :first-child {
margin-top: 0;
}
blockquote> :last-child {
margin-bottom: 0;
}
table {
padding: 0;
border-collapse: collapse;
}
tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0;
}
tr:nth-child(2n) {
background-color: #f8f8f8;
}
th {
font-weight: bold;
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 6px 13px;
}
td {
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 6px 13px;
}
th :first-child,
td :first-child {
margin-top: 0;
}
th :last-child,
td :last-child {
margin-bottom: 0;
}
img {
max-width: 100%;
}
code,
tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px;
}
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}
pre {
background-color: #303030;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
}
pre code {
color: #f2f2f2;
border: none;
padding: 0;
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal;
margin-bottom: 30px;
font-size: 14px;
}
pre tt {
background-color: transparent;
border: none;
}
@media print {
table,
pre {
page-break-inside: avoid;
}
}
/*-------------------------------*/
.doc-line {
height: 3px;
}
.doc-gotop {
position: fixed;
bottom: 5px;
right: 5px;
z-index: 9;
}
h1 span[id],
h2 span[id],
h3 span[id],
h4 span[id],
h5 span[id],
h6 span[id] {
cursor: pointer;
}
/*避免对话框样式被工具生成的全局样式污染*/
.ui-dialog table,
.ui-dialog table tr,
.ui-dialog tr td,
.ui-dialog tr:nth-child(2n) {
border: 0 none;
background: transparent;
}
.ui-dialog td.ui-dialog-header {
border-bottom: 1px solid #E5E5E5;
}
code.sh_sourceCode {
color: #000000;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_keyword {
color: #009;
font-weight: bold;
font-style: normal;
}
code.sh_sourceCode .sh_type {
color: #0000ff;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_string {
color: #00F;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_regexp {
color: #060;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_specialchar {
color: #C42DA8;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_comment {
color: #999;
font-weight: normal;
font-style: italic;
}
code.sh_sourceCode .sh_number {
color: #F00;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_codeproc {
color: #00b800;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_symbol {
color: #009;
font-weight: bold;
font-style: normal;
}
code.sh_sourceCode .sh_function {
color: #000;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_cbracket {
color: #009;
font-weight: bold;
font-style: normal;
}
code.sh_sourceCode .sh_url {
color: #ff0000;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_date {
color: #0000ff;
font-weight: bold;
font-style: normal;
}
code.sh_sourceCode .sh_time {
color: #0000ff;
font-weight: bold;
font-style: normal;
}
code.sh_sourceCode .sh_file {
color: #0000ff;
font-weight: bold;
font-style: normal;
}
code.sh_sourceCode .sh_ip {
color: #ff0000;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_name {
color: #ff0000;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_variable {
color: #ec7f15;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_oldfile {
color: #C42DA8;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_newfile {
color: #ff0000;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_difflines {
color: #0000ff;
font-weight: bold;
font-style: normal;
}
code.sh_sourceCode .sh_selector {
color: #ec7f15;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_property {
color: #0000ff;
font-weight: bold;
font-style: normal;
}
code.sh_sourceCode .sh_value {
color: #ff0000;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_codedef_var {
color: #909;
font-weight: normal;
font-style: normal;
}
code.sh_sourceCode .sh_codedef_func {
color: #099;
font-weight: normal;
font-style: normal;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,64 @@
!(function() {
window.console = window.console || {
log: $.noop
};
var codes = {};
var debug = location.href.indexOf('Users/tangbin') !== -1;
$(function() {
console.log('你可以在调试器中粘贴本页示例代码运行');
var RE = /[\n\s\t]*?\/\/\.\.[\r\n]/;
$('pre code').each(function(index) {
var $this = $(this);
var code = $this.text();
// 忽略不完整的代码片段
// 开头使用"//.."表示
if (RE.test(code)) {
$this.text(code.replace(RE, ''));
return;
}
try {
codes[index] = new Function(code);
} catch (e) {
return;
}
$this
.after('<div class="doc-line"></div>' +
'<button data-code="' + index + '">运行</button>');
});
// 回到顶部
var $top = $('<a class="doc-gotop" href="javascript:;">TOP</a>')
.on('click', function() {
$(window).scrollTop(0);
return false;
});
$('body').append($top);
});
var runCode = function(id) {
codes[id]();
var api = dialog.getCurrent();
if (debug && api) {
console.log(api);
}
};
$(document).on('click', 'button[data-code]', function() {
var id = $(this).data('code');
runCode(id);
return false;
});
}());

View File

@ -0,0 +1,329 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<style>
body {
max-width: 620px;
margin: auto;
font-family: Helvetica, arial, sans-serif;
font-size: 14px;
line-height: 1.6;
padding-top: 10px;
padding-bottom: 10px;
background-color: white;
padding: 30px;
}
body>*:first-child {
margin-top: 0 !important;
}
body>*:last-child {
margin-bottom: 0 !important;
}
a {
color: #4183C4;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative;
}
h1:hover a.anchor,
h2:hover a.anchor,
h3:hover a.anchor,
h4:hover a.anchor,
h5:hover a.anchor,
h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none;
}
h1 tt,
h1 code {
font-size: inherit;
}
h2 tt,
h2 code {
font-size: inherit;
}
h3 tt,
h3 code {
font-size: inherit;
}
h4 tt,
h4 code {
font-size: inherit;
}
h5 tt,
h5 code {
font-size: inherit;
}
h6 tt,
h6 code {
font-size: inherit;
}
h1 {
font-size: 28px;
color: black;
text-align: center;
}
h6 {
text-align: center;
}
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black;
}
h3 {
font-size: 18px;
}
h4 {
font-size: 16px;
}
h5 {
font-size: 14px;
}
h6 {
color: #777777;
font-size: 14px;
}
p,
blockquote,
ul,
ol,
dl,
li,
table,
pre {
margin: 15px 0;
}
hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}
body>h2:first-child {
margin-top: 0;
padding-top: 0;
}
body>h1:first-child {
margin-top: 0;
padding-top: 0;
}
body>h1:first-child+h2 {
margin-top: 0;
padding-top: 0;
}
body>h3:first-child,
body>h4:first-child,
body>h5:first-child,
body>h6:first-child {
margin-top: 0;
padding-top: 0;
}
a:first-child h1,
a:first-child h2,
a:first-child h3,
a:first-child h4,
a:first-child h5,
a:first-child h6 {
margin-top: 0;
padding-top: 0;
}
h1 p,
h2 p,
h3 p,
h4 p,
h5 p,
h6 p {
margin-top: 0;
}
li p.first {
display: inline-block;
}
li {
margin: 0;
}
ul,
ol {
padding-left: 30px;
}
ul :first-child,
ol :first-child {
margin-top: 0;
}
dl {
padding: 0;
}
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px;
}
dl dd {
margin: 0 0 15px;
padding: 0 15px;
}
blockquote {
border-left: 2px solid #dddddd;
padding: 0 15px;
color: #777777;
}
blockquote> :first-child {
margin-top: 0;
}
blockquote> :last-child {
margin-bottom: 0;
}
table {
padding: 0;
border-collapse: collapse;
}
tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0;
}
tr:nth-child(2n) {
background-color: #f8f8f8;
}
th {
font-weight: bold;
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 6px 13px;
}
td {
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 6px 13px;
}
th :first-child,
td :first-child {
margin-top: 0;
}
th :last-child,
td :last-child {
margin-bottom: 0;
}
img {
max-width: 100%;
}
code,
tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px;
}
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}
pre {
background-color: #303030;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
}
pre code {
color: #f2f2f2;
border: none;
padding: 0;
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal;
margin-bottom: 30px;
font-size: 14px;
}
pre tt {
background-color: transparent;
border: none;
}
@media print {
table,
pre {
page-break-inside: avoid;
}
}
</style>
<title>${title}</title>
</head>
<body>
${content}
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,28 @@
{
"name": "art-dialog",
"version": "7.0.0",
"readmeFilename": "README.md",
"description": "A smart dialog box component",
"homepage": "https://github.com/aui/artDialog",
"scripts": {
"build": "webpack -p",
"dev": "webpack -d",
"build-doc": "node doc/build/index.js"
},
"keywords": [
"dialog"
],
"author": "aui",
"repository": {
"type": "git",
"url": "https://github.com/aui/artDialog.git"
},
"main": "./dist/dialog.js",
"devDependencies": {
"css-loader": "^0.27.3",
"markdown-it": "^8.3.1",
"style-loader": "^0.15.0",
"webpack": "^2.2.1"
},
"license": "LGPL-3.0"
}

View File

@ -0,0 +1,88 @@
// artDialog - 默认配置
module.exports = {
/* -----已注释的配置继承自 popup.js仍可以再这里重新定义它----- */
// 对齐方式
//align: 'bottom left',
// 是否固定定位
//fixed: false,
// 对话框叠加高度值(重要:此值不能超过浏览器最大限制)
//zIndex: 1024,
// 设置遮罩背景颜色
backdropBackground: '#000',
// 设置遮罩透明度
backdropOpacity: 0.7,
// 消息内容
content: '<span class="ui-dialog-loading">Loading..</span>',
// 标题
title: '',
// 对话框状态栏区域 HTML 代码
statusbar: '',
// 自定义按钮
button: null,
// 确定按钮回调函数
ok: null,
// 取消按钮回调函数
cancel: null,
// 确定按钮文本
okValue: 'ok',
// 取消按钮文本
cancelValue: 'cancel',
cancelDisplay: true,
// 内容宽度
width: '',
// 内容高度
height: '',
// 内容与边界填充距离
padding: '',
// 对话框自定义 className
skin: '',
// 是否支持快捷关闭(点击遮罩层自动关闭)
quickClose: false,
// 模板(使用 table 解决 IE7 宽度自适应的 BUG
// js 使用 i="***" 属性识别结构,其余的均可自定义
innerHTML: '<div i="dialog" class="ui-dialog">' +
'<div class="ui-dialog-arrow-a"></div>' +
'<div class="ui-dialog-arrow-b"></div>' +
'<table class="ui-dialog-grid">' +
'<tr>' +
'<td i="header" class="ui-dialog-header">' +
'<button i="close" class="ui-dialog-close">&#215;</button>' +
'<div i="title" class="ui-dialog-title"></div>' +
'</td>' +
'</tr>' +
'<tr>' +
'<td i="body" class="ui-dialog-body">' +
'<div i="content" class="ui-dialog-content"></div>' +
'</td>' +
'</tr>' +
'<tr>' +
'<td i="footer" class="ui-dialog-footer">' +
'<div i="statusbar" class="ui-dialog-statusbar"></div>' +
'<div i="button" class="ui-dialog-button"></div>' +
'</td>' +
'</tr>' +
'</table>' +
'</div>'
};

View File

@ -0,0 +1,130 @@
var $ = require('jquery');
var dialog = require('./dialog');
var drag = require('./drag');
dialog.oncreate = function(api) {
var options = api.options;
var originalOptions = options.original;
// 页面地址
var url = options.url;
// 页面加载完毕的事件
var oniframeload = options.oniframeload;
var $iframe;
if (url) {
this.padding = options.padding = 0;
$iframe = $('<iframe />');
$iframe.attr({
src: url,
name: api.id,
width: '100%',
height: '100%',
allowtransparency: 'yes',
frameborder: 'no',
scrolling: 'no'
})
.on('load', function() {
var test;
try {
// 跨域测试
test = $iframe[0].contentWindow.frameElement;
} catch (e) {}
if (test) {
if (!options.width) {
api.width($iframe.contents().width());
}
if (!options.height) {
api.height($iframe.contents().height());
}
}
if (oniframeload) {
oniframeload.call(api);
}
});
api.addEventListener('beforeremove', function() {
// 重要需要重置iframe地址否则下次出现的对话框在IE6、7无法聚焦input
// IE删除iframe后iframe仍然会留在内存中出现上述问题置换src是最容易解决的方法
$iframe.attr('src', 'about:blank').remove();
}, false);
api.content($iframe[0]);
api.iframeNode = $iframe[0];
}
// 对于子页面呼出的对话框特殊处理
// 如果对话框配置来自 iframe
if (!(originalOptions instanceof Object)) {
var un = function() {
api.close().remove();
};
// 找到那个 iframe
for (var i = 0; i < frames.length; i++) {
try {
if (originalOptions instanceof frames[i].Object) {
// 让 iframe 刷新的时候也关闭对话框,
// 防止要执行的对象被强制收回导致 IE 报错:“不能执行已释放 Script 的代码”
$(frames[i]).one('unload', un);
break;
}
} catch (e) {}
}
}
// 拖拽支持
$(api.node).on(drag.types.start, '[i=title]', function(event) {
// 排除气泡类型的对话框
if (!api.follow) {
api.focus();
drag.create(api.node, event);
}
});
};
dialog.get = function(id) {
// 从 iframe 传入 window 对象
if (id && id.frameElement) {
var iframe = id.frameElement;
var list = dialog.list;
var api;
for (var i in list) {
api = list[i];
if (api.node.getElementsByTagName('iframe')[0] === iframe) {
return api;
}
}
// 直接传入 id 的情况
} else if (id) {
return dialog.list[id];
}
};
module.exports = dialog;

View File

@ -0,0 +1,470 @@
require('../css/dialog.css');
var $ = require('jquery');
var Popup = require('./popup');
var defaults = require('./dialog-config');
var _count = 0;
var _expando = new Date() - 0; // Date.now()
var _isIE6 = !('minWidth' in $('html')[0].style);
var _isMobile = 'createTouch' in document && !('onmousemove' in document) ||
/(iPhone|iPad|iPod)/i.test(navigator.userAgent);
var _isFixed = !_isIE6 && !_isMobile;
var artDialog = function(options, ok, cancel) {
var originalOptions = options = options || {};
if (typeof options === 'string' || options.nodeType === 1) {
options = { content: options, fixed: !_isMobile };
}
options = $.extend(true, {}, artDialog.defaults, options);
options.original = originalOptions;
var id = options.id = options.id || _expando + _count;
var api = artDialog.get(id);
// 如果存在同名的对话框对象,则直接返回
if (api) {
return api.focus();
}
// 目前主流移动设备对fixed支持不好禁用此特性
if (!_isFixed) {
options.fixed = false;
}
// 快捷关闭支持:点击对话框外快速关闭对话框
if (options.quickClose) {
options.modal = true;
options.backdropOpacity = 0;
}
// 按钮组
if (!$.isArray(options.button)) {
options.button = [];
}
// 取消按钮
if (cancel !== undefined) {
options.cancel = cancel;
}
if (options.cancel) {
options.button.push({
id: 'cancel',
value: options.cancelValue,
callback: options.cancel,
display: options.cancelDisplay
});
}
// 确定按钮
if (ok !== undefined) {
options.ok = ok;
}
if (options.ok) {
options.button.push({
id: 'ok',
value: options.okValue,
callback: options.ok,
autofocus: true
});
}
return artDialog.list[id] = new artDialog.create(options);
};
var popup = function() {};
popup.prototype = Popup.prototype;
var prototype = artDialog.prototype = new popup();
artDialog.create = function(options) {
var that = this;
$.extend(this, new Popup());
var originalOptions = options.original;
var $popup = $(this.node).html(options.innerHTML);
var $backdrop = $(this.backdrop);
this.options = options;
this._popup = $popup;
$.each(options, function(name, value) {
if (typeof that[name] === 'function') {
that[name](value);
} else {
that[name] = value;
}
});
// 更新 zIndex 全局配置
if (options.zIndex) {
Popup.zIndex = options.zIndex;
}
// 设置 ARIA 信息
$popup.attr({
'aria-labelledby': this._$('title')
.attr('id', 'title:' + this.id).attr('id'),
'aria-describedby': this._$('content')
.attr('id', 'content:' + this.id).attr('id')
});
// 关闭按钮
this._$('close')
.css('display', this.cancel === false ? 'none' : '')
.attr('title', this.cancelValue)
.on('click', function(event) {
that._trigger('cancel');
event.preventDefault();
});
// 添加视觉参数
this._$('dialog').addClass(this.skin);
this._$('body').css('padding', this.padding);
// 点击任意空白处关闭对话框
if (options.quickClose) {
$backdrop
.on(
'onmousedown' in document ? 'mousedown' : 'click',
function() {
that._trigger('cancel');
return false; // 阻止抢夺焦点
});
}
// 遮罩设置
this.addEventListener('show', function() {
$backdrop.css({
opacity: 0,
background: options.backdropBackground
}).animate({ opacity: options.backdropOpacity }, 150);
});
// ESC 快捷键关闭对话框
this._esc = function(event) {
var target = event.target;
var nodeName = target.nodeName;
var rinput = /^input|textarea$/i;
var isTop = Popup.current === that;
var keyCode = event.keyCode;
// 避免输入状态中 ESC 误操作关闭
if (!isTop || rinput.test(nodeName) && target.type !== 'button') {
return;
}
if (keyCode === 27) {
that._trigger('cancel');
}
};
$(document).on('keydown', this._esc);
this.addEventListener('remove', function() {
$(document).off('keydown', this._esc);
delete artDialog.list[this.id];
});
_count++;
artDialog.oncreate(this);
return this;
};
artDialog.create.prototype = prototype;
$.extend(prototype, {
/**
* 显示对话框
* @name artDialog.prototype.show
* @param {HTMLElement Object, Event Object} 指定位置可选
*/
/**
* 显示对话框模态
* @name artDialog.prototype.showModal
* @param {HTMLElement Object, Event Object} 指定位置可选
*/
/**
* 关闭对话框
* @name artDialog.prototype.close
* @param {String, Number} 返回值可被 onclose 事件收取可选
*/
/**
* 销毁对话框
* @name artDialog.prototype.remove
*/
/**
* 重置对话框位置
* @name artDialog.prototype.reset
*/
/**
* 让对话框聚焦同时置顶
* @name artDialog.prototype.focus
*/
/**
* 让对话框失焦同时置顶
* @name artDialog.prototype.blur
*/
/**
* 添加事件
* @param {String} 事件类型
* @param {Function} 监听函数
* @name artDialog.prototype.addEventListener
*/
/**
* 删除事件
* @param {String} 事件类型
* @param {Function} 监听函数
* @name artDialog.prototype.removeEventListener
*/
/**
* 对话框显示事件 show()showModal() 执行
* @name artDialog.prototype.onshow
* @event
*/
/**
* 关闭事件 close() 执行
* @name artDialog.prototype.onclose
* @event
*/
/**
* 销毁前事件 remove() 前执行
* @name artDialog.prototype.onbeforeremove
* @event
*/
/**
* 销毁事件 remove() 执行
* @name artDialog.prototype.onremove
* @event
*/
/**
* 重置事件 reset() 执行
* @name artDialog.prototype.onreset
* @event
*/
/**
* 焦点事件 foucs() 执行
* @name artDialog.prototype.onfocus
* @event
*/
/**
* 失焦事件 blur() 执行
* @name artDialog.prototype.onblur
* @event
*/
/**
* 设置内容
* @param {String, HTMLElement} 内容
*/
content: function(html) {
var $content = this._$('content');
// HTMLElement
if (typeof html === 'object') {
html = $(html);
$content.empty('').append(html.show());
this.addEventListener('beforeremove', function() {
$('body').append(html.hide());
});
// String
} else {
$content.html(html);
}
return this.reset();
},
/**
* 设置标题
* @param {String} 标题内容
*/
title: function(text) {
this._$('title').text(text);
this._$('header')[text ? 'show' : 'hide']();
return this;
},
/** 设置宽度 */
width: function(value) {
this._$('content').css('width', value);
return this.reset();
},
/** 设置高度 */
height: function(value) {
this._$('content').css('height', value);
return this.reset();
},
/**
* 设置按钮组
* @param {Array, String}
* Options: value, callback, autofocus, disabled
*/
button: function(args) {
args = args || [];
var that = this;
var html = '';
var number = 0;
this.callbacks = {};
if (typeof args === 'string') {
html = args;
number++;
} else {
$.each(args, function(i, val) {
var id = val.id = val.id || val.value;
var style = '';
that.callbacks[id] = val.callback;
if (val.display === false) {
style = ' style="display:none"';
} else {
number++;
}
html +=
'<button' +
' type="button"' +
' i-id="' + id + '"' +
style +
(val.disabled ? ' disabled' : '') +
(val.autofocus ? ' autofocus class="ui-dialog-autofocus"' : '') +
'>' +
val.value +
'</button>';
that._$('button')
.on('click', '[i-id=' + id + ']', function(event) {
var $this = $(this);
if (!$this.attr('disabled')) { // IE BUG
that._trigger(id);
}
event.preventDefault();
});
});
}
this._$('button').html(html);
this._$('footer')[number ? 'show' : 'hide']();
return this;
},
statusbar: function(html) {
this._$('statusbar')
.html(html)[html ? 'show' : 'hide']();
return this;
},
_$: function(i) {
return this._popup.find('[i=' + i + ']');
},
// 触发按钮回调函数
_trigger: function(id) {
var fn = this.callbacks[id];
return typeof fn !== 'function' || fn.call(this) !== false ?
this.close().remove() : this;
}
});
artDialog.oncreate = $.noop;
/** 获取最顶层的对话框API */
artDialog.getCurrent = function() {
return Popup.current;
};
/**
* 根据 ID 获取某对话框 API
* @param {String} 对话框 ID
* @return {Object} 对话框 API (实例)
*/
artDialog.get = function(id) {
return id === undefined ?
artDialog.list :
artDialog.list[id];
};
artDialog.list = {};
/**
* 默认配置
*/
artDialog.defaults = defaults;
module.exports = artDialog;

View File

@ -0,0 +1,212 @@
var $ = require('jquery');
var $window = $(window);
var $document = $(document);
var isTouch = 'createTouch' in document;
var html = document.documentElement;
var isIE6 = !('minWidth' in html.style);
var isLosecapture = !isIE6 && 'onlosecapture' in html;
var isSetCapture = 'setCapture' in html;
var types = {
start: isTouch ? 'touchstart' : 'mousedown',
over: isTouch ? 'touchmove' : 'mousemove',
end: isTouch ? 'touchend' : 'mouseup'
};
var getEvent = isTouch ? function(event) {
if (!event.touches) {
event = event.originalEvent.touches.item(0);
}
return event;
} : function(event) {
return event;
};
var DragEvent = function() {
this.start = $.proxy(this.start, this);
this.over = $.proxy(this.over, this);
this.end = $.proxy(this.end, this);
this.onstart = this.onover = this.onend = $.noop;
};
DragEvent.types = types;
DragEvent.prototype = {
start: function(event) {
event = this.startFix(event);
$document
.on(types.over, this.over)
.on(types.end, this.end);
this.onstart(event);
return false;
},
over: function(event) {
event = this.overFix(event);
this.onover(event);
return false;
},
end: function(event) {
event = this.endFix(event);
$document
.off(types.over, this.over)
.off(types.end, this.end);
this.onend(event);
return false;
},
startFix: function(event) {
event = getEvent(event);
this.target = $(event.target);
this.selectstart = function() {
return false;
};
$document
.on('selectstart', this.selectstart)
.on('dblclick', this.end);
if (isLosecapture) {
this.target.on('losecapture', this.end);
} else {
$window.on('blur', this.end);
}
if (isSetCapture) {
this.target[0].setCapture();
}
return event;
},
overFix: function(event) {
event = getEvent(event);
return event;
},
endFix: function(event) {
event = getEvent(event);
$document
.off('selectstart', this.selectstart)
.off('dblclick', this.end);
if (isLosecapture) {
this.target.off('losecapture', this.end);
} else {
$window.off('blur', this.end);
}
if (isSetCapture) {
this.target[0].releaseCapture();
}
return event;
}
};
/**
* 启动拖拽
* @param {HTMLElement} 被拖拽的元素
* @param {Event} 触发拖拽的事件对象可选若无则监听 elem 的按下事件启动
*/
DragEvent.create = function(elem, event) {
var $elem = $(elem);
var dragEvent = new DragEvent();
var startType = DragEvent.types.start;
var noop = function() {};
var className = elem.className
.replace(/^\s|\s.*/g, '') + '-drag-start';
var minX;
var minY;
var maxX;
var maxY;
var api = {
onstart: noop,
onover: noop,
onend: noop,
off: function() {
$elem.off(startType, dragEvent.start);
}
};
dragEvent.onstart = function(event) {
var isFixed = $elem.css('position') === 'fixed';
var dl = $document.scrollLeft();
var dt = $document.scrollTop();
var w = $elem.width();
var h = $elem.height();
minX = 0;
minY = 0;
maxX = isFixed ? $window.width() - w + minX : $document.width() - w;
maxY = isFixed ? $window.height() - h + minY : $document.height() - h;
var offset = $elem.offset();
var left = this.startLeft = isFixed ? offset.left - dl : offset.left;
var top = this.startTop = isFixed ? offset.top - dt : offset.top;
this.clientX = event.clientX;
this.clientY = event.clientY;
$elem.addClass(className);
api.onstart.call(elem, event, left, top);
};
dragEvent.onover = function(event) {
var left = event.clientX - this.clientX + this.startLeft;
var top = event.clientY - this.clientY + this.startTop;
var style = $elem[0].style;
left = Math.max(minX, Math.min(maxX, left));
top = Math.max(minY, Math.min(maxY, top));
style.left = left + 'px';
style.top = top + 'px';
api.onover.call(elem, event, left, top);
};
dragEvent.onend = function(event) {
var position = $elem.position();
var left = position.left;
var top = position.top;
$elem.removeClass(className);
api.onend.call(elem, event, left, top);
};
dragEvent.off = function() {
$elem.off(startType, dragEvent.start);
};
if (event) {
dragEvent.start(event);
} else {
$elem.on(startType, dragEvent.start);
}
return api;
};
module.exports = DragEvent;

View File

@ -0,0 +1,625 @@
var $ = require('jquery');
var _count = 0;
var _isIE6 = !('minWidth' in $('html')[0].style);
var _isFixed = !_isIE6;
function Popup() {
this.destroyed = false;
this.__popup = $('<div />')
/*使用 <dialog /> 元素可能导致 z-index 永远置顶的问题(chrome)*/
.css({
display: 'none',
position: 'absolute',
/*
left: 0,
top: 0,
bottom: 'auto',
right: 'auto',
margin: 0,
padding: 0,
border: '0 none',
background: 'transparent'
*/
outline: 0
})
.attr('tabindex', '-1')
.html(this.innerHTML)
.appendTo('body');
this.__backdrop = this.__mask = $('<div />')
.css({
opacity: .7,
background: '#000'
});
// 使用 HTMLElement 作为外部接口使用,而不是 jquery 对象
// 统一的接口利于未来 Popup 移植到其他 DOM 库中
this.node = this.__popup[0];
this.backdrop = this.__backdrop[0];
_count++;
}
$.extend(Popup.prototype, {
/**
* 初始化完毕事件 show()showModal() 执行
* @name Popup.prototype.onshow
* @event
*/
/**
* 关闭事件 close() 执行
* @name Popup.prototype.onclose
* @event
*/
/**
* 销毁前事件 remove() 前执行
* @name Popup.prototype.onbeforeremove
* @event
*/
/**
* 销毁事件 remove() 执行
* @name Popup.prototype.onremove
* @event
*/
/**
* 重置事件 reset() 执行
* @name Popup.prototype.onreset
* @event
*/
/**
* 焦点事件 foucs() 执行
* @name Popup.prototype.onfocus
* @event
*/
/**
* 失焦事件 blur() 执行
* @name Popup.prototype.onblur
* @event
*/
/** 浮层 DOM 素节点[*] */
node: null,
/** 遮罩 DOM 节点[*] */
backdrop: null,
/** 是否开启固定定位[*] */
fixed: false,
/** 判断对话框是否删除[*] */
destroyed: true,
/** 判断对话框是否显示 */
open: false,
/** close 返回值 */
returnValue: '',
/** 是否自动聚焦 */
autofocus: true,
/** 对齐方式[*] */
align: 'bottom left',
/** 内部的 HTML 字符串 */
innerHTML: '',
/** CSS 类名 */
className: 'ui-popup',
/**
* 显示浮层
* @param {HTMLElement, Event} 指定位置可选
*/
show: function(anchor) {
if (this.destroyed) {
return this;
}
var that = this;
var popup = this.__popup;
var backdrop = this.__backdrop;
this.__activeElement = this.__getActive();
this.open = true;
this.follow = anchor || this.follow;
// 初始化 show 方法
if (!this.__ready) {
popup
.addClass(this.className)
.attr('role', this.modal ? 'alertdialog' : 'dialog')
.css('position', this.fixed ? 'fixed' : 'absolute');
if (!_isIE6) {
$(window).on('resize', $.proxy(this.reset, this));
}
// 模态浮层的遮罩
if (this.modal) {
var backdropCss = {
position: 'fixed',
left: 0,
top: 0,
width: '100%',
height: '100%',
overflow: 'hidden',
userSelect: 'none',
zIndex: this.zIndex || Popup.zIndex
};
popup.addClass(this.className + '-modal');
if (!_isFixed) {
$.extend(backdropCss, {
position: 'absolute',
width: $(window).width() + 'px',
height: $(document).height() + 'px'
});
}
backdrop
.css(backdropCss)
.attr({ tabindex: '0' })
.on('focus', $.proxy(this.focus, this));
// 锁定 tab 的焦点操作
this.__mask = backdrop
.clone(true)
.attr('style', '')
.insertAfter(popup);
backdrop
.addClass(this.className + '-backdrop')
.insertBefore(popup);
this.__ready = true;
}
if (!popup.html()) {
popup.html(this.innerHTML);
}
}
popup
.addClass(this.className + '-show')
.show();
backdrop.show();
this.reset().focus();
this.__dispatchEvent('show');
return this;
},
/** 显示模态浮层。参数参见 show() */
showModal: function() {
this.modal = true;
return this.show.apply(this, arguments);
},
/** 关闭浮层 */
close: function(result) {
if (!this.destroyed && this.open) {
if (result !== undefined) {
this.returnValue = result;
}
this.__popup.hide().removeClass(this.className + '-show');
this.__backdrop.hide();
this.open = false;
this.blur(); // 恢复焦点,照顾键盘操作的用户
this.__dispatchEvent('close');
}
return this;
},
/** 销毁浮层 */
remove: function() {
if (this.destroyed) {
return this;
}
this.__dispatchEvent('beforeremove');
if (Popup.current === this) {
Popup.current = null;
}
// 从 DOM 中移除节点
this.__popup.remove();
this.__backdrop.remove();
this.__mask.remove();
if (!_isIE6) {
$(window).off('resize', this.reset);
}
this.__dispatchEvent('remove');
for (var i in this) {
delete this[i];
}
return this;
},
/** 重置位置 */
reset: function() {
var elem = this.follow;
if (elem) {
this.__follow(elem);
} else {
this.__center();
}
this.__dispatchEvent('reset');
return this;
},
/** 让浮层获取焦点 */
focus: function() {
var node = this.node;
var popup = this.__popup;
var current = Popup.current;
var index = this.zIndex = Popup.zIndex++;
if (current && current !== this) {
current.blur(false);
}
// 检查焦点是否在浮层里面
if (!$.contains(node, this.__getActive())) {
var autofocus = popup.find('[autofocus]')[0];
if (!this._autofocus && autofocus) {
this._autofocus = true;
} else {
autofocus = node;
}
this.__focus(autofocus);
}
// 设置叠加高度
popup.css('zIndex', index);
//this.__backdrop.css('zIndex', index);
Popup.current = this;
popup.addClass(this.className + '-focus');
this.__dispatchEvent('focus');
return this;
},
/** 让浮层失去焦点。将焦点退还给之前的元素,照顾视力障碍用户 */
blur: function() {
var activeElement = this.__activeElement;
var isBlur = arguments[0];
if (isBlur !== false) {
this.__focus(activeElement);
}
this._autofocus = false;
this.__popup.removeClass(this.className + '-focus');
this.__dispatchEvent('blur');
return this;
},
/**
* 添加事件
* @param {String} 事件类型
* @param {Function} 监听函数
*/
addEventListener: function(type, callback) {
this.__getEventListener(type).push(callback);
return this;
},
/**
* 删除事件
* @param {String} 事件类型
* @param {Function} 监听函数
*/
removeEventListener: function(type, callback) {
var listeners = this.__getEventListener(type);
for (var i = 0; i < listeners.length; i++) {
if (callback === listeners[i]) {
listeners.splice(i--, 1);
}
}
return this;
},
// 获取事件缓存
__getEventListener: function(type) {
var listener = this.__listener;
if (!listener) {
listener = this.__listener = {};
}
if (!listener[type]) {
listener[type] = [];
}
return listener[type];
},
// 派发事件
__dispatchEvent: function(type) {
var listeners = this.__getEventListener(type);
if (this['on' + type]) {
this['on' + type]();
}
for (var i = 0; i < listeners.length; i++) {
listeners[i].call(this);
}
},
// 对元素安全聚焦
__focus: function(elem) {
// 防止 iframe 跨域无权限报错
// 防止 IE 不可见元素报错
try {
// ie11 bug: iframe 页面点击会跳到顶部
if (this.autofocus && !/^iframe$/i.test(elem.nodeName)) {
elem.focus();
}
} catch (e) {}
},
// 获取当前焦点的元素
__getActive: function() {
try { // try: ie8~9, iframe #26
var activeElement = document.activeElement;
var contentDocument = activeElement.contentDocument;
var elem = contentDocument && contentDocument.activeElement || activeElement;
return elem;
} catch (e) {}
},
// 居中浮层
__center: function() {
var popup = this.__popup;
var $window = $(window);
var $document = $(document);
var fixed = this.fixed;
var dl = fixed ? 0 : $document.scrollLeft();
var dt = fixed ? 0 : $document.scrollTop();
var ww = $window.width();
var wh = $window.height();
var ow = popup.width();
var oh = popup.height();
var left = (ww - ow) / 2 + dl;
var top = (wh - oh) * 382 / 1000 + dt; // 黄金比例
var style = popup[0].style;
style.left = Math.max(parseInt(left), dl) + 'px';
style.top = Math.max(parseInt(top), dt) + 'px';
},
// 指定位置 @param {HTMLElement, Event} anchor
__follow: function(anchor) {
var $elem = anchor.parentNode && $(anchor);
var popup = this.__popup;
if (this.__followSkin) {
popup.removeClass(this.__followSkin);
}
// 隐藏元素不可用
if ($elem) {
var o = $elem.offset();
if (o.left * o.top < 0) {
return this.__center();
}
}
var that = this;
var fixed = this.fixed;
var $window = $(window);
var $document = $(document);
var winWidth = $window.width();
var winHeight = $window.height();
var docLeft = $document.scrollLeft();
var docTop = $document.scrollTop();
var popupWidth = popup.width();
var popupHeight = popup.height();
var width = $elem ? $elem.outerWidth() : 0;
var height = $elem ? $elem.outerHeight() : 0;
var offset = this.__offset(anchor);
var x = offset.left;
var y = offset.top;
var left = fixed ? x - docLeft : x;
var top = fixed ? y - docTop : y;
var minLeft = fixed ? 0 : docLeft;
var minTop = fixed ? 0 : docTop;
var maxLeft = minLeft + winWidth - popupWidth;
var maxTop = minTop + winHeight - popupHeight;
var css = {};
var align = this.align.split(' ');
var className = this.className + '-';
var reverse = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' };
var name = { top: 'top', bottom: 'top', left: 'left', right: 'left' };
var temp = [{
top: top - popupHeight,
bottom: top + height,
left: left - popupWidth,
right: left + width
}, {
top: top,
bottom: top - popupHeight + height,
left: left,
right: left - popupWidth + width
}];
var center = {
left: left + width / 2 - popupWidth / 2,
top: top + height / 2 - popupHeight / 2
};
var range = {
left: [minLeft, maxLeft],
top: [minTop, maxTop]
};
// 超出可视区域重新适应位置
$.each(align, function(i, val) {
// 超出右或下边界:使用左或者上边对齐
if (temp[i][val] > range[name[val]][1]) {
val = align[i] = reverse[val];
}
// 超出左或右边界:使用右或者下边对齐
if (temp[i][val] < range[name[val]][0]) {
align[i] = reverse[val];
}
});
// 一个参数的情况
if (!align[1]) {
name[align[1]] = name[align[0]] === 'left' ? 'top' : 'left';
temp[1][align[1]] = center[name[align[1]]];
}
//添加follow的css, 为了给css使用
className += align.join('-') + ' ' + this.className + '-follow';
that.__followSkin = className;
if ($elem) {
popup.addClass(className);
}
css[name[align[0]]] = parseInt(temp[0][align[0]]);
css[name[align[1]]] = parseInt(temp[1][align[1]]);
popup.css(css);
},
// 获取元素相对于页面的位置包括iframe内的元素
// 暂时不支持两层以上的 iframe 套嵌
__offset: function(anchor) {
var isNode = anchor.parentNode;
var offset = isNode ? $(anchor).offset() : {
left: anchor.pageX,
top: anchor.pageY
};
anchor = isNode ? anchor : anchor.target;
var ownerDocument = anchor.ownerDocument;
var defaultView = ownerDocument.defaultView || ownerDocument.parentWindow;
if (defaultView == window) { // IE <= 8 只能使用两个等于号
return offset;
}
// {Element: Ifarme}
var frameElement = defaultView.frameElement;
var $ownerDocument = $(ownerDocument);
var docLeft = $ownerDocument.scrollLeft();
var docTop = $ownerDocument.scrollTop();
var frameOffset = $(frameElement).offset();
var frameLeft = frameOffset.left;
var frameTop = frameOffset.top;
return {
left: offset.left + frameLeft - docLeft,
top: offset.top + frameTop - docTop
};
}
});
/** 当前叠加高度 */
Popup.zIndex = 1024;
/** 顶层浮层的实例 */
Popup.current = null;
module.exports = Popup;

View File

@ -0,0 +1,33 @@
<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<button data-event="test" data-align="top right">open dialog</button>
<button data-event="test" data-align="top left" style="position:absolute;right:0;top:0;width:100px">open dialog</button>
<script src="../lib/jquery-1.10.2.js"></script>
<script src="../dist/dialog.js"></script>
<script>
jQuery('button[data-event=test]').on('click', function() {
var d = dialog({
id: 'align-test',
title: '消息',
content: '风吹起的青色衣衫,夕阳里的温暖容颜,你比以前更加美丽,像盛开的花<br>——许巍《难忘的一天》',
okValue: '确 定',
align: $(this).data('align'),
//height: 1024,
ok: function() {},
cancelValue: '取消',
cancel: function() {}
});
d.show(this);
});
</script>
</body>
</html>

View File

@ -0,0 +1,148 @@
<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>test</title>
<style>
#follow-elem {
width: 120px;
height: 120px;
position: absolute;
left: 50%;
margin-left: -60px;
top: 38%;
margin-top: -40px;
background: #e3f5ff;
border: 1px solid #abd3ea;
border-radius: 6px;
}
#follow-elem input {
width: 14px;
height: 14px;
position: absolute;
cursor: pointer;
}
#follow-elem .nw {
left: 14px;
top: 0;
}
#follow-elem .n {
left: 50%;
margin-left: -7px;
top: 0;
}
#follow-elem .ne {
right: 14px;
top: 0;
}
#follow-elem .en {
right: 0;
top: 14px;
}
#follow-elem .e {
right: 0;
top: 50%;
margin-top: -7px;
}
#follow-elem .es {
right: 0;
bottom: 14px;
}
#follow-elem .se {
right: 14px;
bottom: 0;
}
#follow-elem .s {
left: 50%;
margin-left: -7px;
bottom: 0;
}
#follow-elem .sw {
left: 14px;
bottom: 0;
}
#follow-elem .ws {
left: 0;
bottom: 14px;
}
#follow-elem .w {
left: 0;
top: 50%;
margin-top: -7px;
}
#follow-elem .wn {
left: 0;
top: 14px;
}
code {
color: #888;
}
code strong {
color: #000;
}
</style>
</head>
<body>
<pre><code>var follow = document.getElementById('follow-elem');
var d = dialog({
align: '<strong id="test-align-value">bottom left</strong>',
content: 'hello world'
});
d.show(follow);</code></pre>
<div id="follow-elem">
<input type="radio" name="align" value="top left" class="nw" title="top left">
<input type="radio" name="align" value="top" class="n" title="top">
<input type="radio" name="align" value="top right" class="ne" title="top right">
<input type="radio" name="align" value="right top" class="en" title="right top">
<input type="radio" name="align" value="right" class="e" title="right">
<input type="radio" name="align" value="right bottom" class="es" title="right bottom">
<input type="radio" name="align" value="bottom right" class="se" title="bottom right">
<input type="radio" name="align" value="bottom" class="s" title="bottom">
<input type="radio" name="align" value="bottom left" class="sw" title="bottom left" checked>
<input type="radio" name="align" value="left bottom" class="ws" title="left bottom">
<input type="radio" name="align" value="left" class="w" title="left">
<input type="radio" name="align" value="left top" class="wn" title="left top">
</div>
<script src="../lib/jquery-1.10.2.js"></script>
<script src="../dist/dialog.js"></script>
<script>
var follow = $('#follow-elem')[0];
var d = dialog({
align: 'bottom left',
content: 'hello world'
});
d.show(follow);
$('#follow-elem').on('click', '[type=radio]', function() {
if (d.open) {
var align = $(this).val();
d.align = align;
d.show(follow);
$('#test-align-value').html(align);
}
});
</script>
</body>
</html>

View File

@ -0,0 +1,43 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<script src="../lib/jquery-1.10.2.js"></script>
<script src="../dist/dialog.js"></script>
<script>
var d = dialog({
title: '消息',
content: '风吹起的青色衣衫,夕阳里的温暖容颜,你比以前更加美丽,像盛开的花<br>——许巍《难忘的一天》',
button: [{
value: '同意',
callback: function() {
this
.content('你同意了');
return false;
},
autofocus: true
}, {
value: '不同意',
callback: function() {
alert('你不同意')
}
}, {
id: 'button-disabled',
value: '无效按钮',
disabled: true
}, {
value: '关闭我'
}]
});
d.show();
</script>
</body>
</html>

View File

@ -0,0 +1,38 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<button id="test">close().remove()</button>
<script src="../lib/jquery-1.10.2.js"></script>
<script src="../dist/dialog.js"></script>
<script>
var d = dialog({
title: '消息',
content: '风吹起的青色衣衫,夕阳里的温暖容颜,你比以前更加美丽,像盛开的花<br>——许巍《难忘的一天》',
okValue: '确 定',
ok: function() {}
});
d.show();
$('#test').on('click', function() {
d.close().remove();
});
d.onclose = function() {
alert('对话框关闭');
};
d.onremove = function() {
alert('对话框销毁');
};
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More