v2.2.0RC1

v2.2.0RC1
This commit is contained in:
Crystal.Sea 2020-08-30 18:54:32 +08:00
parent 88128bec08
commit edec66c209
53 changed files with 14235 additions and 272 deletions

View File

@ -112,6 +112,8 @@ public class Apps extends JpaBaseDomain implements Serializable {
*/ */
private int isExtendAttr; private int isExtendAttr;
private String extendAttr; private String extendAttr;
private String userPropertys;
/** /**
* Signature for client verify create by SignaturePublicKey & * Signature for client verify create by SignaturePublicKey &
@ -388,6 +390,14 @@ public class Apps extends JpaBaseDomain implements Serializable {
this.extendAttr = extendAttr; this.extendAttr = extendAttr;
} }
public String getUserPropertys() {
return userPropertys;
}
public void setUserPropertys(String userPropertys) {
this.userPropertys = userPropertys;
}
public int getVisible() { public int getVisible() {
return visible; return visible;
} }

View File

@ -58,194 +58,88 @@ public class AppsTokenBasedDetails extends Apps {
private String algorithmKey; private String algorithmKey;
@Column @Column
private String expires; private String expires;
//
@Column
private int uid;
@Column
private int username;
@Column
private int email;
@Column
private int windowsAccount;
@Column
private int employeeNumber;
@Column
private int departmentId;
@Column
private int department;
public AppsTokenBasedDetails() { public AppsTokenBasedDetails() {
super(); super();
} }
public String getId() {
return id;
}
public String getRedirectUri() {
return redirectUri;
}
public void setId(String id) {
this.id = id;
}
public void setRedirectUri(String redirectUri) { public String getRedirectUri() {
this.redirectUri = redirectUri; return redirectUri;
} }
public void setRedirectUri(String redirectUri) {
this.redirectUri = redirectUri;
}
public String getCookieName() {
return cookieName;
}
public String getTokenType() {
return tokenType;
}
public void setCookieName(String cookieName) { public void setTokenType(String tokenType) {
this.cookieName = cookieName; this.tokenType = tokenType;
} }
public String getCookieName() {
return cookieName;
}
public String getAlgorithm() {
return algorithm;
}
public void setCookieName(String cookieName) {
this.cookieName = cookieName;
}
public void setAlgorithm(String algorithm) { public String getAlgorithm() {
this.algorithm = algorithm; return algorithm;
} }
public void setAlgorithm(String algorithm) {
this.algorithm = algorithm;
}
public String getAlgorithmKey() {
return algorithmKey;
}
public String getAlgorithmKey() {
return algorithmKey;
}
public void setAlgorithmKey(String algorithmKey) { public void setAlgorithmKey(String algorithmKey) {
this.algorithmKey = algorithmKey; this.algorithmKey = algorithmKey;
} }
public String getExpires() {
return expires;
}
public String getExpires() {
return expires;
}
public void setExpires(String expires) {
this.expires = expires;
}
public void setExpires(String expires) { @Override
this.expires = expires; public String toString() {
} return "AppsTokenBasedDetails [id=" + id + ", redirectUri=" + redirectUri + ", tokenType=" + tokenType
+ ", cookieName=" + cookieName + ", algorithm=" + algorithm + ", algorithmKey=" + algorithmKey
+ ", expires=" + expires + "]";
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public int getUsername() {
return username;
}
public void setUsername(int username) {
this.username = username;
}
public int getEmail() {
return email;
}
public void setEmail(int email) {
this.email = email;
}
public int getWindowsAccount() {
return windowsAccount;
}
public void setWindowsAccount(int windowsAccount) {
this.windowsAccount = windowsAccount;
}
public String getTokenType() {
return tokenType;
}
public void setTokenType(String tokenType) {
this.tokenType = tokenType;
}
public int getEmployeeNumber() {
return employeeNumber;
}
public void setEmployeeNumber(int employeeNumber) {
this.employeeNumber = employeeNumber;
}
public int getDepartmentId() {
return departmentId;
}
public void setDepartmentId(int departmentId) {
this.departmentId = departmentId;
}
public int getDepartment() {
return department;
}
public void setDepartment(int department) {
this.department = department;
}
@Override
public String toString() {
return "TokenBasedDetails [redirectUri=" + redirectUri + ", cookieName=" + cookieName + ", algorithm="
+ algorithm + ", algorithmKey=" + algorithmKey + ", expires=" + expires + ", uid=" + uid + ", username="
+ username + ", email=" + email + ", windowsAccount=" + windowsAccount + ", employeeNumber="
+ employeeNumber + ", departmentId=" + departmentId + ", department=" + department + "]";
}
} }

View File

@ -56,6 +56,7 @@
ISEXTENDATTR, ISEXTENDATTR,
EXTENDATTR, EXTENDATTR,
USERPROPERTYS,
ISSIGNATURE, ISSIGNATURE,
@ -92,7 +93,7 @@
#{isExtendAttr}, #{isExtendAttr},
#{extendAttr}, #{extendAttr},
#{userPropertys},
#{isSignature}, #{isSignature},
#{isAdapter}, #{isAdapter},
@ -133,7 +134,7 @@
ISEXTENDATTR = #{isExtendAttr}, ISEXTENDATTR = #{isExtendAttr},
EXTENDATTR = #{extendAttr}, EXTENDATTR = #{extendAttr},
USERPROPERTYS = #{userPropertys},
ISSIGNATURE = #{isSignature}, ISSIGNATURE = #{isSignature},
<if test="adapter != null"> <if test="adapter != null">

View File

@ -21,7 +21,6 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter; import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
import org.maxkey.constants.Boolean;
import org.maxkey.domain.UserInfo; import org.maxkey.domain.UserInfo;
import org.maxkey.domain.apps.AppsTokenBasedDetails; import org.maxkey.domain.apps.AppsTokenBasedDetails;
import org.maxkey.util.DateUtils; import org.maxkey.util.DateUtils;
@ -40,27 +39,33 @@ public class TokenBasedDefaultAdapter extends AbstractAuthorizeAdapter {
beanMap.put("randomId",(new StringGenerator()).uuidGenerate()); beanMap.put("randomId",(new StringGenerator()).uuidGenerate());
if(Boolean.isTrue(details.getUid())){ if(details.getUserPropertys().indexOf("uid")>-1){
beanMap.put("uid",userInfo.getId()); beanMap.put("uid",userInfo.getId());
} }
if(Boolean.isTrue(details.getUsername())){
beanMap.put("username", userInfo.getUsername()); if(details.getUserPropertys().indexOf("username")>-1){
} beanMap.put("username",userInfo.getUsername());
if(Boolean.isTrue(details.getEmail())){ }
beanMap.put("email", userInfo.getEmail());
} if(details.getUserPropertys().indexOf("email")>-1){
if(Boolean.isTrue(details.getWindowsAccount())){ beanMap.put("email",userInfo.getEmail());
beanMap.put("windowsAccount", userInfo.getWindowsAccount()); }
}
if(Boolean.isTrue(details.getEmployeeNumber())){ if(details.getUserPropertys().indexOf("windowsAccount")>-1){
beanMap.put("employeeNumber", userInfo.getEmployeeNumber()); beanMap.put("windowsAccount",userInfo.getWindowsAccount());
} }
if(Boolean.isTrue(details.getDepartmentId())){
beanMap.put("departmentId", userInfo.getDepartmentId()); if(details.getUserPropertys().indexOf("employeeNumber")>-1){
} beanMap.put("employeeNumber",userInfo.getEmployeeNumber());
if(Boolean.isTrue(details.getDepartment())){ }
beanMap.put("department", userInfo.getDepartment());
} if(details.getUserPropertys().indexOf("department")>-1){
beanMap.put("department",userInfo.getDepartment());
}
if(details.getUserPropertys().indexOf("departmentId")>-1){
beanMap.put("departmentId",userInfo.getDepartmentId());
}
beanMap.put("displayName", userInfo.getDisplayName()); beanMap.put("displayName", userInfo.getDisplayName());

View File

@ -20,7 +20,6 @@ package org.maxkey.authz.token.endpoint.adapter;
import java.util.Date; import java.util.Date;
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter; import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
import org.maxkey.constants.Boolean;
import org.maxkey.domain.UserInfo; import org.maxkey.domain.UserInfo;
import org.maxkey.domain.apps.AppsTokenBasedDetails; import org.maxkey.domain.apps.AppsTokenBasedDetails;
import org.maxkey.util.DateUtils; import org.maxkey.util.DateUtils;
@ -36,19 +35,22 @@ public class TokenBasedSimpleAdapter extends AbstractAuthorizeAdapter {
String tokenUsername=""; String tokenUsername="";
if(Boolean.isTrue(details.getUid())){
if(details.getUserPropertys().indexOf("uid")>-1){
tokenUsername=userInfo.getId(); tokenUsername=userInfo.getId();
}else if(Boolean.isTrue(details.getUsername())){ }else if(details.getUserPropertys().indexOf("username")>-1){
tokenUsername= userInfo.getUsername(); tokenUsername= userInfo.getUsername();
}else if(Boolean.isTrue(details.getEmail())){ }else if(details.getUserPropertys().indexOf("email")>-1){
tokenUsername=userInfo.getEmail(); tokenUsername=userInfo.getEmail();
}else if(Boolean.isTrue(details.getWindowsAccount())){ }else if(details.getUserPropertys().indexOf("windowsAccount")>-1){
tokenUsername= userInfo.getWindowsAccount(); tokenUsername= userInfo.getWindowsAccount();
}else if(Boolean.isTrue(details.getEmployeeNumber())){ }else if(details.getUserPropertys().indexOf("employeeNumber")>-1){
tokenUsername=userInfo.getEmployeeNumber(); tokenUsername=userInfo.getEmployeeNumber();
}else if(Boolean.isTrue(details.getDepartmentId())){ }else if(details.getUserPropertys().indexOf("department")>-1){
tokenUsername= userInfo.getDepartmentId(); tokenUsername= userInfo.getDepartmentId();
} }else if(details.getUserPropertys().indexOf("departmentId")>-1){
tokenUsername= userInfo.getDepartment();
}
/* /*
* use UTC date time format * use UTC date time format

View File

@ -52,6 +52,7 @@ public class TokenBasedDetailsController extends BaseAppContorller {
tokenBasedDetails.setProtocol(ConstantsProtocols.TOKENBASED); tokenBasedDetails.setProtocol(ConstantsProtocols.TOKENBASED);
tokenBasedDetails.setSecret(ReciprocalUtils.generateKey(ReciprocalUtils.Algorithm.AES)); tokenBasedDetails.setSecret(ReciprocalUtils.generateKey(ReciprocalUtils.Algorithm.AES));
tokenBasedDetails.setAlgorithmKey(tokenBasedDetails.getSecret()); tokenBasedDetails.setAlgorithmKey(tokenBasedDetails.getSecret());
tokenBasedDetails.setUserPropertys("userPropertys");
modelAndView.addObject("model",tokenBasedDetails); modelAndView.addObject("model",tokenBasedDetails);
return modelAndView; return modelAndView;
} }

View File

@ -165,7 +165,7 @@ userinfo.employeeNumber=\u5458\u5DE5\u7F16\u53F7
userinfo.windowsAccount=AD\u57DF\u8D26\u53F7 userinfo.windowsAccount=AD\u57DF\u8D26\u53F7
userinfo.organization=\u6240\u5C5E\u673A\u6784 userinfo.organization=\u6240\u5C5E\u673A\u6784
userinfo.division=\u5206\u652F\u673A\u6784 userinfo.division=\u5206\u652F\u673A\u6784
userinfo.department=\u90E8\u95E8 userinfo.department=\u90E8\u95E8\u540D\u79F0
userinfo.departmentId=\u90E8\u95E8\u7F16\u53F7 userinfo.departmentId=\u90E8\u95E8\u7F16\u53F7
userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3 userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3
userinfo.jobTitle=\u804C\u4F4D userinfo.jobTitle=\u804C\u4F4D

View File

@ -165,7 +165,7 @@ userinfo.employeeNumber=\u5458\u5DE5\u7F16\u53F7
userinfo.windowsAccount=AD\u57DF\u8D26\u53F7 userinfo.windowsAccount=AD\u57DF\u8D26\u53F7
userinfo.organization=\u6240\u5C5E\u673A\u6784 userinfo.organization=\u6240\u5C5E\u673A\u6784
userinfo.division=\u5206\u652F\u673A\u6784 userinfo.division=\u5206\u652F\u673A\u6784
userinfo.department=\u90E8\u95E8 userinfo.department=\u90E8\u95E8\u540D\u79F0
userinfo.departmentId=\u90E8\u95E8\u7F16\u53F7 userinfo.departmentId=\u90E8\u95E8\u7F16\u53F7
userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3 userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3
userinfo.jobTitle=\u804C\u4F4D userinfo.jobTitle=\u804C\u4F4D

View File

@ -0,0 +1,30 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* Multiple Select en-US translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['en-US'] = {
formatSelectAll: function formatSelectAll() {
return '[Select all]';
},
formatAllSelected: function formatAllSelected() {
return 'All selected';
},
formatCountSelected: function formatCountSelected(count, total) {
return count + ' of ' + total + ' selected';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return 'No matches found';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['en-US']);
}));

View File

@ -0,0 +1,10 @@
/**
* multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
*
* @version v1.5.2
* @homepage http://multiple-select.wenzhixin.net.cn
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t((e=e||self).jQuery)}(this,(function(e){"use strict";(e=e&&e.hasOwnProperty("default")?e.default:e).fn.multipleSelect.locales["en-US"]={formatSelectAll:function(){return"[Select all]"},formatAllSelected:function(){return"All selected"},formatCountSelected:function(e,t){return e+" of "+t+" selected"},formatNoMatchesFound:function(){return"No matches found"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["en-US"])}));

View File

@ -0,0 +1,30 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* Multiple Select en-US translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['en-US'] = {
formatSelectAll: function formatSelectAll() {
return '[Select all]';
},
formatAllSelected: function formatAllSelected() {
return 'All selected';
},
formatCountSelected: function formatCountSelected(count, total) {
return count + ' of ' + total + ' selected';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return 'No matches found';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['en-US']);
}));

View File

@ -0,0 +1,30 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* Multiple Select es-ES translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['es-ES'] = {
formatSelectAll: function formatSelectAll() {
return '[Seleccionar todo]';
},
formatAllSelected: function formatAllSelected() {
return 'Todos seleccionados';
},
formatCountSelected: function formatCountSelected(count, total) {
return count + ' de ' + total + ' seleccionado';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return 'No se encontraron coincidencias';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['es-ES']);
}));

View File

@ -0,0 +1,10 @@
/**
* multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
*
* @version v1.5.2
* @homepage http://multiple-select.wenzhixin.net.cn
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t((e=e||self).jQuery)}(this,(function(e){"use strict";(e=e&&e.hasOwnProperty("default")?e.default:e).fn.multipleSelect.locales["es-ES"]={formatSelectAll:function(){return"[Seleccionar todo]"},formatAllSelected:function(){return"Todos seleccionados"},formatCountSelected:function(e,t){return e+" de "+t+" seleccionado"},formatNoMatchesFound:function(){return"No se encontraron coincidencias"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["es-ES"])}));

View File

@ -0,0 +1,30 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* Multiple Select it-IT translation
* Author: Giuseppe Lodi Rizzini
*/
$.fn.multipleSelect.locales['it-IT'] = {
formatSelectAll: function formatSelectAll() {
return '[Seleziona tutti]';
},
formatAllSelected: function formatAllSelected() {
return 'Tutti selezionati';
},
formatCountSelected: function formatCountSelected(count, total) {
return count + ' di ' + total + ' selezionati';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return 'Nessun risultato';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['it-IT']);
}));

