mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-06 17:08:29 +08:00
v2.2.0RC1
v2.2.0RC1
This commit is contained in:
parent
88128bec08
commit
edec66c209
@ -113,6 +113,8 @@ public class Apps extends JpaBaseDomain implements Serializable {
|
||||
private int isExtendAttr;
|
||||
private String extendAttr;
|
||||
|
||||
private String userPropertys;
|
||||
|
||||
/**
|
||||
* Signature for client verify create by SignaturePublicKey &
|
||||
* SignaturePrivateKey issuer is domain name subject is app id append domain
|
||||
@ -388,6 +390,14 @@ public class Apps extends JpaBaseDomain implements Serializable {
|
||||
this.extendAttr = extendAttr;
|
||||
}
|
||||
|
||||
public String getUserPropertys() {
|
||||
return userPropertys;
|
||||
}
|
||||
|
||||
public void setUserPropertys(String userPropertys) {
|
||||
this.userPropertys = userPropertys;
|
||||
}
|
||||
|
||||
public int getVisible() {
|
||||
return visible;
|
||||
}
|
||||
|
||||
@ -59,193 +59,87 @@ public class AppsTokenBasedDetails extends Apps {
|
||||
@Column
|
||||
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() {
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
||||
public String getRedirectUri() {
|
||||
return redirectUri;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setRedirectUri(String redirectUri) {
|
||||
this.redirectUri = redirectUri;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getCookieName() {
|
||||
return cookieName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setCookieName(String cookieName) {
|
||||
this.cookieName = cookieName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getAlgorithm() {
|
||||
return algorithm;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setAlgorithm(String algorithm) {
|
||||
this.algorithm = algorithm;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getAlgorithmKey() {
|
||||
return algorithmKey;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setAlgorithmKey(String algorithmKey) {
|
||||
this.algorithmKey = algorithmKey;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getExpires() {
|
||||
return expires;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setExpires(String expires) {
|
||||
this.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 String getCookieName() {
|
||||
return cookieName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setEmployeeNumber(int employeeNumber) {
|
||||
this.employeeNumber = employeeNumber;
|
||||
public void setCookieName(String cookieName) {
|
||||
this.cookieName = cookieName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public int getDepartmentId() {
|
||||
return departmentId;
|
||||
public String getAlgorithm() {
|
||||
return algorithm;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setDepartmentId(int departmentId) {
|
||||
this.departmentId = departmentId;
|
||||
public void setAlgorithm(String algorithm) {
|
||||
this.algorithm = algorithm;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public int getDepartment() {
|
||||
return department;
|
||||
public String getAlgorithmKey() {
|
||||
return algorithmKey;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setDepartment(int department) {
|
||||
this.department = department;
|
||||
public void setAlgorithmKey(String algorithmKey) {
|
||||
this.algorithmKey = algorithmKey;
|
||||
}
|
||||
|
||||
|
||||
public String getExpires() {
|
||||
return expires;
|
||||
}
|
||||
|
||||
|
||||
public void setExpires(String expires) {
|
||||
this.expires = expires;
|
||||
}
|
||||
|
||||
|
||||
@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 + "]";
|
||||
return "AppsTokenBasedDetails [id=" + id + ", redirectUri=" + redirectUri + ", tokenType=" + tokenType
|
||||
+ ", cookieName=" + cookieName + ", algorithm=" + algorithm + ", algorithmKey=" + algorithmKey
|
||||
+ ", expires=" + expires + "]";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -56,6 +56,7 @@
|
||||
|
||||
ISEXTENDATTR,
|
||||
EXTENDATTR,
|
||||
USERPROPERTYS,
|
||||
|
||||
ISSIGNATURE,
|
||||
|
||||
@ -92,7 +93,7 @@
|
||||
|
||||
#{isExtendAttr},
|
||||
#{extendAttr},
|
||||
|
||||
#{userPropertys},
|
||||
#{isSignature},
|
||||
|
||||
#{isAdapter},
|
||||
@ -133,7 +134,7 @@
|
||||
|
||||
ISEXTENDATTR = #{isExtendAttr},
|
||||
EXTENDATTR = #{extendAttr},
|
||||
|
||||
USERPROPERTYS = #{userPropertys},
|
||||
ISSIGNATURE = #{isSignature},
|
||||
|
||||
<if test="adapter != null">
|
||||
|
||||
@ -21,7 +21,6 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
|
||||
import org.maxkey.constants.Boolean;
|
||||
import org.maxkey.domain.UserInfo;
|
||||
import org.maxkey.domain.apps.AppsTokenBasedDetails;
|
||||
import org.maxkey.util.DateUtils;
|
||||
@ -40,26 +39,32 @@ public class TokenBasedDefaultAdapter extends AbstractAuthorizeAdapter {
|
||||
|
||||
beanMap.put("randomId",(new StringGenerator()).uuidGenerate());
|
||||
|
||||
if(Boolean.isTrue(details.getUid())){
|
||||
if(details.getUserPropertys().indexOf("uid")>-1){
|
||||
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){
|
||||
beanMap.put("email",userInfo.getEmail());
|
||||
}
|
||||
if(Boolean.isTrue(details.getWindowsAccount())){
|
||||
beanMap.put("windowsAccount", userInfo.getWindowsAccount());
|
||||
|
||||
if(details.getUserPropertys().indexOf("windowsAccount")>-1){
|
||||
beanMap.put("windowsAccount",userInfo.getWindowsAccount());
|
||||
}
|
||||
if(Boolean.isTrue(details.getEmployeeNumber())){
|
||||
beanMap.put("employeeNumber", userInfo.getEmployeeNumber());
|
||||
|
||||
if(details.getUserPropertys().indexOf("employeeNumber")>-1){
|
||||
beanMap.put("employeeNumber",userInfo.getEmployeeNumber());
|
||||
}
|
||||
if(Boolean.isTrue(details.getDepartmentId())){
|
||||
beanMap.put("departmentId", userInfo.getDepartmentId());
|
||||
|
||||
if(details.getUserPropertys().indexOf("department")>-1){
|
||||
beanMap.put("department",userInfo.getDepartment());
|
||||
}
|
||||
if(Boolean.isTrue(details.getDepartment())){
|
||||
beanMap.put("department", userInfo.getDepartment());
|
||||
|
||||
if(details.getUserPropertys().indexOf("departmentId")>-1){
|
||||
beanMap.put("departmentId",userInfo.getDepartmentId());
|
||||
}
|
||||
|
||||
beanMap.put("displayName", userInfo.getDisplayName());
|
||||
|
||||
@ -20,7 +20,6 @@ package org.maxkey.authz.token.endpoint.adapter;
|
||||
import java.util.Date;
|
||||
|
||||
import org.maxkey.authz.endpoint.adapter.AbstractAuthorizeAdapter;
|
||||
import org.maxkey.constants.Boolean;
|
||||
import org.maxkey.domain.UserInfo;
|
||||
import org.maxkey.domain.apps.AppsTokenBasedDetails;
|
||||
import org.maxkey.util.DateUtils;
|
||||
@ -36,18 +35,21 @@ public class TokenBasedSimpleAdapter extends AbstractAuthorizeAdapter {
|
||||
|
||||
String tokenUsername="";
|
||||
|
||||
if(Boolean.isTrue(details.getUid())){
|
||||
|
||||
if(details.getUserPropertys().indexOf("uid")>-1){
|
||||
tokenUsername=userInfo.getId();
|
||||
}else if(Boolean.isTrue(details.getUsername())){
|
||||
}else if(details.getUserPropertys().indexOf("username")>-1){
|
||||
tokenUsername= userInfo.getUsername();
|
||||
}else if(Boolean.isTrue(details.getEmail())){
|
||||
}else if(details.getUserPropertys().indexOf("email")>-1){
|
||||
tokenUsername=userInfo.getEmail();
|
||||
}else if(Boolean.isTrue(details.getWindowsAccount())){
|
||||
}else if(details.getUserPropertys().indexOf("windowsAccount")>-1){
|
||||
tokenUsername= userInfo.getWindowsAccount();
|
||||
}else if(Boolean.isTrue(details.getEmployeeNumber())){
|
||||
}else if(details.getUserPropertys().indexOf("employeeNumber")>-1){
|
||||
tokenUsername=userInfo.getEmployeeNumber();
|
||||
}else if(Boolean.isTrue(details.getDepartmentId())){
|
||||
}else if(details.getUserPropertys().indexOf("department")>-1){
|
||||
tokenUsername= userInfo.getDepartmentId();
|
||||
}else if(details.getUserPropertys().indexOf("departmentId")>-1){
|
||||
tokenUsername= userInfo.getDepartment();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -52,6 +52,7 @@ public class TokenBasedDetailsController extends BaseAppContorller {
|
||||
tokenBasedDetails.setProtocol(ConstantsProtocols.TOKENBASED);
|
||||
tokenBasedDetails.setSecret(ReciprocalUtils.generateKey(ReciprocalUtils.Algorithm.AES));
|
||||
tokenBasedDetails.setAlgorithmKey(tokenBasedDetails.getSecret());
|
||||
tokenBasedDetails.setUserPropertys("userPropertys");
|
||||
modelAndView.addObject("model",tokenBasedDetails);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@ -165,7 +165,7 @@ 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.department=\u90E8\u95E8\u540D\u79F0
|
||||
userinfo.departmentId=\u90E8\u95E8\u7F16\u53F7
|
||||
userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3
|
||||
userinfo.jobTitle=\u804C\u4F4D
|
||||
|
||||
@ -165,7 +165,7 @@ 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.department=\u90E8\u95E8\u540D\u79F0
|
||||
userinfo.departmentId=\u90E8\u95E8\u7F16\u53F7
|
||||
userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3
|
||||
userinfo.jobTitle=\u804C\u4F4D
|
||||
|
||||
@ -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']);
|
||||
|
||||
}));
|
||||
@ -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"])}));
|
||||
@ -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']);
|
||||
|
||||
}));
|
||||
@ -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']);
|
||||
|
||||
}));
|
||||
@ -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"])}));
|
||||
@ -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']);
|
||||
|
||||
}));
|
||||
@ -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"])}));
|
||||
@ -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']);
|
||||
|
||||
}));
|
||||
@ -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"])}));
|
||||
@ -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']);
|
||||
|
||||
}));
|
||||
@ -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"])}));
|
||||
@ -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 it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -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']);
|
||||
|
||||
}));
|
||||
@ -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 it is too large
Load Diff
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
@ -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; }
|
||||
File diff suppressed because it is too large
Load Diff
10
maxkey-web-manage/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.min.css
vendored
Normal file
10
maxkey-web-manage/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.min.css
vendored
Normal 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}
|
||||
10
maxkey-web-manage/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.min.js
vendored
Normal file
10
maxkey-web-manage/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
14
maxkey-web-manage/src/main/resources/static/jquery/multiple-select-1.5.2/themes/bootstrap.css
vendored
Normal file
14
maxkey-web-manage/src/main/resources/static/jquery/multiple-select-1.5.2/themes/bootstrap.css
vendored
Normal 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; }
|
||||
@ -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}
|
||||
@ -534,14 +534,12 @@ $(function(){
|
||||
}
|
||||
}
|
||||
|
||||
if($("#actionForm")){//#actionForm attr forward
|
||||
if($("#actionForm").attr("forward")){
|
||||
document.location.href=$("#actionForm").attr("forward");
|
||||
if($("form")){//#Form attr forward
|
||||
if($("form").attr("closeWindow")){
|
||||
window.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if($("form")){//#actionForm attr forward
|
||||
if($("form").attr("forward")){
|
||||
document.location.href=$("form").attr("forward");
|
||||
return;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<#include "../appCommonHead.ftl"/>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<#include "../appCommonHead.ftl"/>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -13,20 +13,14 @@
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
$(function(){
|
||||
$("#algorithm").change(function(){
|
||||
$.post("<s:Base/>/apps/generate/secret/"+$(this).val(), {_method:"post",currTime:(new Date()).getTime()}, function(data) {
|
||||
$("#secret").val(data+"");
|
||||
$("#secret_text").html(data+"");
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
$("#isAdapter").val("1");
|
||||
$("#adapter").val("org.maxkey.authz.cas.endpoint.adapter.CasDefaultAdapter");
|
||||
});
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -36,7 +36,7 @@ $(function(){
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -60,7 +60,7 @@ $(function(){
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -60,7 +60,7 @@ $(function(){
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -26,7 +26,7 @@ $(function(){
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
<!--
|
||||
$(function(){
|
||||
|
||||
$("input[name='credential']").on("click",function(){
|
||||
$("select[name='credential']").on("click",function(){
|
||||
if($(this).val()=="3"){
|
||||
$("#sharedconfigure").hide();
|
||||
$("#systemconfigure").hide();
|
||||
@ -25,7 +25,7 @@ $(function(){
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
@ -56,13 +56,17 @@ $(function(){
|
||||
<tr>
|
||||
<th style="width:15%;"><@locale code="apps.credential"/>:</th>
|
||||
<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" >
|
||||
<option value="3" <#if 3==model.credential >selected</#if> >
|
||||
<@locale code="apps.credential.user-defined"/>
|
||||
<input type="radio" id="credential3" name="credential" class="credential" value="2" <#if 2==model.credential >checked</#if> />
|
||||
</option>
|
||||
<option value="2" <#if 2==model.credential >selected</#if> >
|
||||
<@locale code="apps.credential.shared"/>
|
||||
<input type="radio" id="credential2" name="credential" class="credential" value="1" <#if 1==model.credential >checked</#if> />
|
||||
</option>
|
||||
<option value="1" <#if 1==model.credential >selected</#if> >
|
||||
<@locale code="apps.credential.system"/>
|
||||
|
||||
</option>
|
||||
</select>
|
||||
</td>
|
||||
<th style="width:15%;"></th>
|
||||
<td style="width:35%;" >
|
||||
@ -94,7 +98,6 @@ $(function(){
|
||||
<th><@locale code="apps.credential.sharedPassword"/>:</th>
|
||||
<td>
|
||||
<input type="text" class="form-control" id="sharedPassword" name="sharedPassword" value="${model.sharedPassword}" />
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ $(function(){
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
<!--
|
||||
$(function(){
|
||||
|
||||
$("input[name='credential']").on("click",function(){
|
||||
$("select[name='credential']").on("click",function(){
|
||||
if($(this).val()=="3"){
|
||||
$("#sharedconfigure").hide();
|
||||
$("#systemconfigure").hide();
|
||||
@ -25,7 +25,7 @@ $(function(){
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
@ -67,12 +67,17 @@ $(function(){
|
||||
<tr>
|
||||
<th><@locale code="apps.credential"/>:</th>
|
||||
<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" >
|
||||
<option value="3" <#if 3==model.credential >selected</#if> >
|
||||
<@locale code="apps.credential.user-defined"/>
|
||||
<input type="radio" id="credential3" name="credential" class="credential" value="2" <#if 2==model.credential>checked</#if> />
|
||||
</option>
|
||||
<option value="2" <#if 2==model.credential >selected</#if> >
|
||||
<@locale code="apps.credential.shared"/>
|
||||
<input type="radio" id="credential2" name="credential" class="credential" value="1" <#if 1==model.credential>checked</#if> />
|
||||
</option>
|
||||
<option value="1" <#if 1==model.credential >selected</#if> >
|
||||
<@locale code="apps.credential.system"/>
|
||||
</option>
|
||||
</select>
|
||||
|
||||
</td>
|
||||
<th></th>
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<#include "../appCommonHead.ftl"/>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<#include "../appCommonHead.ftl"/>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<#include "../appCommonHead.ftl"/>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
</script>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<#include "../appCommonHead.ftl"/>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
@ -66,28 +66,13 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><@locale code="apps.tokenbased.token.content" />:</th>
|
||||
<td colspan=3>
|
||||
<table class="hidetable" style="width:100%;">
|
||||
<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>
|
||||
<#include "../userPropertys.ftl"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><@locale code="apps.tokenbased.expires" />:</th>
|
||||
<td>
|
||||
<input type="text" class="form-control" id="expires" name="expires" title="" value="1" required="" />
|
||||
</td>
|
||||
<th></th>
|
||||
<td >
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan =4>
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<#include "../appCommonHead.ftl"/>
|
||||
</head>
|
||||
<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"
|
||||
forward="<@base/>/apps/list"
|
||||
enctype="multipart/form-data"
|
||||
@ -68,28 +68,13 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><@locale code="apps.tokenbased.token.content" />:</th>
|
||||
<td colspan=3>
|
||||
<table class="hidetable" style="width:100%;">
|
||||
<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 >
|
||||
<#include "../userPropertys.ftl"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><@locale code="apps.tokenbased.expires" />:</th>
|
||||
<td>
|
||||
<input type="text" class="form-control" id="expires" name="expires" title="" value="${model.expires}" required="" />
|
||||
</td>
|
||||
<th></th>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
||||
@ -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>
|
||||
@ -41,6 +41,11 @@
|
||||
<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/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 -->
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
@ -60,6 +65,8 @@
|
||||
$(".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)});
|
||||
|
||||
$(".multipleselect").multipleSelect({});
|
||||
|
||||
$.platform = $.platform || {};
|
||||
$.platform.messages = $.platform.messages || {};
|
||||
$.extend($.platform.messages, {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user