View File

@ -0,0 +1,10 @@
/**
* multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
*
* @version v1.5.2
* @homepage http://multiple-select.wenzhixin.net.cn
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t((e=e||self).jQuery)}(this,(function(e){"use strict";(e=e&&e.hasOwnProperty("default")?e.default:e).fn.multipleSelect.locales["it-IT"]={formatSelectAll:function(){return"[Seleziona tutti]"},formatAllSelected:function(){return"Tutti selezionati"},formatCountSelected:function(e,t){return e+" di "+t+" selezionati"},formatNoMatchesFound:function(){return"Nessun risultato"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["it-IT"])}));

View File

@ -0,0 +1,30 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* Multiple Select zh-CN translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['zh-CN'] = {
formatSelectAll: function formatSelectAll() {
return '[全选]';
},
formatAllSelected: function formatAllSelected() {
return '已选择所有记录';
},
formatCountSelected: function formatCountSelected(count, total) {
return '已从' + total + '条记录中选择' + count + '条';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return '没有找到记录';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['zh-CN']);
}));

View File

@ -0,0 +1,10 @@
/**
* multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
*
* @version v1.5.2
* @homepage http://multiple-select.wenzhixin.net.cn
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t((e=e||self).jQuery)}(this,(function(e){"use strict";(e=e&&e.hasOwnProperty("default")?e.default:e).fn.multipleSelect.locales["zh-CN"]={formatSelectAll:function(){return"[全选]"},formatAllSelected:function(){return"已选择所有记录"},formatCountSelected:function(e,t){return"已从"+t+"条记录中选择"+e+"条"},formatNoMatchesFound:function(){return"没有找到记录"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["zh-CN"])}));

View File

@ -0,0 +1,30 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* Multiple Select zh-TW translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['zh-TW'] = {
formatSelectAll: function formatSelectAll() {
return '[全選]';
},
formatAllSelected: function formatAllSelected() {
return '已選擇所有記錄';
},
formatCountSelected: function formatCountSelected(count, total) {
return '已從' + total + '條記錄中選擇' + count + '條';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return '沒有找到記錄';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['zh-TW']);
}));

View File

@ -0,0 +1,10 @@
/**
* multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
*
* @version v1.5.2
* @homepage http://multiple-select.wenzhixin.net.cn
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t((e=e||self).jQuery)}(this,(function(e){"use strict";(e=e&&e.hasOwnProperty("default")?e.default:e).fn.multipleSelect.locales["zh-TW"]={formatSelectAll:function(){return"[全選]"},formatAllSelected:function(){return"已選擇所有記錄"},formatCountSelected:function(e,t){return"已從"+t+"條記錄中選擇"+e+"條"},formatNoMatchesFound:function(){return"沒有找到記錄"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["zh-TW"])}));

View File

@ -0,0 +1,30 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* Multiple Select zh-CN translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['zh-CN'] = {
formatSelectAll: function formatSelectAll() {
return '[全选]';
},
formatAllSelected: function formatAllSelected() {
return '已选择所有记录';
},
formatCountSelected: function formatCountSelected(count, total) {
return '已从' + total + '条记录中选择' + count + '条';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return '没有找到记录';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['zh-CN']);
}));

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,114 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* Multiple Select en-US translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['en-US'] = {
formatSelectAll: function formatSelectAll() {
return '[Select all]';
},
formatAllSelected: function formatAllSelected() {
return 'All selected';
},
formatCountSelected: function formatCountSelected(count, total) {
return count + ' of ' + total + ' selected';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return 'No matches found';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['en-US']);
/**
* Multiple Select es-ES translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['es-ES'] = {
formatSelectAll: function formatSelectAll() {
return '[Seleccionar todo]';
},
formatAllSelected: function formatAllSelected() {
return 'Todos seleccionados';
},
formatCountSelected: function formatCountSelected(count, total) {
return count + ' de ' + total + ' seleccionado';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return 'No se encontraron coincidencias';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['es-ES']);
/**
* Multiple Select it-IT translation
* Author: Giuseppe Lodi Rizzini
*/
$.fn.multipleSelect.locales['it-IT'] = {
formatSelectAll: function formatSelectAll() {
return '[Seleziona tutti]';
},
formatAllSelected: function formatAllSelected() {
return 'Tutti selezionati';
},
formatCountSelected: function formatCountSelected(count, total) {
return count + ' di ' + total + ' selezionati';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return 'Nessun risultato';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['it-IT']);
/**
* Multiple Select zh-CN translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['zh-CN'] = {
formatSelectAll: function formatSelectAll() {
return '[全选]';
},
formatAllSelected: function formatAllSelected() {
return '已选择所有记录';
},
formatCountSelected: function formatCountSelected(count, total) {
return '已从' + total + '条记录中选择' + count + '条';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return '没有找到记录';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['zh-CN']);
/**
* Multiple Select zh-TW translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.multipleSelect.locales['zh-TW'] = {
formatSelectAll: function formatSelectAll() {
return '[全選]';
},
formatAllSelected: function formatAllSelected() {
return '已選擇所有記錄';
},
formatCountSelected: function formatCountSelected(count, total) {
return '已從' + total + '條記錄中選擇' + count + '條';
},
formatNoMatchesFound: function formatNoMatchesFound() {
return '沒有找到記錄';
}
};
$.extend($.fn.multipleSelect.defaults, $.fn.multipleSelect.locales['zh-TW']);
}));

View File

@ -0,0 +1,10 @@
/**
* multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
*
* @version v1.5.2
* @homepage http://multiple-select.wenzhixin.net.cn
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t((e=e||self).jQuery)}(this,(function(e){"use strict";(e=e&&e.hasOwnProperty("default")?e.default:e).fn.multipleSelect.locales["en-US"]={formatSelectAll:function(){return"[Select all]"},formatAllSelected:function(){return"All selected"},formatCountSelected:function(e,t){return e+" of "+t+" selected"},formatNoMatchesFound:function(){return"No matches found"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["en-US"]),e.fn.multipleSelect.locales["es-ES"]={formatSelectAll:function(){return"[Seleccionar todo]"},formatAllSelected:function(){return"Todos seleccionados"},formatCountSelected:function(e,t){return e+" de "+t+" seleccionado"},formatNoMatchesFound:function(){return"No se encontraron coincidencias"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["es-ES"]),e.fn.multipleSelect.locales["it-IT"]={formatSelectAll:function(){return"[Seleziona tutti]"},formatAllSelected:function(){return"Tutti selezionati"},formatCountSelected:function(e,t){return e+" di "+t+" selezionati"},formatNoMatchesFound:function(){return"Nessun risultato"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["it-IT"]),e.fn.multipleSelect.locales["zh-CN"]={formatSelectAll:function(){return"[全选]"},formatAllSelected:function(){return"已选择所有记录"},formatCountSelected:function(e,t){return"已从"+t+"条记录中选择"+e+"条"},formatNoMatchesFound:function(){return"没有找到记录"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["zh-CN"]),e.fn.multipleSelect.locales["zh-TW"]={formatSelectAll:function(){return"[全選]"},formatAllSelected:function(){return"已選擇所有記錄"},formatCountSelected:function(e,t){return"已從"+t+"條記錄中選擇"+e+"條"},formatNoMatchesFound:function(){return"沒有找到記錄"}},e.extend(e.fn.multipleSelect.defaults,e.fn.multipleSelect.locales["zh-TW"])}));

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,188 @@
@charset "UTF-8";
/**
* @author zhixin wen <wenzhixin2010@gmail.com>
*/
.ms-offscreen {
clip: rect(0 0 0 0) !important;
width: 1px !important;
height: 1px !important;
border: 0 !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
position: absolute !important;
outline: 0 !important;
left: auto !important;
top: auto !important; }
.ms-parent {
display: inline-block;
position: relative;
vertical-align: middle; }
.ms-choice {
display: block;
width: 100%;
height: 26px;
padding: 0;
overflow: hidden;
cursor: pointer;
border: 0px ;
text-align: left;
white-space: nowrap;
line-height: 26px;
color: #444;
text-decoration: none;
border-radius: 0px;
background-color: #fff; }
.ms-choice.disabled {
background-color: #f4f4f4;
background-image: none;
border: 0px solid #ddd;
cursor: default; }
.ms-choice > span {
position: absolute;
top: 0;
left: 0;
right: 20px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: block;
padding-left: 8px; }
.ms-choice > span.placeholder {
color: #999; }
.ms-choice > div.icon-close {
position: absolute;
top: 0px;
right: 16px;
height: 100%;
width: 16px; }
.ms-choice > div.icon-close:before {
content: '×';
color: #888;
font-weight: bold;
position: absolute;
top: 50%;
margin-top: -14px; }
.ms-choice > div.icon-close:hover:before {
color: #333; }
.ms-choice > div.icon-caret {
position: absolute;
width: 0;
height: 0;
top: 50%;
right: 8px;
margin-top: -2px;
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px; }
.ms-choice > div.icon-caret.open {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }
.ms-parent button:focus{
border: 0px ;
outline: none;
}
.ms-drop {
width: auto;
min-width: 100%;
overflow: hidden;
display: none;
margin-top: -1px;
padding: 0;
position: absolute;
z-index: 1000;
background: #fff;
color: #000;
border: 0px solid #aaa;
border-radius: 4px; }
.ms-drop.bottom {
top: 100%;
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15); }
.ms-drop.top {
bottom: 100%;
box-shadow: 0 -4px 5px rgba(0, 0, 0, 0.15); }
.ms-search {
display: inline-block;
margin: 0;
min-height: 26px;
padding: 2px;
position: relative;
white-space: nowrap;
width: 100%;
z-index: 10000;
box-sizing: border-box; }
.ms-search input {
width: 100%;
height: auto !important;
min-height: 24px;
padding: 0 5px;
margin: 0;
outline: 0;
font-family: sans-serif;
border: 1px solid #aaa;
border-radius: 5px;
box-shadow: none; }
.ms-drop ul {
overflow: auto;
margin: 0;
padding: 0; }
.ms-drop ul > li {
list-style: none;
display: list-item;
background-image: none;
position: static;
padding: .25rem 8px; }
.ms-drop ul > li .disabled {
font-weight: normal !important;
opacity: .35;
filter: Alpha(Opacity=35);
cursor: default; }
.ms-drop ul > li.multiple {
display: block;
float: left; }
.ms-drop ul > li.group {
clear: both; }
.ms-drop ul > li.multiple label {
width: 100%;
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis; }
.ms-drop ul > li label {
position: relative;
padding-left: 1.25rem;
margin-bottom: 0;
font-weight: normal;
display: block;
white-space: nowrap;
cursor: pointer; }
.ms-drop ul > li label.optgroup {
font-weight: bold; }
.ms-drop ul > li.hide-radio {
padding: 0; }
.ms-drop ul > li.hide-radio:focus, .ms-drop ul > li.hide-radio:hover {
background-color: #f8f9fa; }
.ms-drop ul > li.hide-radio.selected {
color: #fff;
background-color: #007bff; }
.ms-drop ul > li.hide-radio label {
margin-bottom: 0;
padding: 5px 8px; }
.ms-drop ul > li.hide-radio input {
display: none; }
.ms-drop ul > li.option-level-1 label {
padding-left: 28px; }
.ms-drop input[type="radio"], .ms-drop input[type="checkbox"] {
position: absolute;
margin-top: .3rem;
margin-left: -1.25rem; }
.ms-drop .ms-no-results {
display: none; }

View File

@ -0,0 +1,10 @@
/**
* multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
*
* @version v1.5.2
* @homepage http://multiple-select.wenzhixin.net.cn
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
@charset "UTF-8";.ms-offscreen{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:auto!important;top:auto!important}.ms-parent{display:inline-block;position:relative;vertical-align:middle}.ms-choice{display:block;width:100%;height:26px;padding:0;overflow:hidden;cursor:pointer;border:1px solid #aaa;text-align:left;white-space:nowrap;line-height:26px;color:#444;text-decoration:none;border-radius:4px;background-color:#fff}.ms-choice.disabled{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.ms-choice>span{position:absolute;top:0;left:0;right:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;padding-left:8px}.ms-choice>span.placeholder{color:#999}.ms-choice>div.icon-close{position:absolute;top:0;right:16px;height:100%;width:16px}.ms-choice>div.icon-close:before{content:'×';color:#888;font-weight:bold;position:absolute;top:50%;margin-top:-14px}.ms-choice>div.icon-close:hover:before{color:#333}.ms-choice>div.icon-caret{position:absolute;width:0;height:0;top:50%;right:8px;margin-top:-2px;border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px}.ms-choice>div.icon-caret.open{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.ms-drop{width:auto;min-width:100%;overflow:hidden;display:none;margin-top:-1px;padding:0;position:absolute;z-index:1000;background:#fff;color:#000;border:1px solid #aaa;border-radius:4px}.ms-drop.bottom{top:100%;box-shadow:0 4px 5px rgba(0,0,0,0.15)}.ms-drop.top{bottom:100%;box-shadow:0 -4px 5px rgba(0,0,0,0.15)}.ms-search{display:inline-block;margin:0;min-height:26px;padding:2px;position:relative;white-space:nowrap;width:100%;z-index:10000;box-sizing:border-box}.ms-search input{width:100%;height:auto!important;min-height:24px;padding:0 5px;margin:0;outline:0;font-family:sans-serif;border:1px solid #aaa;border-radius:5px;box-shadow:none}.ms-drop ul{overflow:auto;margin:0;padding:0}.ms-drop ul>li{list-style:none;display:list-item;background-image:none;position:static;padding:.25rem 8px}.ms-drop ul>li .disabled{font-weight:normal!important;opacity:.35;filter:Alpha(Opacity=35);cursor:default}.ms-drop ul>li.multiple{display:block;float:left}.ms-drop ul>li.group{clear:both}.ms-drop ul>li.multiple label{width:100%;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-drop ul>li label{position:relative;padding-left:1.25rem;margin-bottom:0;font-weight:normal;display:block;white-space:nowrap;cursor:pointer}.ms-drop ul>li label.optgroup{font-weight:bold}.ms-drop ul>li.hide-radio{padding:0}.ms-drop ul>li.hide-radio:focus,.ms-drop ul>li.hide-radio:hover{background-color:#f8f9fa}.ms-drop ul>li.hide-radio.selected{color:#fff;background-color:#007bff}.ms-drop ul>li.hide-radio label{margin-bottom:0;padding:5px 8px}.ms-drop ul>li.hide-radio input{display:none}.ms-drop ul>li.option-level-1 label{padding-left:28px}.ms-drop input[type="radio"],.ms-drop input[type="checkbox"]{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.ms-drop .ms-no-results{display:none}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,14 @@
.ms-parent.form-control {
padding: 0; }
.ms-parent.form-control .ms-choice {
height: 100%;
border: 0; }
.ms-parent.form-control .ms-choice > span {
top: 50%;
transform: translateY(-50%); }
.ms-parent.form-control.form-control-sm .ms-drop input[type=radio],
.ms-parent.form-control.form-control-sm .ms-drop input[type=checkbox] {
margin-top: 0.4rem; }
.ms-parent.form-control.form-control-lg .ms-drop input[type=radio],
.ms-parent.form-control.form-control-lg .ms-drop input[type=checkbox] {
margin-top: 0.5rem; }

View File

@ -0,0 +1,10 @@
/**
* multiple-select - Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
*
* @version v1.5.2
* @homepage http://multiple-select.wenzhixin.net.cn
* @author wenzhixin <wenzhixin2010@gmail.com> (http://wenzhixin.net.cn/)
* @license MIT
*/
.ms-parent.form-control{padding:0}.ms-parent.form-control .ms-choice{height:100%;border:0}.ms-parent.form-control .ms-choice>span{top:50%;transform:translateY(-50%)}.ms-parent.form-control.form-control-sm .ms-drop input[type=radio],.ms-parent.form-control.form-control-sm .ms-drop input[type=checkbox]{margin-top:.4rem}.ms-parent.form-control.form-control-lg .ms-drop input[type=radio],.ms-parent.form-control.form-control-lg .ms-drop input[type=checkbox]{margin-top:.5rem}

View File

@ -532,16 +532,14 @@ $(function(){
$.dialog.close(); $.dialog.close();
return; return;
} }
} }
if($("#actionForm")){//#actionForm attr forward if($("form")){//#Form attr forward
if($("#actionForm").attr("forward")){ if($("form").attr("closeWindow")){
document.location.href=$("#actionForm").attr("forward"); window.close();
return; return;
} }
}
if($("form")){//#actionForm attr forward
if($("form").attr("forward")){ if($("form").attr("forward")){
document.location.href=$("form").attr("forward"); document.location.href=$("form").attr("forward");
return; return;

View File

@ -6,7 +6,7 @@
<#include "../appCommonHead.ftl"/> <#include "../appCommonHead.ftl"/>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/basic/add" action="<@base/>/apps/basic/add"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -6,7 +6,7 @@
<#include "../appCommonHead.ftl"/> <#include "../appCommonHead.ftl"/>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/basic/update" action="<@base/>/apps/basic/update"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -13,20 +13,14 @@
<script type="text/javascript"> <script type="text/javascript">
<!-- <!--
$(function(){ $(function(){
$("#algorithm").change(function(){ $("#isAdapter").val("1");
$.post("<s:Base/>/apps/generate/secret/"+$(this).val(), {_method:"post",currTime:(new Date()).getTime()}, function(data) { $("#adapter").val("org.maxkey.authz.cas.endpoint.adapter.CasDefaultAdapter");
$("#secret").val(data+"");
$("#secret_text").html(data+"");
});
});
}); });
//--> //-->
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/cas/add" action="<@base/>/apps/cas/add"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -36,7 +36,7 @@ $(function(){
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/cas/update" action="<@base/>/apps/cas/update"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -60,7 +60,7 @@ $(function(){
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/desktop/add" action="<@base/>/apps/desktop/add"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -60,7 +60,7 @@ $(function(){
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/desktop/update" action="<@base/>/apps/desktop/update"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -26,7 +26,7 @@ $(function(){
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/extendapi/add" action="<@base/>/apps/extendapi/add"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -8,7 +8,7 @@
<!-- <!--
$(function(){ $(function(){
$("input[name='credential']").on("click",function(){ $("select[name='credential']").on("click",function(){
if($(this).val()=="3"){ if($(this).val()=="3"){
$("#sharedconfigure").hide(); $("#sharedconfigure").hide();
$("#systemconfigure").hide(); $("#systemconfigure").hide();
@ -25,7 +25,7 @@ $(function(){
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/extendapi/update" action="<@base/>/apps/extendapi/update"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"
@ -56,13 +56,17 @@ $(function(){
<tr> <tr>
<th style="width:15%;"><@locale code="apps.credential"/></th> <th style="width:15%;"><@locale code="apps.credential"/></th>
<td style="width:35%;"> <td style="width:35%;">
<input type="radio" id="credential1" name="credential" class="credential" value="3" <#if 3==model.credential >checked</#if> /> <select id="credential" name="credential" class="form-control" >
<@locale code="apps.credential.user-defined"/> <option value="3" <#if 3==model.credential >selected</#if> >
<input type="radio" id="credential3" name="credential" class="credential" value="2" <#if 2==model.credential >checked</#if> /> <@locale code="apps.credential.user-defined"/>
<@locale code="apps.credential.shared"/> </option>
<input type="radio" id="credential2" name="credential" class="credential" value="1" <#if 1==model.credential >checked</#if> /> <option value="2" <#if 2==model.credential >selected</#if> >
<@locale code="apps.credential.system"/> <@locale code="apps.credential.shared"/>
</option>
<option value="1" <#if 1==model.credential >selected</#if> >
<@locale code="apps.credential.system"/>
</option>
</select>
</td> </td>
<th style="width:15%;"></th> <th style="width:15%;"></th>
<td style="width:35%;" > <td style="width:35%;" >
@ -94,7 +98,6 @@ $(function(){
<th><@locale code="apps.credential.sharedPassword"/></th> <th><@locale code="apps.credential.sharedPassword"/></th>
<td> <td>
<input type="text" class="form-control" id="sharedPassword" name="sharedPassword" value="${model.sharedPassword}" /> <input type="text" class="form-control" id="sharedPassword" name="sharedPassword" value="${model.sharedPassword}" />
</td> </td>
</tr> </tr>

View File

@ -26,7 +26,7 @@ $(function(){
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/formbased/add" action="<@base/>/apps/formbased/add"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -8,7 +8,7 @@
<!-- <!--
$(function(){ $(function(){
$("input[name='credential']").on("click",function(){ $("select[name='credential']").on("click",function(){
if($(this).val()=="3"){ if($(this).val()=="3"){
$("#sharedconfigure").hide(); $("#sharedconfigure").hide();
$("#systemconfigure").hide(); $("#systemconfigure").hide();
@ -25,7 +25,7 @@ $(function(){
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/formbased/update" action="<@base/>/apps/formbased/update"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"
@ -67,12 +67,17 @@ $(function(){
<tr> <tr>
<th><@locale code="apps.credential"/></th> <th><@locale code="apps.credential"/></th>
<td > <td >
<input type="radio" id="credential1" name="credential" class="credential" value="3" <#if 3==model.credential>checked</#if> /> <select id="credential" name="credential" class="form-control" >
<@locale code="apps.credential.user-defined"/> <option value="3" <#if 3==model.credential >selected</#if> >
<input type="radio" id="credential3" name="credential" class="credential" value="2" <#if 2==model.credential>checked</#if> /> <@locale code="apps.credential.user-defined"/>
<@locale code="apps.credential.shared"/> </option>
<input type="radio" id="credential2" name="credential" class="credential" value="1" <#if 1==model.credential>checked</#if> /> <option value="2" <#if 2==model.credential >selected</#if> >
<@locale code="apps.credential.system"/> <@locale code="apps.credential.shared"/>
</option>
<option value="1" <#if 1==model.credential >selected</#if> >
<@locale code="apps.credential.system"/>
</option>
</select>
</td> </td>
<th></th> <th></th>

View File

@ -6,7 +6,7 @@
<#include "../appCommonHead.ftl"/> <#include "../appCommonHead.ftl"/>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/oauth20/add" action="<@base/>/apps/oauth20/add"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -6,7 +6,7 @@
<#include "../appCommonHead.ftl"/> <#include "../appCommonHead.ftl"/>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/oauth20/update" action="<@base/>/apps/oauth20/update"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -6,7 +6,7 @@
<#include "../appCommonHead.ftl"/> <#include "../appCommonHead.ftl"/>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/saml20/add" action="<@base/>/apps/saml20/add"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -19,7 +19,7 @@
</script> </script>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/saml20/update" action="<@base/>/apps/saml20/update"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"

View File

@ -6,7 +6,7 @@
<#include "../appCommonHead.ftl"/> <#include "../appCommonHead.ftl"/>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/tokenbased/add" action="<@base/>/apps/tokenbased/add"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"
@ -66,28 +66,13 @@
</tr> </tr>
<tr> <tr>
<th><@locale code="apps.tokenbased.token.content" /></th> <th><@locale code="apps.tokenbased.token.content" /></th>
<td colspan=3> <td>
<table class="hidetable" style="width:100%;"> <#include "../userPropertys.ftl"/>
<tr>
<td><@locale code="userinfo.id" /><input type="checkbox" id="uid" name="uid" value="1"/></td>
<td><@locale code="userinfo.username" /><input type="checkbox" id="username" name="username" value="1" checked/></td>
<td><@locale code="userinfo.email" /><input type="checkbox" id="email" name="email" value="1"/></td>
<td><@locale code="userinfo.windowsAccount" /><input type="checkbox" id="windowsAccount" name="windowsAccount" value="1"/></td>
<td><@locale code="userinfo.employeeNumber" /><input type="checkbox" id="employeeNumber" name="employeeNumber" value="1"/></td>
<td><@locale code="userinfo.departmentId" /><input type="checkbox" id="departmentId" name="departmentId" value="1"/></td>
<td><@locale code="userinfo.department" /><input type="checkbox" id="department" name="department" value="1"/></td>
</tr>
</table>
</td> </td>
</tr>
<tr>
<th><@locale code="apps.tokenbased.expires" /></th> <th><@locale code="apps.tokenbased.expires" /></th>
<td> <td>
<input type="text" class="form-control" id="expires" name="expires" title="" value="1" required="" /> <input type="text" class="form-control" id="expires" name="expires" title="" value="1" required="" />
</td> </td>
<th></th>
<td >
</td>
</tr> </tr>
<tr> <tr>
<td colspan =4> <td colspan =4>

View File

@ -6,7 +6,7 @@
<#include "../appCommonHead.ftl"/> <#include "../appCommonHead.ftl"/>
</head> </head>
<body> <body>
<form id="actionForm_app" method="post" type="label" autoclose="true" <form id="actionForm_app" method="post" type="label" autoclose="true" closeWindow="true"
action="<@base/>/apps/tokenbased/update" action="<@base/>/apps/tokenbased/update"
forward="<@base/>/apps/list" forward="<@base/>/apps/list"
enctype="multipart/form-data" enctype="multipart/form-data"
@ -68,28 +68,13 @@
</tr> </tr>
<tr> <tr>
<th><@locale code="apps.tokenbased.token.content" /></th> <th><@locale code="apps.tokenbased.token.content" /></th>
<td colspan=3> <td >
<table class="hidetable" style="width:100%;"> <#include "../userPropertys.ftl"/>
<tr>
<td><@locale code="userinfo.id" /><input type="checkbox" id="uid" name="uid" value="1" <#if 1==model.uid>checked</#if> /></td>
<td><@locale code="userinfo.username" /><input type="checkbox" id="username" name="username" value="1" <#if 1==model.username>checked</#if>/></td>
<td><@locale code="userinfo.email" /><input type="checkbox" id="email" name="email" value="1" <#if 1==model.email>checked</#if>/></td>
<td><@locale code="userinfo.windowsAccount" /><input type="checkbox" id="windowsAccount" name="windowsAccount" value="1" <#if 1==model.windowsAccount>checked</#if>/></td>
<td><@locale code="userinfo.employeeNumber" /><input type="checkbox" id="employeeNumber" name="employeeNumber" value="1" <#if 1==model.employeeNumber>checked</#if>/></td>
<td><@locale code="userinfo.departmentId" /><input type="checkbox" id="departmentId" name="departmentId" value="1" <#if 1==model.departmentId>checked</#if>/></td>
<td><@locale code="userinfo.department" /><input type="checkbox" id="department" name="department" value="1" <#if 1==model.department>checked</#if>/></td>
</tr>
</table>
</td> </td>
</tr>
<tr>
<th><@locale code="apps.tokenbased.expires" /></th> <th><@locale code="apps.tokenbased.expires" /></th>
<td> <td>
<input type="text" class="form-control" id="expires" name="expires" title="" value="${model.expires}" required="" /> <input type="text" class="form-control" id="expires" name="expires" title="" value="${model.expires}" required="" />
</td> </td>
<th></th>
<td>
</td>
</tr> </tr>
<tr> <tr>

View File

@ -0,0 +1,101 @@
<select id="userPropertys" name="userPropertys" class="form-control multipleselect" multiple="multiple" >
<option value="uid" <#if model.userPropertys?contains("uid")>selected</#if> >
<@locale code="userinfo.id" />
</option>
<option value="username" <#if model.userPropertys?contains("username")>selected</#if> >
<@locale code="userinfo.username" />
</option>
<option value="displayName" <#if model.userPropertys?contains("displayName")>selected</#if> >
<@locale code="userinfo.displayName" />
</option>
<option value="picture" <#if model.userPropertys?contains("picture")>selected</#if> >
<@locale code="userinfo.picture" />
</option>
<option value="familyName" <#if model.userPropertys?contains("familyName")>selected</#if> >
<@locale code="userinfo.familyName" />
</option>
<option value="givenName" <#if model.userPropertys?contains("givenName")>selected</#if> >
<@locale code="userinfo.givenName" />
</option>
<option value="middleName" <#if model.userPropertys?contains("middleName")>selected</#if> >
<@locale code="userinfo.middleName" />
</option>
<option value="nickName" <#if model.userPropertys?contains("nickName")>selected</#if> >
<@locale code="userinfo.nickName" />
</option>
<option value="gender" <#if model.userPropertys?contains("gender")>selected</#if> >
<@locale code="userinfo.gender" />
</option>
<option value="married" <#if model.userPropertys?contains("married")>selected</#if> >
<@locale code="userinfo.married" />
</option>
<option value="website" <#if model.userPropertys?contains("website")>selected</#if> >
<@locale code="userinfo.website" />
</option>
<option value="birthDate" <#if model.userPropertys?contains("birthDate")>selected</#if> >
<@locale code="userinfo.birthDate" />
</option>
<option value="idtype" <#if model.userPropertys?contains("idtype")>selected</#if> >
<@locale code="userinfo.idtype" />
</option>
<option value="idCardNo" <#if model.userPropertys?contains("idCardNo")>selected</#if> >
<@locale code="userinfo.idCardNo" />
</option>
<option value="startWorkDate" <#if model.userPropertys?contains("startWorkDate")>selected</#if> >
<@locale code="userinfo.startWorkDate" />
</option>
<option value="preferredLanguage" <#if model.userPropertys?contains("preferredLanguage")>selected</#if> >
<@locale code="userinfo.preferredLanguage" />
</option>
<option value="timeZone" <#if model.userPropertys?contains("timeZone")>selected</#if> >
<@locale code="userinfo.timeZone" />
</option>
<option value="locale" <#if model.userPropertys?contains("locale")>selected</#if> >
<@locale code="userinfo.locale" />
</option>
<option value="mobile" <#if model.userPropertys?contains("mobile")>selected</#if> >
<@locale code="userinfo.mobile" />
</option>
<option value="email" <#if model.userPropertys?contains("email")>selected</#if> >
<@locale code="userinfo.email" />
</option>
<option value="userType" <#if model.userPropertys?contains("userType")>selected</#if> >
<@locale code="userinfo.userType" />
</option>
<option value="employeeNumber" <#if model.userPropertys?contains("employeeNumber")>selected</#if> >
<@locale code="userinfo.employeeNumber" />
</option>
<option value="division" <#if model.userPropertys?contains("division")>selected</#if> >
<@locale code="userinfo.division" />
</option>
<option value="organization" <#if model.userPropertys?contains("organization")>selected</#if> >
<@locale code="userinfo.organization" />
</option>
<option value="costCenter" <#if model.userPropertys?contains("costCenter")>selected</#if> >
<@locale code="userinfo.costCenter" />
</option>
<option value="jobTitle" <#if model.userPropertys?contains("jobTitle")>selected</#if> >
<@locale code="userinfo.jobTitle" />
</option>
<option value="manager" <#if model.userPropertys?contains("manager")>selected</#if> >
<@locale code="userinfo.manager" />
</option>
<option value="assistant" <#if model.userPropertys?contains("assistant")>selected</#if> >
<@locale code="userinfo.assistant" />
</option>
<option value="entryDate" <#if model.userPropertys?contains("entryDate")>selected</#if> >
<@locale code="userinfo.entryDate" />
</option>
<option value="departmentId" <#if model.userPropertys?contains("departmentId")>selected</#if> >
<@locale code="userinfo.departmentId" />
</option>
<option value="department" <#if model.userPropertys?contains("department")>selected</#if> >
<@locale code="userinfo.department" />
</option>
<option value="windowsAccount" <#if model.userPropertys?contains("windowsAccount")>selected</#if> >
<@locale code="userinfo.windowsAccount" />
</option>
</select>

View File

@ -41,6 +41,11 @@
<link href="<@base />/static/jquery/metisMenu-v3.0.6/metisMenu.min.css" rel="stylesheet" > <link href="<@base />/static/jquery/metisMenu-v3.0.6/metisMenu.min.css" rel="stylesheet" >
<script src ="<@base />/static/jquery/metisMenu-v3.0.6/metisMenu.min.js" type="text/javascript" ></script> <script src ="<@base />/static/jquery/metisMenu-v3.0.6/metisMenu.min.js" type="text/javascript" ></script>
<script src ="<@base />/static/js/Chart.min.js" type="text/javascript" ></script> <script src ="<@base />/static/js/Chart.min.js" type="text/javascript" ></script>
<#-- multiple-select-1.5.2 -->
<script type="text/javascript" src="<@base />/static/jquery/multiple-select-1.5.2/multiple-select.min.js"></script>
<script type="text/javascript" src="<@base />/static/jquery/multiple-select-1.5.2/locale/multiple-select-<@locale/>.js"></script>
<link rel="stylesheet" href="<@base />/static/jquery/multiple-select-1.5.2/multiple-select.css" type="text/css"/>
<#-- common script start --> <#-- common script start -->
<script type="text/javascript"> <script type="text/javascript">
$(function () { $(function () {
@ -60,6 +65,8 @@
$(".datetimepicker").datetimepicker({format:'Y-m-d H:i',lang:'<@locale/>'.substring(0, 2)}); $(".datetimepicker").datetimepicker({format:'Y-m-d H:i',lang:'<@locale/>'.substring(0, 2)});
$(".datepicker").datetimepicker({timepicker:false,format:'Y-m-d',lang:'<@locale/>'.substring(0, 2)}); $(".datepicker").datetimepicker({timepicker:false,format:'Y-m-d',lang:'<@locale/>'.substring(0, 2)});
$(".multipleselect").multipleSelect({});
$.platform = $.platform || {}; $.platform = $.platform || {};
$.platform.messages = $.platform.messages || {}; $.platform.messages = $.platform.messages || {};
$.extend($.platform.messages, { $.extend($.platform.messages, {