name to real name

This commit is contained in:
MaxKey
2022-07-04 09:12:58 +08:00
parent 8bfdaa33c0
commit 451af2dbac
82 changed files with 1376 additions and 1459 deletions
@@ -0,0 +1,39 @@
/*
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.maxkey.constants;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
/**
* PROTOCOLS.
* @author Crystal.Sea
*
*/
public final class ConstsRoles {
public static final SimpleGrantedAuthority ROLE_ADMINISTRATORS = new SimpleGrantedAuthority("ROLE_ADMINISTRATORS");
public static final SimpleGrantedAuthority ROLE_MANAGERS = new SimpleGrantedAuthority("ROLE_MANAGERS");
public static final SimpleGrantedAuthority ROLE_USER = new SimpleGrantedAuthority("ROLE_USER");
public static final SimpleGrantedAuthority ROLE_ALL_USER = new SimpleGrantedAuthority("ROLE_ALL_USER");
public static final SimpleGrantedAuthority ROLE_ORDINARY_USER = new SimpleGrantedAuthority("ROLE_ORDINARY_USER");
}
@@ -39,9 +39,9 @@ public class Organizations extends JpaBaseEntity implements Serializable {
@GeneratedValue(strategy = GenerationType.AUTO, generator = "snowflakeid")
private String id;
@Column
private String code;
private String orgCode;
@Column
private String name;
private String orgName;
@Column
private String fullName;
@Column
@@ -131,23 +131,23 @@ public class Organizations extends JpaBaseEntity implements Serializable {
this.id = id;
}
public String getCode() {
return code;
}
public String getOrgCode() {
return orgCode;
}
public void setCode(String code) {
this.code = code;
}
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}
public String getName() {
return name;
}
public String getOrgName() {
return orgName;
}
public void setName(String name) {
this.name = name;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public String getFullName() {
public String getFullName() {
return fullName;
}
@@ -445,10 +445,10 @@ public class Organizations extends JpaBaseEntity implements Serializable {
StringBuilder builder = new StringBuilder();
builder.append("Organizations [id=");
builder.append(id);
builder.append(", code=");
builder.append(code);
builder.append(", name=");
builder.append(name);
builder.append(", orgCode=");
builder.append(orgCode);
builder.append(", orgName=");
builder.append(orgName);
builder.append(", fullName=");
builder.append(fullName);
builder.append(", parentId=");
@@ -35,7 +35,17 @@ public class Resources extends JpaBaseEntity implements Serializable {
@GeneratedValue(strategy = GenerationType.AUTO,generator = "snowflakeid")
String id;
@Column
String name;
String resourceName;
@Column
String resourceType;
@Column
String resourceIcon;
@Column
String resourceStyle;
@Column
String resourceUrl;
@Column
String resourceAction;
@Column
String permission;
@Column
@@ -48,16 +58,6 @@ public class Resources extends JpaBaseEntity implements Serializable {
@Column
String parentName;
@Column
String resourceType;
@Column
String resourceIcon;
@Column
String resourceStyle;
@Column
String resourceUrl;
@Column
String resourceAction;
@Column
String status;
@Column
String description;
@@ -86,15 +86,15 @@ public class Resources extends JpaBaseEntity implements Serializable {
this.id = id;
}
public String getName() {
return name;
}
public String getResourceName() {
return resourceName;
}
public void setName(String name) {
this.name = name;
}
public void setResourceName(String resourceName) {
this.resourceName = resourceName;
}
public String getAppId() {
public String getAppId() {
return appId;
}
@@ -251,8 +251,8 @@ public class Resources extends JpaBaseEntity implements Serializable {
StringBuilder builder = new StringBuilder();
builder.append("Resources [id=");
builder.append(id);
builder.append(", name=");
builder.append(name);
builder.append(", resourceName=");
builder.append(resourceName);
builder.append(", sortIndex=");
builder.append(sortIndex);
builder.append(", appId=");
@@ -38,7 +38,11 @@ public class Roles extends JpaBaseEntity implements Serializable {
@Length(max = 60)
@Column
String name;
String roleCode;
@Length(max = 60)
@Column
String roleName;
@Column
String dynamic;
@@ -86,22 +90,15 @@ public class Roles extends JpaBaseEntity implements Serializable {
* @param name String
* @param isdefault int
*/
public Roles(String id, String name, int isdefault) {
public Roles(String id,String roleCode, String roleName, int isdefault) {
super();
this.id = id;
this.name = name;
this.roleCode = roleCode;
this.roleName = roleName;
this.isdefault = isdefault;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
public String getId() {
return id;
}
@@ -109,6 +106,22 @@ public class Roles extends JpaBaseEntity implements Serializable {
this.id = id;
}
public String getRoleCode() {
return roleCode;
}
public void setRoleCode(String roleCode) {
this.roleCode = roleCode;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public int getIsdefault() {
return isdefault;
}
@@ -234,38 +247,44 @@ public class Roles extends JpaBaseEntity implements Serializable {
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("Groups [id=");
builder.append(id);
builder.append(", name=");
builder.append(name);
builder.append(", dynamic=");
builder.append(dynamic);
builder.append(", filters=");
builder.append(filters);
builder.append(", orgIdsList=");
builder.append(orgIdsList);
builder.append(", resumeTime=");
builder.append(resumeTime);
builder.append(", suspendTime=");
builder.append(suspendTime);
builder.append(", isdefault=");
builder.append(isdefault);
builder.append(", description=");
builder.append(description);
builder.append(", createdBy=");
builder.append(createdBy);
builder.append(", createdDate=");
builder.append(createdDate);
builder.append(", modifiedBy=");
builder.append(modifiedBy);
builder.append(", modifiedDate=");
builder.append(modifiedDate);
builder.append(", status=");
builder.append(status);
builder.append("]");
return builder.toString();
}
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("Roles [id=");
builder.append(id);
builder.append(", roleCode=");
builder.append(roleCode);
builder.append(", roleName=");
builder.append(roleName);
builder.append(", dynamic=");
builder.append(dynamic);
builder.append(", filters=");
builder.append(filters);
builder.append(", orgIdsList=");
builder.append(orgIdsList);
builder.append(", resumeTime=");
builder.append(resumeTime);
builder.append(", suspendTime=");
builder.append(suspendTime);
builder.append(", isdefault=");
builder.append(isdefault);
builder.append(", description=");
builder.append(description);
builder.append(", createdBy=");
builder.append(createdBy);
builder.append(", createdDate=");
builder.append(createdDate);
builder.append(", modifiedBy=");
builder.append(modifiedBy);
builder.append(", modifiedDate=");
builder.append(modifiedDate);
builder.append(", status=");
builder.append(status);
builder.append(", instId=");
builder.append(instId);
builder.append(", instName=");
builder.append(instName);
builder.append("]");
return builder.toString();
}
}
@@ -61,7 +61,7 @@ public class Apps extends JpaBaseEntity implements Serializable {
*
*/
@Column
private String name;
private String appName;
/*
* Login url
*/
@@ -173,19 +173,7 @@ public class Apps extends JpaBaseEntity implements Serializable {
credential = CREDENTIALS.NONE;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
@@ -195,7 +183,19 @@ public class Apps extends JpaBaseEntity implements Serializable {
this.id = id;
}
/**
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
/**
* @return the loginUrl
*/
public String getLoginUrl() {
@@ -619,8 +619,8 @@ public class Apps extends JpaBaseEntity implements Serializable {
StringBuilder builder = new StringBuilder();
builder.append("Apps [id=");
builder.append(id);
builder.append(", name=");
builder.append(name);
builder.append(", appName=");
builder.append(appName);
builder.append(", loginUrl=");
builder.append(loginUrl);
builder.append(", category=");
@@ -91,7 +91,7 @@ public class AppsOAuth20Details extends Apps {
public AppsOAuth20Details(Apps application, BaseClientDetails baseClientDetails) {
super();
this.id = application.getId();
this.setName(application.getName());
this.setAppName(application.getAppName());
this.setLoginUrl(application.getLoginUrl());
this.setLogoutUrl(application.getLogoutUrl());
this.setCategory(application.getCategory());
@@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.maxkey.constants.ConstsRoles;
import org.maxkey.constants.ConstsStatus;
import org.maxkey.entity.Roles;
import org.maxkey.entity.UserInfo;
@@ -51,7 +52,7 @@ public class LoginRepository {
private static final String ROLES_SELECT_STATEMENT = "select distinct r.id,r.name from mxk_userinfo u,mxk_roles r,mxk_role_member rm where u.id = ? and u.id=rm.memberid and rm.roleid=r.id ";
private static final String ROLES_SELECT_STATEMENT = "select distinct r.id,r.rolecode,r.rolename from mxk_userinfo u,mxk_roles r,mxk_role_member rm where u.id = ? and u.id=rm.memberid and rm.roleid=r.id ";
private static final String DEFAULT_USERINFO_SELECT_STATEMENT = "select * from mxk_userinfo where username = ? ";
@@ -59,7 +60,7 @@ public class LoginRepository {
private static final String DEFAULT_USERINFO_SELECT_STATEMENT_USERNAME_MOBILE_EMAIL = "select * from mxk_userinfo where (username = ? or mobile = ? or email = ?) ";
private static final String DEFAULT_MYAPPS_SELECT_STATEMENT = "select distinct app.id,app.name from mxk_apps app,mxk_role_permissions pm,mxk_roles r where app.id=pm.appid and pm.roleid=r.id and r.id in(%s)";
private static final String DEFAULT_MYAPPS_SELECT_STATEMENT = "select distinct app.id,app.appname from mxk_apps app,mxk_role_permissions pm,mxk_roles r where app.id=pm.appid and pm.roleid=r.id and r.id in(%s)";
protected JdbcTemplate jdbcTemplate;
@@ -214,7 +215,7 @@ public class LoginRepository {
public List<Roles> queryRoles(UserInfo userInfo) {
List<Roles> listRoles = jdbcTemplate.query(ROLES_SELECT_STATEMENT, new RowMapper<Roles>() {
public Roles mapRow(ResultSet rs, int rowNum) throws SQLException {
Roles role = new Roles(rs.getString("id"), rs.getString("name"), 0);
Roles role = new Roles(rs.getString("id"), rs.getString("rolecode"),rs.getString("rolename"), 0);
return role;
}
@@ -232,15 +233,19 @@ public class LoginRepository {
*/
public ArrayList<GrantedAuthority> grantAuthority(UserInfo userInfo) {
// query roles for user
List<Roles> listGroups = queryRoles(userInfo);
List<Roles> listRoles = queryRoles(userInfo);
//set default roles
ArrayList<GrantedAuthority> grantedAuthority = new ArrayList<GrantedAuthority>();
grantedAuthority.add(new SimpleGrantedAuthority("ROLE_USER"));
grantedAuthority.add(new SimpleGrantedAuthority("ROLE_ORDINARY_USER"));
grantedAuthority.add(new SimpleGrantedAuthority("ROLE_ALL_USER"));
for (Roles group : listGroups) {
grantedAuthority.add(new SimpleGrantedAuthority(group.getId()));
grantedAuthority.add(ConstsRoles.ROLE_USER);
grantedAuthority.add(ConstsRoles.ROLE_ALL_USER);
grantedAuthority.add(ConstsRoles.ROLE_ORDINARY_USER);
for (Roles role : listRoles) {
grantedAuthority.add(new SimpleGrantedAuthority(role.getId()));
if(role.getRoleCode().startsWith("ROLE_")
&& !grantedAuthority.contains(new SimpleGrantedAuthority(role.getRoleCode()))) {
grantedAuthority.add(new SimpleGrantedAuthority(role.getRoleCode()));
}
}
_logger.debug("Authority : " + grantedAuthority);
@@ -133,7 +133,7 @@ public class ScimGroupController {
ScimGroup scimGroup = new ScimGroup();
scimGroup.setId(group.getId());
scimGroup.setExternalId(group.getId());
scimGroup.setDisplayName(group.getName());
scimGroup.setDisplayName(group.getRoleName());
ScimMeta meta = new ScimMeta("Group");
if(StringUtils.isNotBlank(group.getCreatedDate())){
@@ -152,7 +152,7 @@ public class ScimGroupController {
public Roles scimGroup2Role(ScimGroup scimGroup) {
Roles role = new Roles();
role.setId(scimGroup.getId());
role.setName(scimGroup.getDisplayName());
role.setRoleName(scimGroup.getDisplayName());
return role;
}
}
@@ -126,9 +126,9 @@ public class ScimOrganizationController {
public ScimOrganization org2ScimOrg(Organizations org) {
ScimOrganization scimOrg = new ScimOrganization();
scimOrg.setId(org.getId());
scimOrg.setCode(org.getCode());
scimOrg.setName(org.getName());
scimOrg.setDisplayName(org.getName());
scimOrg.setCode(org.getOrgCode());
scimOrg.setName(org.getOrgName());
scimOrg.setDisplayName(org.getOrgName());
scimOrg.setFullName(org.getFullName());
scimOrg.setType(org.getType());
scimOrg.setLevel(org.getLevel());
@@ -168,9 +168,9 @@ public class ScimOrganizationController {
public Organizations scimOrg2Org(ScimOrganization scimOrg) {
Organizations org = new Organizations();
org.setId(scimOrg.getId());
org.setCode(scimOrg.getCode());
org.setOrgCode(scimOrg.getCode());
org.setFullName(scimOrg.getFullName());
org.setName(StringUtils.isNotBlank(scimOrg.getName()) ? scimOrg.getName():scimOrg.getDisplayName());
org.setOrgName(StringUtils.isNotBlank(scimOrg.getName()) ? scimOrg.getName():scimOrg.getDisplayName());
org.setParentId(StringUtils.isNotBlank(scimOrg.getParentId())? scimOrg.getParentId():scimOrg.getParent());
org.setParentCode(scimOrg.getParentCode());
org.setParentName(scimOrg.getParentName());
@@ -170,7 +170,7 @@ public class ScimUserController {
List<ScimGroupRef> groups = new ArrayList<ScimGroupRef>();
for(Roles role : rolesService.queryRolesByUserId(userInfo.getId())){
groupsList.add(role.getId());
groups.add(new ScimGroupRef(role.getId(),role.getName()));
groups.add(new ScimGroupRef(role.getId(),role.getRoleName()));
}
scimUser.setGroup(groupsList);
@@ -114,9 +114,9 @@ public class HistorySystemLogsService extends JpaBaseService<HistorySystemLogs>
public String buildMsg(Organizations org) {
return new StringBuilder()
.append(org.getName())
.append(org.getOrgName())
.append("[")
.append(org.getCode())
.append(org.getOrgCode())
.append("]")
.toString();
}
@@ -143,7 +143,7 @@ public class HistorySystemLogsService extends JpaBaseService<HistorySystemLogs>
public String buildMsg(Roles g) {
return new StringBuilder()
.append(g.getName())
.append(g.getRoleName())
.toString();
}
@@ -178,7 +178,7 @@ public class HistorySystemLogsService extends JpaBaseService<HistorySystemLogs>
public String buildMsg(Resources r) {
return new StringBuilder()
.append(r.getName())
.append(r.getResourceName())
.append("[")
.append(r.getResourceType())
.append("]")
@@ -9,8 +9,8 @@
<if test="appId != null and appId != ''">
and mas.appid = #{appId}
</if>
<if test="name != null and name != ''">
and mas.name = #{name}
<if test="appName != null and appName != ''">
and mas.appname = #{appName}
</if>
</sql>
@@ -6,8 +6,8 @@
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="name != null and name != ''">
and name like '%${name}%'
<if test="appName != null and appName != ''">
and appname like '%${appName}%'
</if>
<if test="protocol != null and protocol != ''">
and protocol = #{protocol}
@@ -39,7 +39,7 @@
<insert id="insertApp" parameterType="Apps">
insert into mxk_apps(
id,
name,
appname,
icon,
loginurl,
protocol,
@@ -82,7 +82,7 @@
instid
)values(
#{id},
#{name},
#{appName},
#{icon},
#{loginUrl},
#{protocol},
@@ -127,7 +127,7 @@
<update id="updateApp" parameterType="Apps" >
update mxk_apps set
name = #{name},
appname = #{appName},
<if test="icon != null">
icon = #{icon},
</if>
@@ -200,8 +200,8 @@
</if>
)
)
<if test="name != null and name != ''">
and name = #{name}
<if test="appName != null and appName != ''">
and appname = #{appName}
</if>
order by sortindex
</select>
@@ -6,8 +6,8 @@
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="name != null and name != '' ">
and name like '%${name}%'
<if test="orgName != null and orgName != '' ">
and orgname like '%${orgName}%'
</if>
<if test="parentId != null and parentId != '' ">
and parentid = #{parentId}
@@ -45,8 +45,8 @@
<if test="id != null and id != '' ">
and id = #{id}
</if>
<if test="name != name">
and name = #{name}
<if test="orgName != orgName">
and orgname = #{orgName}
</if>
<if test="enable != null">
and status = '1'
@@ -12,8 +12,8 @@
<if test="parentId != null and parentId != ''">
and res.parentid = #{parentId}
</if>
<if test="name != null and name != ''">
and res.name like '%${name}%'
<if test="resourceName != null and resourceName != ''">
and res.resourcename like '%${resourceName}%'
</if>
</sql>
@@ -21,7 +21,7 @@
<select id="queryPageResults" parameterType="Resources" resultType="Resources">
select
res.*,app.name appname
res.*,app.appname
from
mxk_resources res, mxk_apps app
where
@@ -40,8 +40,8 @@
<if test="id != null">
and id = #{id}
</if>
<if test="name != name">
and name = #{name}
<if test="resourceName != resourceName">
and resourcename = #{resourceName}
</if>
</update>
@@ -15,7 +15,7 @@
select distinct
rm.id as id,
r.id as roleid,
r.name as rolename,
r.rolename,
r.dynamic dynamic,
u.username,
u.usertype,
@@ -61,7 +61,7 @@
and r.id = #{roleId}
</if>
<if test="roleName != null and roleName != ''">
and g.name = #{roleName}
and r.rolename = #{roleName}
</if>
<if test="username != null and username != ''">
and u.username = #{username}
@@ -126,7 +126,7 @@
and r.id = #{roleId}
</if>
<if test="roleName != null and roleName != ''">
and g.name = #{roleName}
and r.rolename = #{roleName}
</if>
and rm.type in( 'USER','USER-DYNAMIC')
and rm.roleid = r.id
@@ -158,7 +158,7 @@
</if>
)
<if test="roleName != null and roleName != ''">
and r.name = #{roleName}
and r.rolename = #{roleName}
</if>
</select>
@@ -180,7 +180,7 @@
and r.id = #{roleId}
</if>
<if test="roleName != null and roleName != ''">
and r.name = #{roleName}
and r.rolename = #{roleName}
</if>
</select>
@@ -6,8 +6,8 @@
<if test="id != null and id != ''">
and apps.id = #{id}
</if>
<if test="name != null and name != ''">
and apps.name like '%${name}%'
<if test="appName != null and appName != ''">
and apps.appname like '%${appName}%'
</if>
<if test="protocol != null and protocol != ''">
and apps.protocol = #{protocol}
@@ -22,10 +22,9 @@
select
p.id,
p.roleid,
r.name rolename,
r.rolename,
apps.id appid,
apps.name,
apps.name appname,
apps.appname,
apps.icon,
apps.loginurl,
apps.protocol,
@@ -6,8 +6,8 @@
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="name != null and name != ''">
and name like '%${name}%'
<if test="roleName != null and roleName != ''">
and rolename like '%${roleName}%'
</if>
</sql>
@@ -40,8 +40,8 @@
<if test="id != null">
and id = #{id}
</if>
<if test="name != name">
and name = #{name}
<if test="roleName != roleName">
and rolename = #{roleName}
</if>
</update>
@@ -74,7 +74,7 @@ public class AuthorizeBaseEndpoint {
Accounts account = new Accounts(userInfo.getId(),loadApp.getId());
account.setUsername(userInfo.getUsername());
account.setAppName(app.getName());
account.setAppName(app.getAppName());
if(loadApp.getCredential() == Apps.CREDENTIALS.USER_DEFINED){
account = accountsService.load(new Accounts(userInfo.getId(),loadApp.getId()));
@@ -59,7 +59,7 @@ public class AuthorizeCredentialEndpoint extends AuthorizeBaseEndpoint{
account.setDisplayName(currentUser.getDisplayName());
account.setAppId(appId);
account.setAppName(app.getName());
account.setAppName(app.getAppName());
account.setInstId(currentUser.getInstId());
account.setCreateType("manual");
account.setStatus(ConstsStatus.ACTIVE);
@@ -153,7 +153,7 @@ public class OAuth20AccessConfirmationEndpoint {
model.put("auth_request", clientAuth);
model.put("client", client);
model.put("clientId", clientAuth.getClientId());
model.put("appName", app.getName());
model.put("appName", app.getAppName());
model.put("iconBase64", app.getIconBase64());
model.put("oauth_version", "oauth 2.0");
Map<String, String> scopes = new LinkedHashMap<String, String>();
@@ -70,7 +70,7 @@ public class ActiveDirectoryOrganizationService extends AbstractSynchronizerSer
parentOrg = rootOrganization;
}
organization.setParentId(parentOrg.getId());
organization.setParentName(parentOrg.getName());
organization.setParentName(parentOrg.getOrgName());
organization.setCodePath(parentOrg.getCodePath()+"/"+organization.getId());
_logger.info("parentNamePath " + parentNamePath+" , namePah " + organization.getNamePath());
@@ -83,7 +83,7 @@ public class ActiveDirectoryOrganizationService extends AbstractSynchronizerSer
organizationsService.insert(organization);
_logger.debug("Organizations : " + organization);
synchroRelated = buildSynchroRelated(organization,organization.getLdapDn(),organization.getName());
synchroRelated = buildSynchroRelated(organization,organization.getLdapDn(),organization.getOrgName());
}else {
organization.setId(synchroRelated.getObjectId());
organizationsService.update(organization);
@@ -99,7 +99,7 @@ public class ActiveDirectoryOrganizationService extends AbstractSynchronizerSer
this.synchronizer.getId(),
this.synchronizer.getName(),
organization.getId(),
organization.getName(),
organization.getOrgName(),
Organizations.class.getSimpleName(),
org.maxkey.util.DateUtils.getCurrentDateAsString(),
"success",
@@ -164,8 +164,8 @@ public class ActiveDirectoryOrganizationService extends AbstractSynchronizerSer
public SynchroRelated buildSynchroRelated(Organizations organization,String ldapDN,String name) {
return new SynchroRelated(
organization.getId(),
organization.getName(),
organization.getName(),
organization.getOrgName(),
organization.getOrgName(),
Organizations.CLASS_TYPE,
synchronizer.getId(),
synchronizer.getName(),
@@ -181,7 +181,7 @@ public class ActiveDirectoryOrganizationService extends AbstractSynchronizerSer
Organizations org = new Organizations();
org.setLdapDn(nameInNamespace);
String []namePaths = name.replaceAll(",OU=", "/").replaceAll("OU=", "/").split("/");
String namePah= "/"+rootOrganization.getName();
String namePah= "/"+rootOrganization.getOrgName();
for(int i = namePaths.length -1 ; i >= 0 ; i --) {
namePah = namePah + "/" + namePaths[i];
}
@@ -189,10 +189,10 @@ public class ActiveDirectoryOrganizationService extends AbstractSynchronizerSer
namePah = namePah.substring(0, namePah.length() - 1);
org.setId(org.generateId());
org.setCode(org.getId());
org.setOrgCode(org.getId());
org.setNamePath(namePah);
org.setLevel(namePaths.length);
org.setName(LdapUtils.getAttributeStringValue(OrganizationalUnit.OU,attributeMap));
org.setOrgName(LdapUtils.getAttributeStringValue(OrganizationalUnit.OU,attributeMap));
org.setCountry(LdapUtils.getAttributeStringValue(OrganizationalUnit.CO,attributeMap));
org.setRegion(LdapUtils.getAttributeStringValue(OrganizationalUnit.ST,attributeMap));
org.setLocality(LdapUtils.getAttributeStringValue(OrganizationalUnit.L,attributeMap));
@@ -120,7 +120,7 @@ public class ActiveDirectoryUsersService extends AbstractSynchronizerService
UserInfo userInfo = new UserInfo();
userInfo.setLdapDn(nameInNamespace);
String []namePaths = name.replaceAll(",OU=", "/").replaceAll("OU=", "/").split("/");
String namePah= "/"+rootOrganization.getName();
String namePah= "/"+rootOrganization.getOrgName();
for(int i = namePaths.length -1 ; i >= 0 ; i --) {
namePah = namePah + "/" + namePaths[i];
}
@@ -133,7 +133,7 @@ public class ActiveDirectoryUsersService extends AbstractSynchronizerService
deptOrg = rootOrganization;
}
userInfo.setDepartment(deptOrg.getName());
userInfo.setDepartment(deptOrg.getOrgName());
userInfo.setDepartmentId(deptOrg.getId());
try {
userInfo.setId(userInfo.generateId());
@@ -135,8 +135,8 @@ public class DingtalkOrganizationService extends AbstractSynchronizerService im
public SynchroRelated buildSynchroRelated(Organizations organization,String deptId,String name,String parentId) {
return new SynchroRelated(
organization.getId(),
organization.getName(),
organization.getName(),
organization.getOrgName(),
organization.getOrgName(),
Organizations.CLASS_TYPE,
synchronizer.getId(),
synchronizer.getName(),
@@ -154,8 +154,8 @@ public class DingtalkOrganizationService extends AbstractSynchronizerService im
this.synchronizer,dept.getParentId() + "",Organizations.CLASS_TYPE);
Organizations org = new Organizations();
org.setId(dept.getDeptId()+"");
org.setCode(dept.getDeptId()+"");
org.setName(dept.getName());
org.setOrgCode(dept.getDeptId()+"");
org.setOrgName(dept.getName());
org.setParentCode(dept.getParentId()+"");
if(synchroRelatedParent != null) {
org.setParentId(synchroRelatedParent.getObjectId());
@@ -126,8 +126,8 @@ public class FeishuOrganizationService extends AbstractSynchronizerService imple
public SynchroRelated buildSynchroRelated(Organizations org,FeishuDepts dept) {
return new SynchroRelated(
org.getId(),
org.getName(),
org.getName(),
org.getOrgName(),
org.getOrgName(),
Organizations.CLASS_TYPE,
synchronizer.getId(),
synchronizer.getName(),
@@ -145,8 +145,8 @@ public class FeishuOrganizationService extends AbstractSynchronizerService imple
this.synchronizer,dept.getParent_department_id(),Organizations.CLASS_TYPE);
Organizations org = new Organizations();
org.setCode(dept.getDepartment_id()+"");
org.setName(dept.getName());
org.setOrgCode(dept.getDepartment_id()+"");
org.setOrgName(dept.getName());
org.setFullName(dept.getName());
org.setParentId(synchroRelatedParent.getObjectId());
org.setParentName(synchroRelatedParent.getObjectName());
@@ -70,7 +70,7 @@ public class LdapOrganizationService extends AbstractSynchronizerService implem
parentOrg = rootOrganization;
}
organization.setParentId(parentOrg.getId());
organization.setParentName(parentOrg.getName());
organization.setParentName(parentOrg.getOrgName());
organization.setCodePath(parentOrg.getCodePath()+"/"+organization.getId());
_logger.info("parentNamePath " + parentNamePath+" , namePah " + organization.getNamePath());
@@ -83,7 +83,7 @@ public class LdapOrganizationService extends AbstractSynchronizerService implem
organizationsService.insert(organization);
_logger.debug("Organizations : " + organization);
synchroRelated = buildSynchroRelated(organization,organization.getLdapDn(),organization.getName());
synchroRelated = buildSynchroRelated(organization,organization.getLdapDn(),organization.getOrgName());
}else {
organization.setId(synchroRelated.getObjectId());
organizationsService.update(organization);
@@ -100,7 +100,7 @@ public class LdapOrganizationService extends AbstractSynchronizerService implem
historySynchronizer.setSyncId(this.synchronizer.getId());
historySynchronizer.setSyncName(this.synchronizer.getName());
historySynchronizer.setObjectId(organization.getId());
historySynchronizer.setObjectName(organization.getName());
historySynchronizer.setObjectName(organization.getOrgName());
historySynchronizer.setObjectType(Organizations.class.getSimpleName());
historySynchronizer.setInstId(synchronizer.getInstId());
historySynchronizer.setResult("success");
@@ -158,8 +158,8 @@ public class LdapOrganizationService extends AbstractSynchronizerService implem
public SynchroRelated buildSynchroRelated(Organizations organization,String ldapDN,String name) {
return new SynchroRelated(
organization.getId(),
organization.getName(),
organization.getName(),
organization.getOrgName(),
organization.getOrgName(),
Organizations.CLASS_TYPE,
synchronizer.getId(),
synchronizer.getName(),
@@ -175,7 +175,7 @@ public class LdapOrganizationService extends AbstractSynchronizerService implem
Organizations org = new Organizations();
org.setLdapDn(nameInNamespace);
String []namePaths = name.replaceAll(",OU=", "/").replaceAll("OU=", "/").split("/");
String namePah= "/"+rootOrganization.getName();
String namePah= "/"+rootOrganization.getOrgName();
for(int i = namePaths.length -1 ; i >= 0 ; i --) {
namePah = namePah + "/" + namePaths[i];
}
@@ -183,10 +183,10 @@ public class LdapOrganizationService extends AbstractSynchronizerService implem
namePah = namePah.substring(0, namePah.length() - 1);
org.setId(org.generateId());
org.setCode(org.getId());
org.setOrgCode(org.getId());
org.setNamePath(namePah);
org.setLevel(namePaths.length);
org.setName(LdapUtils.getAttributeStringValue(OrganizationalUnit.OU,attributeMap));
org.setOrgName(LdapUtils.getAttributeStringValue(OrganizationalUnit.OU,attributeMap));
//org.setCountry(LdapUtils.getAttributeStringValue(OrganizationalUnit.CO,attributeMap));
org.setRegion(LdapUtils.getAttributeStringValue(OrganizationalUnit.ST,attributeMap));
org.setLocality(LdapUtils.getAttributeStringValue(OrganizationalUnit.L,attributeMap));
@@ -111,7 +111,7 @@ public class LdapUsersService extends AbstractSynchronizerService implements IS
UserInfo userInfo = new UserInfo();
userInfo.setLdapDn(nameInNamespace);
String []namePaths = name.replaceAll(",OU=", "/").replaceAll("OU=", "/").split("/");
String namePah= "/"+rootOrganization.getName();
String namePah= "/"+rootOrganization.getOrgName();
for(int i = namePaths.length -1 ; i >= 0 ; i --) {
namePah = namePah + "/" + namePaths[i];
}
@@ -120,7 +120,7 @@ public class LdapUsersService extends AbstractSynchronizerService implements IS
String deptNamePath= namePah.substring(0, namePah.lastIndexOf("/"));
_logger.info("deptNamePath " + deptNamePath);
Organizations deptOrg = orgsNamePathMap.get(deptNamePath);
userInfo.setDepartment(deptOrg.getName());
userInfo.setDepartment(deptOrg.getOrgName());
userInfo.setDepartmentId(deptOrg.getId());
try {
@@ -74,7 +74,7 @@ public class ReorgDeptService extends AbstractSynchronizerService implements ISy
if(listOrg.get(i).getParentId().equals(rootParentOrgId)){
tempOrg = listOrg.get(i);
tempOrg.setReorgNamePath(true);
tempOrg.setNamePath("/"+tempOrg.getName());
tempOrg.setNamePath("/"+tempOrg.getOrgName());
tempOrg.setCodePath("/"+tempOrg.getId());
tempOrg.setParentId("-1");
tempOrg.setParentName("");
@@ -89,9 +89,9 @@ public class ReorgDeptService extends AbstractSynchronizerService implements ISy
tempOrg = listOrg.get(i);
if(!tempOrg.isReorgNamePath() && parentOrg != null){
tempOrg.setReorgNamePath(true);
tempOrg.setParentName(parentOrg.getName());
tempOrg.setParentName(parentOrg.getOrgName());
tempOrg.setCodePath(parentOrg.getCodePath()+"/"+tempOrg.getId());
tempOrg.setNamePath(parentOrg.getNamePath()+"/"+tempOrg.getName());
tempOrg.setNamePath(parentOrg.getNamePath()+"/"+tempOrg.getOrgName());
orgMap.put(tempOrg.getId(), tempOrg);
_logger.info("reorg : " + tempOrg);
}
@@ -85,8 +85,8 @@ public class WorkweixinOrganizationService extends AbstractSynchronizerService i
public SynchroRelated buildSynchroRelated(Organizations organization,WorkWeixinDepts dept) {
return new SynchroRelated(
organization.getId(),
organization.getName(),
organization.getName(),
organization.getOrgName(),
organization.getOrgName(),
Organizations.CLASS_TYPE,
synchronizer.getId(),
synchronizer.getName(),
@@ -115,8 +115,8 @@ public class WorkweixinOrganizationService extends AbstractSynchronizerService i
synchroRelatedService.findByOriginId(
this.synchronizer,dept.getParentid() + "",Organizations.CLASS_TYPE);
Organizations org = new Organizations();
org.setName(dept.getName());
org.setCode(dept.getId()+"");
org.setOrgName(dept.getName());
org.setOrgCode(dept.getId()+"");
org.setParentId(synchroRelatedParent.getObjectId());
org.setParentName(synchroRelatedParent.getObjectName());
org.setSortIndex(dept.getOrder());
@@ -65,7 +65,7 @@ public abstract class AbstractSynchronizerService {
for(Organizations org : orgsList) {
if(org.getId().equals(rootOrgId) && rootOrgId.equals("1")) {
rootOrganization = org;
rootOrganization.setNamePath("/"+rootOrganization.getName());
rootOrganization.setNamePath("/"+rootOrganization.getOrgName());
rootOrganization.setCodePath("/1");
rootOrganization.setParentId("-1");
rootOrganization.setParentName("");
@@ -108,9 +108,9 @@ public abstract class AbstractSynchronizerService {
for(Organizations org : orgsList) {
if(org.getParentId().equals(parentOrg.getId())) {
if(org.getNamePath() == null
|| !org.getNamePath().equals(parentOrg.getNamePath()+"/"+org.getName())) {
org.setParentName(parentOrg.getName());
org.setNamePath(parentOrg.getNamePath()+"/"+org.getName());
|| !org.getNamePath().equals(parentOrg.getNamePath()+"/"+org.getOrgName())) {
org.setParentName(parentOrg.getOrgName());
org.setNamePath(parentOrg.getNamePath()+"/"+org.getOrgName());
org.setCodePath(parentOrg.getCodePath()+"/"+org.getId());
organizationsService.update(org);
}
@@ -1,12 +1,8 @@
<div nz-row>
<div nz-col nzMd="3"></div>
<div nz-col nzMd="18">
<nz-list
[nzLoading]="loading"
[nzDataSource]="appList"
[nzRenderItem]="item"
[nzGrid]="{ gutter: 24, xl: 6, lg: 8, md: 8, sm: 12, xs: 24 }"
>
<nz-list [nzLoading]="loading" [nzDataSource]="appList" [nzRenderItem]="item"
[nzGrid]="{ gutter: 24, xl: 6, lg: 8, md: 8, sm: 12, xs: 24 }">
<ng-template #item let-item>
<nz-list-item>
<nz-card nzHoverable style="">
@@ -43,7 +39,7 @@
<p style="text-align: center" (click)="onAuthz($event, item.id)">
<img class="appListimage" src="{{ item.iconBase64 }}" />
</p>
<p>{{ item.name }}</p>
<p>{{ item.appName }}</p>
</div>
</div>
</nz-card>
@@ -52,4 +48,4 @@
</nz-list>
</div>
<div nz-col nzMd="3"></div>
</div>
</div>
@@ -19,7 +19,7 @@ import format from 'date-fns/format';
import { BaseEntity } from './BaseEntity';
export class Apps extends BaseEntity {
name!: String;
appName!: String;
loginUrl!: String;
category!: String;
protocol!: String;
@@ -1,25 +1,24 @@
/*
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { BaseEntity } from './BaseEntity';
export class Organizations extends BaseEntity {
code!: String;
name!: String;
orgCode!: String;
orgName!: String;
fullName!: String;
parentId!: String;
parentCode!: string;
@@ -17,7 +17,7 @@
import { BaseEntity } from './BaseEntity';
export class Resources extends BaseEntity {
name!: String;
resourceName!: String;
permission!: String;
appId!: String;
appName!: String;
@@ -19,7 +19,8 @@ import format from 'date-fns/format';
import { BaseEntity } from './BaseEntity';
export class Roles extends BaseEntity {
name!: String;
roleCode!: String;
roleName!: String;
dynamic!: String;
filters!: String;
orgIdsList!: String;
@@ -4,10 +4,10 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col nzMd="14" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="appName">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" name="appName"
placeholder="" id="appName" />
</nz-form-control>
</nz-form-item>
</div>
@@ -43,7 +43,7 @@
<td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled"
(nzCheckedChange)="onTableItemChecked(data.id, $event)"></td>
<td nzAlign="center"><img height="30" border="0px" src="{{ data.iconBase64 }}" /></td>
<td nzAlign="left"> {{ data.name }}</td>
<td nzAlign="left"> {{ data.appName }}</td>
<td nzAlign="left">
<div *ngIf="data.category == 'none'">{{ 'mxk.apps.category.none' | i18n }}</div>
<div *ngIf="data.category == '1011'">{{ 'mxk.apps.category.1011' | i18n }}</div>
@@ -36,7 +36,7 @@ export class PermissionsEditerComponent implements OnInit {
query: {
params: {
name: String;
appName: String;
displayName: String;
username: String;
roleId: String;
@@ -60,7 +60,7 @@ export class PermissionsEditerComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
appName: '',
displayName: '',
username: '',
roleId: '',
@@ -169,7 +169,7 @@ export class PermissionsComponent implements OnInit {
// Return a result when closed
modal.afterClose.subscribe(result => {
if (result.refresh) {
this.query.params.roleName = result.data.name;
this.query.params.roleName = result.data.roleName;
this.query.params.roleId = result.data.id;
console.log(result);
this.fetch();
@@ -43,7 +43,7 @@
<td nzAlign="left" style="display: none">
<span>{{ data.id }}</span>
</td>
<td nzAlign="left"> {{ data.name }}</td>
<td nzAlign="left"> {{ data.roleName }}</td>
<td nzAlign="center"> <i *ngIf="data.dynamic == 1" nz-icon nzType="check-circle" nzTheme="fill"
style="color: green"></i></td>
</tr>
@@ -5,11 +5,11 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 24, lg: 24, xl: 48, xxl: 48 }">
<div nz-col nzMd="8" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="roleName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-control>
<nz-input-group nzSearch [nzAddOnAfter]="suffixButton">
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
readonly placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.roleName" [ngModelOptions]="{ standalone: true }"
name="roleName" readonly placeholder="" id="roleName" />
</nz-input-group>
<ng-template #suffixButton>
<button nz-button nzType="primary" (click)="onSelect($event)" nzSearch>{{ 'mxk.text.select' | i18n
@@ -41,7 +41,7 @@ import { RoleMembersEditerComponent } from './role-members-editer/role-members-e
export class RoleMembersComponent implements OnInit {
query: {
params: {
name: String;
roleName: String;
displayName: String;
username: String;
roleId: String;
@@ -68,7 +68,7 @@ export class RoleMembersComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
roleName: '',
displayName: '',
username: '',
roleId: '',
@@ -128,7 +128,7 @@ export class RoleMembersComponent implements OnInit {
onReset(): void {
this.query.params.username = '';
this.query.params.roleId = '';
this.query.params.name = '';
this.query.params.roleName = '';
this.fetch();
}
@@ -196,7 +196,7 @@ export class RoleMembersComponent implements OnInit {
// Return a result when closed
modal.afterClose.subscribe(result => {
if (result.refresh) {
this.query.params.name = result.data.name;
this.query.params.roleName = result.data.roleName;
this.query.params.roleId = result.data.id;
console.log(result);
this.fetch();
@@ -1,17 +1,24 @@
<div *nzModalTitle> {{ isEdit ? ('mxk.text.edit' | i18n) : ('mxk.text.add' | i18n) }} </div>
<div>
<form nz-form [formGroup]="formGroup" (ngSubmit)="onSubmit($event)" se-container="1">
<nz-form-item>
<nz-form-item class="d-none">
<nz-form-label [nzMd]="6" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="18" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.id" disabled="{{ isEdit }}" [ngModelOptions]="{ standalone: true }" nz-input
name="id" id="id" />
name="id" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="18" [nzMd]="18" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not validminLength!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<nz-form-label [nzMd]="6" nzRequired nzFor="roleCode">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="18" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.roleCode" [ngModelOptions]="{ standalone: true }" nz-input name="roleCode" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="roleName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="18" [nzMd]="18" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid minLength!">
<input [(ngModel)]="form.model.roleName" [ngModelOptions]="{ standalone: true }" nz-input name="roleName"
id="roleName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
@@ -5,10 +5,10 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col nzMd="16" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="roleName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.roleName" [ngModelOptions]="{ standalone: true }" name="roleName"
placeholder="" id="roleName" />
</nz-form-control>
</nz-form-item>
</div>
@@ -53,7 +53,7 @@
<td nzAlign="left" style="display: none">
<span>{{ data.id }}</span>
</td>
<td nzAlign="left" nzBreakWord="false">{{ data.name }}</td>
<td nzAlign="left" nzBreakWord="false">{{ data.roleName }}</td>
<td nzAlign="center"> <i *ngIf="data.dynamic == 1" nz-icon nzType="check-circle" nzTheme="fill"
style="color: green"></i></td>
<td nzAlign="left">{{ data.description }}</td>
@@ -36,7 +36,7 @@ import { RoleEditerComponent } from './role-editer/role-editer.component';
export class RolesComponent implements OnInit {
query: {
params: {
name: String;
roleName: String;
displayName: String;
employeeNumber: String;
startDate: String;
@@ -59,7 +59,7 @@ export class RolesComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
roleName: '',
displayName: '',
employeeNumber: '',
startDate: '',
@@ -4,10 +4,10 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col nzMd="14" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="roleName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.roleName" [ngModelOptions]="{ standalone: true }" name="roleName"
placeholder="" id="roleName" />
</nz-form-control>
</nz-form-item>
</div>
@@ -43,7 +43,7 @@
<td nzAlign="left" style="display: none">
<span>{{ data.id }}</span>
</td>
<td nzAlign="left"> {{ data.name }}</td>
<td nzAlign="left"> {{ data.roleName }}</td>
<td nzAlign="center"> <i *ngIf="data.dynamic == 1" nz-icon nzType="check-circle" nzTheme="fill"
style="color: green"></i></td>
</tr>
@@ -33,7 +33,7 @@ import { RolesService } from '../../../../service/roles.service';
export class SelectRolesComponent implements OnInit {
query: {
params: {
name: String;
roleName: String;
displayName: String;
protocol: String;
startDate: String;
@@ -56,7 +56,7 @@ export class SelectRolesComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
roleName: '',
displayName: '',
protocol: '',
startDate: '',
@@ -8,24 +8,22 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzMd]="8" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="16" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id" id="id" />
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id"
id="id" />
</nz-form-control>
</nz-form-item>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid secret!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid secret!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixPasswordButton">
<input
[(ngModel)]="form.model.secret"
readonly
[ngModelOptions]="{ standalone: true }"
nz-input
name="secret"
id="secret"
/>
<input [(ngModel)]="form.model.secret" readonly [ngModelOptions]="{ standalone: true }" nz-input
name="secret" id="secret" />
</nz-input-group>
<ng-template #suffixPasswordButton>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate'
| i18n }}</button>
</ng-template>
</nz-form-control>
</nz-form-item>
@@ -34,57 +32,43 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
<div nz-col class="clearfix" nzSm="16" nzXs="24">
<nz-upload
nzAction="file/upload/"
nzListType="picture-card"
[(nzFileList)]="fileList"
nzName="uploadFile"
[nzShowButton]="fileList.length < 1"
[nzPreview]="handlePreview"
(nzChange)="uploadImageChange($event)"
>
<nz-upload nzAction="file/upload/" nzListType="picture-card" [(nzFileList)]="fileList" nzName="uploadFile"
[nzShowButton]="fileList.length < 1" [nzPreview]="handlePreview" (nzChange)="uploadImageChange($event)">
<div>
<i nz-icon nzType="plus"></i>
<div style="margin-top: 8px">Upload</div>
</div>
</nz-upload>
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null"
(nzOnCancel)="previewVisible = false">
<ng-template #modalContent>
<img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
</ng-template>
</nz-modal>
</div>
<nz-form-control
style="display: none"
[nzSm]="16"
[nzMd]="16"
[nzXs]="36"
[nzXl]="48"
nzErrorTip="The input is not valid icon!"
>
<input
[(ngModel)]="form.model.iconId"
disabled="true"
[ngModelOptions]="{ standalone: true }"
nz-input
name="icon"
id="icon"
/>
<nz-form-control style="display: none" [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid icon!">
<input [(ngModel)]="form.model.iconId" disabled="true" [ngModelOptions]="{ standalone: true }" nz-input
name="icon" id="icon" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
id="appName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
<label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
</nz-radio-group>
@@ -93,15 +77,20 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol" id="protocol" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol"
id="protocol" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category" id="category">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category"
id="category">
<nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
<nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
<nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
@@ -136,9 +125,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl" id="loginUrl" />
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl"
id="loginUrl" />
</nz-form-control>
</nz-form-item>
</div>
@@ -147,14 +139,18 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input name="logoutUrl" id="logoutUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="logoutUrl" id="logoutUrl" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType" id="logoutType">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType"
id="logoutType">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
@@ -166,8 +162,10 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible" id="visible">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible"
id="visible">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
@@ -177,30 +175,38 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input name="sortIndex" id="sortIndex" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input
name="sortIndex" id="sortIndex" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor" id="vendor" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor"
id="vendor" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input name="vendorUrl" id="vendorUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="vendorUrl" id="vendorUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter" id="isAdapter">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter"
id="isAdapter">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
</nz-select>
@@ -208,50 +214,32 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid adapterName!">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid adapterName!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
<input
[(ngModel)]="form.model.adapterName"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterName"
id="adapterName"
/>
<input [(ngModel)]="form.model.adapterName" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterName" id="adapterName" />
</nz-input-group>
<ng-template #suffixAdapterButton>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' |
i18n }}</button>
</ng-template>
<input
type="hidden"
[(ngModel)]="form.model.adapterId"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterId"
id="adapterId"
/>
<input
type="hidden"
[(ngModel)]="form.model.adapter"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapter"
id="adapter"
/>
<input type="hidden" [(ngModel)]="form.model.adapterId" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterId" id="adapterId" />
<input type="hidden" [(ngModel)]="form.model.adapter" [ngModelOptions]="{ standalone: true }" nz-input
name="adapter" id="adapter" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid description!">
<input
[(ngModel)]="form.model.description"
[ngModelOptions]="{ standalone: true }"
nz-input
name="description"
id="description"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid description!">
<input [(ngModel)]="form.model.description" [ngModelOptions]="{ standalone: true }" nz-input
name="description" id="description" />
</nz-form-control>
</nz-form-item>
</div>
@@ -263,4 +251,4 @@
<div *nzModalFooter>
<button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
<button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
</div>
</div>
@@ -89,7 +89,7 @@ export class AppBasicDetailsEditerComponent implements OnInit {
this.fileList = [
{
uid: this.form.model.id.toString(),
name: this.form.model.name.toString(),
name: this.form.model.appName.toString(),
status: 'done',
url: this.previewImage
}
@@ -56,10 +56,11 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name"
id="name" />
<input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
id="appName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
@@ -91,7 +91,7 @@ export class AppCasDetailsEditerComponent implements OnInit {
this.fileList = [
{
uid: this.form.model.id.toString(),
name: this.form.model.name.toString(),
name: this.form.model.appName.toString(),
status: 'done',
url: this.previewImage
}
@@ -8,24 +8,22 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzMd]="8" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="16" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id" id="id" />
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id"
id="id" />
</nz-form-control>
</nz-form-item>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid secret!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid secret!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixPasswordButton">
<input
[(ngModel)]="form.model.secret"
readonly
[ngModelOptions]="{ standalone: true }"
nz-input
name="secret"
id="secret"
/>
<input [(ngModel)]="form.model.secret" readonly [ngModelOptions]="{ standalone: true }" nz-input
name="secret" id="secret" />
</nz-input-group>
<ng-template #suffixPasswordButton>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate'
| i18n }}</button>
</ng-template>
</nz-form-control>
</nz-form-item>
@@ -34,57 +32,43 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
<div nz-col class="clearfix" nzSm="16" nzXs="24">
<nz-upload
nzAction="file/upload/"
nzListType="picture-card"
[(nzFileList)]="fileList"
nzName="uploadFile"
[nzShowButton]="fileList.length < 1"
[nzPreview]="handlePreview"
(nzChange)="uploadImageChange($event)"
>
<nz-upload nzAction="file/upload/" nzListType="picture-card" [(nzFileList)]="fileList" nzName="uploadFile"
[nzShowButton]="fileList.length < 1" [nzPreview]="handlePreview" (nzChange)="uploadImageChange($event)">
<div>
<i nz-icon nzType="plus"></i>
<div style="margin-top: 8px">Upload</div>
</div>
</nz-upload>
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null"
(nzOnCancel)="previewVisible = false">
<ng-template #modalContent>
<img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
</ng-template>
</nz-modal>
</div>
<nz-form-control
style="display: none"
[nzSm]="16"
[nzMd]="16"
[nzXs]="36"
[nzXl]="48"
nzErrorTip="The input is not valid icon!"
>
<input
[(ngModel)]="form.model.iconId"
disabled="true"
[ngModelOptions]="{ standalone: true }"
nz-input
name="icon"
id="icon"
/>
<nz-form-control style="display: none" [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid icon!">
<input [(ngModel)]="form.model.iconId" disabled="true" [ngModelOptions]="{ standalone: true }" nz-input
name="icon" id="icon" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
id="appName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
<label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
</nz-radio-group>
@@ -93,15 +77,20 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol" id="protocol" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol"
id="protocol" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category" id="category">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category"
id="category">
<nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
<nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
<nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
@@ -136,9 +125,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl" id="loginUrl" />
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl"
id="loginUrl" />
</nz-form-control>
</nz-form-item>
</div>
@@ -146,21 +138,21 @@
<nz-tab nzTitle="{{ 'mxk.apps.extendapi.tab' | i18n }}">
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="principal">{{ 'mxk.apps.principal' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid principal!">
<input [(ngModel)]="form.model.principal" [ngModelOptions]="{ standalone: true }" nz-input name="principal" id="principal" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="principal">{{ 'mxk.apps.principal' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid principal!">
<input [(ngModel)]="form.model.principal" [ngModelOptions]="{ standalone: true }" nz-input
name="principal" id="principal" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="credentials">{{ 'mxk.apps.credentials' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid credentials!">
<input
[(ngModel)]="form.model.credentials"
[ngModelOptions]="{ standalone: true }"
nz-input
name="credentials"
id="credentials"
/>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="credentials">{{ 'mxk.apps.credentials' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid credentials!">
<input [(ngModel)]="form.model.credentials" [ngModelOptions]="{ standalone: true }" nz-input
name="credentials" id="credentials" />
</nz-form-control>
</nz-form-item>
</div>
@@ -168,8 +160,10 @@
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="credential">{{ 'mxk.apps.credential' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid credential!">
<nz-radio-group [(ngModel)]="form.model.credential" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid credential!">
<nz-radio-group [(ngModel)]="form.model.credential" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="user-defined">{{ 'mxk.apps.credential.user-defined' | i18n }}</label>
<label nz-radio-button nzValue="shared">{{ 'mxk.apps.credential.shared' | i18n }}</label>
<label nz-radio-button nzValue="system">{{ 'mxk.apps.credential.system' | i18n }}</label>
@@ -179,14 +173,12 @@
</div>
<div nz-row style="{{ form.model.credential == 'system' ? '' : 'display: none;' }}">
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="systemUserAttr">{{ 'mxk.apps.systemUserAttr' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid systemUserAttr!">
<nz-select
[(ngModel)]="form.model.systemUserAttr"
[ngModelOptions]="{ standalone: true }"
name="systemUserAttr"
id="systemUserAttr"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="systemUserAttr">{{ 'mxk.apps.systemUserAttr' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid systemUserAttr!">
<nz-select [(ngModel)]="form.model.systemUserAttr" [ngModelOptions]="{ standalone: true }"
name="systemUserAttr" id="systemUserAttr">
<nz-option nzValue="username" nzLabel="{{ 'mxk.users.username' | i18n }}"></nz-option>
<nz-option nzValue="employeeNumber" nzLabel="{{ 'mxk.users.employeeNumber' | i18n }}"></nz-option>
<nz-option nzValue="email" nzLabel="{{ 'mxk.users.email' | i18n }}"></nz-option>
@@ -201,29 +193,21 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="sharedUsername">{{
'mxk.apps.credential.sharedUsername' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sharedUsername!">
<input
[(ngModel)]="form.model.sharedUsername"
[ngModelOptions]="{ standalone: true }"
nz-input
name="sharedUsername"
id="sharedUsername"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sharedUsername!">
<input [(ngModel)]="form.model.sharedUsername" [ngModelOptions]="{ standalone: true }" nz-input
name="sharedUsername" id="sharedUsername" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="sharedPassword">{{
'mxk.apps.credential.sharedPassword' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sharedPassword!">
<input
[(ngModel)]="form.model.sharedPassword"
[ngModelOptions]="{ standalone: true }"
nz-input
name="sharedPassword"
id="sharedPassword"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sharedPassword!">
<input [(ngModel)]="form.model.sharedPassword" [ngModelOptions]="{ standalone: true }" nz-input
name="sharedPassword" id="sharedPassword" />
</nz-form-control>
</nz-form-item>
</div>
@@ -232,14 +216,18 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input name="logoutUrl" id="logoutUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="logoutUrl" id="logoutUrl" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType" id="logoutType">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType"
id="logoutType">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
@@ -251,8 +239,10 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible" id="visible">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible"
id="visible">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
@@ -262,30 +252,38 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input name="sortIndex" id="sortIndex" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input
name="sortIndex" id="sortIndex" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor" id="vendor" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor"
id="vendor" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input name="vendorUrl" id="vendorUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="vendorUrl" id="vendorUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter" id="isAdapter">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter"
id="isAdapter">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
</nz-select>
@@ -293,49 +291,31 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid adapterName!">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid adapterName!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
<input
[(ngModel)]="form.model.adapterName"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterName"
id="adapterName"
/>
<input [(ngModel)]="form.model.adapterName" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterName" id="adapterName" />
</nz-input-group>
<ng-template #suffixAdapterButton>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' |
i18n }}</button>
</ng-template>
<input
type="hidden"
[(ngModel)]="form.model.adapterId"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterId"
id="adapterId"
/>
<input
type="hidden"
[(ngModel)]="form.model.adapter"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapter"
id="adapter"
/>
<input type="hidden" [(ngModel)]="form.model.adapterId" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterId" id="adapterId" />
<input type="hidden" [(ngModel)]="form.model.adapter" [ngModelOptions]="{ standalone: true }" nz-input
name="adapter" id="adapter" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid description!">
<input
[(ngModel)]="form.model.description"
[ngModelOptions]="{ standalone: true }"
nz-input
name="description"
id="description"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid description!">
<input [(ngModel)]="form.model.description" [ngModelOptions]="{ standalone: true }" nz-input
name="description" id="description" />
</nz-form-control>
</nz-form-item>
</div>
@@ -347,4 +327,4 @@
<div *nzModalFooter>
<button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
<button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
</div>
</div>
@@ -113,7 +113,7 @@ export class AppExtendApiDetailsEditerComponent implements OnInit {
this.fileList = [
{
uid: this.form.model.id.toString(),
name: this.form.model.name.toString(),
name: this.form.model.appName.toString(),
status: 'done',
url: this.previewImage
}
@@ -8,24 +8,22 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzMd]="8" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="16" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id" id="id" />
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id"
id="id" />
</nz-form-control>
</nz-form-item>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid secret!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid secret!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixPasswordButton">
<input
[(ngModel)]="form.model.secret"
readonly
[ngModelOptions]="{ standalone: true }"
nz-input
name="secret"
id="secret"
/>
<input [(ngModel)]="form.model.secret" readonly [ngModelOptions]="{ standalone: true }" nz-input
name="secret" id="secret" />
</nz-input-group>
<ng-template #suffixPasswordButton>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate'
| i18n }}</button>
</ng-template>
</nz-form-control>
</nz-form-item>
@@ -34,57 +32,43 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
<div nz-col class="clearfix" nzSm="16" nzXs="24">
<nz-upload
nzAction="file/upload/"
nzListType="picture-card"
[(nzFileList)]="fileList"
nzName="uploadFile"
[nzShowButton]="fileList.length < 1"
[nzPreview]="handlePreview"
(nzChange)="uploadImageChange($event)"
>
<nz-upload nzAction="file/upload/" nzListType="picture-card" [(nzFileList)]="fileList" nzName="uploadFile"
[nzShowButton]="fileList.length < 1" [nzPreview]="handlePreview" (nzChange)="uploadImageChange($event)">
<div>
<i nz-icon nzType="plus"></i>
<div style="margin-top: 8px">Upload</div>
</div>
</nz-upload>
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null"
(nzOnCancel)="previewVisible = false">
<ng-template #modalContent>
<img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
</ng-template>
</nz-modal>
</div>
<nz-form-control
style="display: none"
[nzSm]="16"
[nzMd]="16"
[nzXs]="36"
[nzXl]="48"
nzErrorTip="The input is not valid icon!"
>
<input
[(ngModel)]="form.model.iconId"
disabled="true"
[ngModelOptions]="{ standalone: true }"
nz-input
name="icon"
id="icon"
/>
<nz-form-control style="display: none" [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid icon!">
<input [(ngModel)]="form.model.iconId" disabled="true" [ngModelOptions]="{ standalone: true }" nz-input
name="icon" id="icon" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
id="appName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
<label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
</nz-radio-group>
@@ -93,15 +77,20 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol" id="protocol" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol"
id="protocol" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category" id="category">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category"
id="category">
<nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
<nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
<nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
@@ -136,9 +125,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl" id="loginUrl" />
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl"
id="loginUrl" />
</nz-form-control>
</nz-form-item>
</div>
@@ -148,15 +140,11 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="redirectUri">{{
'mxk.apps.formbased.redirectUri' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid redirectUri!">
<input
[(ngModel)]="form.model.redirectUri"
[ngModelOptions]="{ standalone: true }"
nz-input
name="redirectUri"
id="redirectUri"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid redirectUri!">
<input [(ngModel)]="form.model.redirectUri" [ngModelOptions]="{ standalone: true }" nz-input
name="redirectUri" id="redirectUri" />
</nz-form-control>
</nz-form-item>
</div>
@@ -164,56 +152,42 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="usernameMapping">{{
'mxk.apps.formbased.usernameMapping' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid usernameMapping!">
<input
[(ngModel)]="form.model.usernameMapping"
[ngModelOptions]="{ standalone: true }"
nz-input
name="usernameMapping"
id="usernameMapping"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid usernameMapping!">
<input [(ngModel)]="form.model.usernameMapping" [ngModelOptions]="{ standalone: true }" nz-input
name="usernameMapping" id="usernameMapping" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="passwordMapping">{{
'mxk.apps.formbased.passwordMapping' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid passwordMapping!">
<input
[(ngModel)]="form.model.passwordMapping"
[ngModelOptions]="{ standalone: true }"
nz-input
name="passwordMapping"
id="passwordMapping"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid passwordMapping!">
<input [(ngModel)]="form.model.passwordMapping" [ngModelOptions]="{ standalone: true }" nz-input
name="passwordMapping" id="passwordMapping" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="authorizeView">{{ 'mxk.apps.formbased.authorizeView' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid authorizeView!">
<input
[(ngModel)]="form.model.authorizeView"
[ngModelOptions]="{ standalone: true }"
nz-input
name="authorizeView"
id="authorizeView"
/>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="authorizeView">{{ 'mxk.apps.formbased.authorizeView' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid authorizeView!">
<input [(ngModel)]="form.model.authorizeView" [ngModelOptions]="{ standalone: true }" nz-input
name="authorizeView" id="authorizeView" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="passwordAlgorithm">{{
'mxk.apps.formbased.passwordAlgorithm' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid passwordAlgorithm!">
<nz-select
[(ngModel)]="form.model.passwordAlgorithm"
[ngModelOptions]="{ standalone: true }"
name="passwordAlgorithm"
id="passwordAlgorithm"
>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid passwordAlgorithm!">
<nz-select [(ngModel)]="form.model.passwordAlgorithm" [ngModelOptions]="{ standalone: true }"
name="passwordAlgorithm" id="passwordAlgorithm">
<nz-option nzValue="NONE" nzLabel="NONE"></nz-option>
<nz-option nzValue="MD5" nzLabel="MD5"></nz-option>
<nz-option nzValue="SHA" nzLabel="SHA"></nz-option>
@@ -235,8 +209,10 @@
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="credential">{{ 'mxk.apps.credential' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid credential!">
<nz-radio-group [(ngModel)]="form.model.credential" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid credential!">
<nz-radio-group [(ngModel)]="form.model.credential" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="user-defined">{{ 'mxk.apps.credential.user-defined' | i18n }}</label>
<label nz-radio-button nzValue="shared">{{ 'mxk.apps.credential.shared' | i18n }}</label>
<label nz-radio-button nzValue="system">{{ 'mxk.apps.credential.system' | i18n }}</label>
@@ -246,14 +222,12 @@
</div>
<div nz-row style="{{ form.model.credential == 'system' ? '' : 'display: none;' }}">
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="systemUserAttr">{{ 'mxk.apps.systemUserAttr' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid systemUserAttr!">
<nz-select
[(ngModel)]="form.model.systemUserAttr"
[ngModelOptions]="{ standalone: true }"
name="systemUserAttr"
id="systemUserAttr"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="systemUserAttr">{{ 'mxk.apps.systemUserAttr' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid systemUserAttr!">
<nz-select [(ngModel)]="form.model.systemUserAttr" [ngModelOptions]="{ standalone: true }"
name="systemUserAttr" id="systemUserAttr">
<nz-option nzValue="username" nzLabel="{{ 'mxk.users.username' | i18n }}"></nz-option>
<nz-option nzValue="employeeNumber" nzLabel="{{ 'mxk.users.employeeNumber' | i18n }}"></nz-option>
<nz-option nzValue="email" nzLabel="{{ 'mxk.users.email' | i18n }}"></nz-option>
@@ -268,29 +242,21 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="sharedUsername">{{
'mxk.apps.credential.sharedUsername' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sharedUsername!">
<input
[(ngModel)]="form.model.sharedUsername"
[ngModelOptions]="{ standalone: true }"
nz-input
name="sharedUsername"
id="sharedUsername"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sharedUsername!">
<input [(ngModel)]="form.model.sharedUsername" [ngModelOptions]="{ standalone: true }" nz-input
name="sharedUsername" id="sharedUsername" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="sharedPassword">{{
'mxk.apps.credential.sharedPassword' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sharedPassword!">
<input
[(ngModel)]="form.model.sharedPassword"
[ngModelOptions]="{ standalone: true }"
nz-input
name="sharedPassword"
id="sharedPassword"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sharedPassword!">
<input [(ngModel)]="form.model.sharedPassword" [ngModelOptions]="{ standalone: true }" nz-input
name="sharedPassword" id="sharedPassword" />
</nz-form-control>
</nz-form-item>
</div>
@@ -299,14 +265,18 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input name="logoutUrl" id="logoutUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="logoutUrl" id="logoutUrl" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType" id="logoutType">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType"
id="logoutType">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
@@ -318,8 +288,10 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible" id="visible">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible"
id="visible">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
@@ -329,30 +301,38 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input name="sortIndex" id="sortIndex" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input
name="sortIndex" id="sortIndex" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor" id="vendor" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor"
id="vendor" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input name="vendorUrl" id="vendorUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="vendorUrl" id="vendorUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter" id="isAdapter">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter"
id="isAdapter">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
</nz-select>
@@ -360,49 +340,31 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid adapterName!">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid adapterName!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
<input
[(ngModel)]="form.model.adapterName"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterName"
id="adapterName"
/>
<input [(ngModel)]="form.model.adapterName" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterName" id="adapterName" />
</nz-input-group>
<ng-template #suffixAdapterButton>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' |
i18n }}</button>
</ng-template>
<input
type="hidden"
[(ngModel)]="form.model.adapterId"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterId"
id="adapterId"
/>
<input
type="hidden"
[(ngModel)]="form.model.adapter"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapter"
id="adapter"
/>
<input type="hidden" [(ngModel)]="form.model.adapterId" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterId" id="adapterId" />
<input type="hidden" [(ngModel)]="form.model.adapter" [ngModelOptions]="{ standalone: true }" nz-input
name="adapter" id="adapter" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid description!">
<input
[(ngModel)]="form.model.description"
[ngModelOptions]="{ standalone: true }"
nz-input
name="description"
id="description"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid description!">
<input [(ngModel)]="form.model.description" [ngModelOptions]="{ standalone: true }" nz-input
name="description" id="description" />
</nz-form-control>
</nz-form-item>
</div>
@@ -414,4 +376,4 @@
<div *nzModalFooter>
<button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
<button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
</div>
</div>
@@ -90,7 +90,7 @@ export class AppFormBasedDetailsEditerComponent implements OnInit {
this.fileList = [
{
uid: this.form.model.id.toString(),
name: this.form.model.name.toString(),
name: this.form.model.appName.toString(),
status: 'done',
url: this.previewImage
}
@@ -8,24 +8,22 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzMd]="8" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="16" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id" id="id" />
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id"
id="id" />
</nz-form-control>
</nz-form-item>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid secret!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid secret!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixPasswordButton">
<input
[(ngModel)]="form.model.secret"
readonly
[ngModelOptions]="{ standalone: true }"
nz-input
name="secret"
id="secret"
/>
<input [(ngModel)]="form.model.secret" readonly [ngModelOptions]="{ standalone: true }" nz-input
name="secret" id="secret" />
</nz-input-group>
<ng-template #suffixPasswordButton>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate'
| i18n }}</button>
</ng-template>
</nz-form-control>
</nz-form-item>
@@ -34,57 +32,43 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
<div nz-col class="clearfix" nzSm="16" nzXs="24">
<nz-upload
nzAction="file/upload/"
nzListType="picture-card"
[(nzFileList)]="fileList"
nzName="uploadFile"
[nzShowButton]="fileList.length < 1"
[nzPreview]="handlePreview"
(nzChange)="uploadImageChange($event)"
>
<nz-upload nzAction="file/upload/" nzListType="picture-card" [(nzFileList)]="fileList" nzName="uploadFile"
[nzShowButton]="fileList.length < 1" [nzPreview]="handlePreview" (nzChange)="uploadImageChange($event)">
<div>
<i nz-icon nzType="plus"></i>
<div style="margin-top: 8px">Upload</div>
</div>
</nz-upload>
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null"
(nzOnCancel)="previewVisible = false">
<ng-template #modalContent>
<img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
</ng-template>
</nz-modal>
</div>
<nz-form-control
style="display: none"
[nzSm]="16"
[nzMd]="16"
[nzXs]="36"
[nzXl]="48"
nzErrorTip="The input is not valid icon!"
>
<input
[(ngModel)]="form.model.iconId"
disabled="true"
[ngModelOptions]="{ standalone: true }"
nz-input
name="icon"
id="icon"
/>
<nz-form-control style="display: none" [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid icon!">
<input [(ngModel)]="form.model.iconId" disabled="true" [ngModelOptions]="{ standalone: true }" nz-input
name="icon" id="icon" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
id="appName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
<label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
</nz-radio-group>
@@ -93,15 +77,20 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol" id="protocol" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol"
id="protocol" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category" id="category">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category"
id="category">
<nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
<nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
<nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
@@ -136,9 +125,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl" id="loginUrl" />
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl"
id="loginUrl" />
</nz-form-control>
</nz-form-item>
</div>
@@ -146,23 +138,23 @@
<nz-tab nzTitle="{{ 'mxk.apps.jwt.tab' | i18n }}">
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="redirectUri">{{ 'mxk.apps.jwt.redirectUri' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid redirectUri!">
<input
[(ngModel)]="form.model.redirectUri"
[ngModelOptions]="{ standalone: true }"
nz-input
name="redirectUri"
id="redirectUri"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="redirectUri">{{ 'mxk.apps.jwt.redirectUri' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid redirectUri!">
<input [(ngModel)]="form.model.redirectUri" [ngModelOptions]="{ standalone: true }" nz-input
name="redirectUri" id="redirectUri" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="subject">{{ 'mxk.apps.jwt.subject' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid subject!">
<nz-select [(ngModel)]="form.model.subject" [ngModelOptions]="{ standalone: true }" name="subject" id="subject">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="subject">{{ 'mxk.apps.jwt.subject' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid subject!">
<nz-select [(ngModel)]="form.model.subject" [ngModelOptions]="{ standalone: true }" name="subject"
id="subject">
<nz-option nzValue="username" nzLabel="{{ 'mxk.users.username' | i18n }}"></nz-option>
<nz-option nzValue="employeeNumber" nzLabel="{{ 'mxk.users.employeeNumber' | i18n }}"></nz-option>
<nz-option nzValue="email" nzLabel="{{ 'mxk.users.email' | i18n }}"></nz-option>
@@ -173,9 +165,12 @@
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="tokenType">{{ 'mxk.apps.jwt.tokenType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid tokenType!">
<nz-select [(ngModel)]="form.model.tokenType" [ngModelOptions]="{ standalone: true }" name="tokenType" id="tokenType">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="tokenType">{{ 'mxk.apps.jwt.tokenType' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid tokenType!">
<nz-select [(ngModel)]="form.model.tokenType" [ngModelOptions]="{ standalone: true }" name="tokenType"
id="tokenType">
<nz-option nzValue="POST" nzLabel="POST"></nz-option>
<nz-option nzValue="LTPA" nzLabel="LTPA"></nz-option>
</nz-select>
@@ -184,16 +179,22 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="jwtName">{{ 'mxk.apps.jwt.jwtName' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid jwtName!">
<input [(ngModel)]="form.model.jwtName" [ngModelOptions]="{ standalone: true }" nz-input name="jwtName" id="jwtName" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="jwtName">{{ 'mxk.apps.jwt.jwtName' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid jwtName!">
<input [(ngModel)]="form.model.jwtName" [ngModelOptions]="{ standalone: true }" nz-input name="jwtName"
id="jwtName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="expires">{{ 'mxk.apps.jwt.expires' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid expires!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="expires">{{ 'mxk.apps.jwt.expires' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid expires!">
<nz-input-group nzAddOnAfter="{{ 'mxk.text.second' | i18n }}">
<input [(ngModel)]="form.model.expires" [ngModelOptions]="{ standalone: true }" nz-input name="expires" id="expires" />
<input [(ngModel)]="form.model.expires" [ngModelOptions]="{ standalone: true }" nz-input name="expires"
id="expires" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
@@ -201,28 +202,29 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="issuer">{{ 'mxk.apps.jwt.issuer' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid issuer!">
<input [(ngModel)]="form.model.issuer" [ngModelOptions]="{ standalone: true }" nz-input name="issuer" id="issuer" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid issuer!">
<input [(ngModel)]="form.model.issuer" [ngModelOptions]="{ standalone: true }" nz-input name="issuer"
id="issuer" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="audience">{{ 'mxk.apps.jwt.audience' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid audience!">
<input [(ngModel)]="form.model.audience" [ngModelOptions]="{ standalone: true }" nz-input name="audience" id="audience" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid audience!">
<input [(ngModel)]="form.model.audience" [ngModelOptions]="{ standalone: true }" nz-input name="audience"
id="audience" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="signature">{{ 'mxk.apps.jwt.signature' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid signature!">
<nz-select
(ngModelChange)="onSelectSignature($event)"
[(ngModel)]="form.model.signature"
[ngModelOptions]="{ standalone: true }"
name="signature"
id="signature"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="signature">{{ 'mxk.apps.jwt.signature' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid signature!">
<nz-select (ngModelChange)="onSelectSignature($event)" [(ngModel)]="form.model.signature"
[ngModelOptions]="{ standalone: true }" name="signature" id="signature">
<nz-option nzValue="NONE" nzLabel="NONE"></nz-option>
<nz-option nzValue="RS256" nzLabel="RS256"></nz-option>
<nz-option nzValue="RS384" nzLabel="RS384"></nz-option>
@@ -239,29 +241,22 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="signatureKey">{{
'mxk.apps.oauth.connect.signatureKey' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid signatureKey!">
<textarea
[(ngModel)]="form.model.signatureKey"
[ngModelOptions]="{ standalone: true }"
nz-input
name="signatureKey"
id="signatureKey"
></textarea>
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid signatureKey!">
<textarea [(ngModel)]="form.model.signatureKey" [ngModelOptions]="{ standalone: true }" nz-input
name="signatureKey" id="signatureKey"></textarea>
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="algorithm">{{ 'mxk.apps.oauth.connect.algorithm' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid algorithm!">
<nz-select
(ngModelChange)="onSelectAlgorithm($event)"
[(ngModel)]="form.model.algorithm"
[ngModelOptions]="{ standalone: true }"
name="algorithm"
id="algorithm"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="algorithm">{{ 'mxk.apps.oauth.connect.algorithm' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid algorithm!">
<nz-select (ngModelChange)="onSelectAlgorithm($event)" [(ngModel)]="form.model.algorithm"
[ngModelOptions]="{ standalone: true }" name="algorithm" id="algorithm">
<nz-option nzValue="NONE" nzLabel="NONE"></nz-option>
<nz-option nzValue="RSA1_5" nzLabel="RSA1_5"></nz-option>
<nz-option nzValue="RSA_OAEP" nzLabel="RSA_OAEP"></nz-option>
@@ -278,14 +273,11 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="encryptionMethod">{{
'mxk.apps.oauth.connect.encryptionMethod' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid encryptionMethod!">
<nz-select
[(ngModel)]="form.model.encryptionMethod"
[ngModelOptions]="{ standalone: true }"
name="encryptionMethod"
id="encryptionMethod"
>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid encryptionMethod!">
<nz-select [(ngModel)]="form.model.encryptionMethod" [ngModelOptions]="{ standalone: true }"
name="encryptionMethod" id="encryptionMethod">
<nz-option nzValue="A128GCM" nzLabel="A128GCM"></nz-option>
<nz-option nzValue="A192GCM" nzLabel="A192GCM"></nz-option>
<nz-option nzValue="A256GCM" nzLabel="A256GCM"></nz-option>
@@ -299,15 +291,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="algorithmKey">{{ 'mxk.apps.oauth.connect.algorithmKey' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid algorithmKey!">
<textarea
[(ngModel)]="form.model.algorithmKey"
[ngModelOptions]="{ standalone: true }"
nz-input
name="algorithmKey"
id="algorithmKey"
></textarea>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="algorithmKey">{{ 'mxk.apps.oauth.connect.algorithmKey' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid algorithmKey!">
<textarea [(ngModel)]="form.model.algorithmKey" [ngModelOptions]="{ standalone: true }" nz-input
name="algorithmKey" id="algorithmKey"></textarea>
</nz-form-control>
</nz-form-item>
</div>
@@ -316,14 +305,18 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input name="logoutUrl" id="logoutUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="logoutUrl" id="logoutUrl" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType" id="logoutType">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType"
id="logoutType">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
@@ -335,8 +328,10 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible" id="visible">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible"
id="visible">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
@@ -346,30 +341,38 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input name="sortIndex" id="sortIndex" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input
name="sortIndex" id="sortIndex" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor" id="vendor" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor"
id="vendor" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input name="vendorUrl" id="vendorUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="vendorUrl" id="vendorUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter" id="isAdapter">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter"
id="isAdapter">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
</nz-select>
@@ -377,49 +380,31 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid adapterName!">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid adapterName!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
<input
[(ngModel)]="form.model.adapterName"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterName"
id="adapterName"
/>
<input [(ngModel)]="form.model.adapterName" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterName" id="adapterName" />
</nz-input-group>
<ng-template #suffixAdapterButton>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' |
i18n }}</button>
</ng-template>
<input
type="hidden"
[(ngModel)]="form.model.adapterId"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterId"
id="adapterId"
/>
<input
type="hidden"
[(ngModel)]="form.model.adapter"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapter"
id="adapter"
/>
<input type="hidden" [(ngModel)]="form.model.adapterId" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterId" id="adapterId" />
<input type="hidden" [(ngModel)]="form.model.adapter" [ngModelOptions]="{ standalone: true }" nz-input
name="adapter" id="adapter" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid description!">
<input
[(ngModel)]="form.model.description"
[ngModelOptions]="{ standalone: true }"
nz-input
name="description"
id="description"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid description!">
<input [(ngModel)]="form.model.description" [ngModelOptions]="{ standalone: true }" nz-input
name="description" id="description" />
</nz-form-control>
</nz-form-item>
</div>
@@ -431,4 +416,4 @@
<div *nzModalFooter>
<button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
<button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
</div>
</div>
@@ -91,7 +91,7 @@ export class AppJwtDetailsEditerComponent implements OnInit {
this.fileList = [
{
uid: this.form.model.id.toString(),
name: this.form.model.name.toString(),
name: this.form.model.appName.toString(),
status: 'done',
url: this.previewImage
}
@@ -8,24 +8,22 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzMd]="8" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="16" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id" id="id" />
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id"
id="id" />
</nz-form-control>
</nz-form-item>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid secret!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid secret!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixPasswordButton">
<input
[(ngModel)]="form.model.secret"
readonly
[ngModelOptions]="{ standalone: true }"
nz-input
name="secret"
id="secret"
/>
<input [(ngModel)]="form.model.secret" readonly [ngModelOptions]="{ standalone: true }" nz-input
name="secret" id="secret" />
</nz-input-group>
<ng-template #suffixPasswordButton>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate'
| i18n }}</button>
</ng-template>
</nz-form-control>
</nz-form-item>
@@ -34,57 +32,43 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
<div nz-col class="clearfix" nzSm="16" nzXs="24">
<nz-upload
nzAction="file/upload/"
nzListType="picture-card"
[(nzFileList)]="fileList"
nzName="uploadFile"
[nzShowButton]="fileList.length < 1"
[nzPreview]="handlePreview"
(nzChange)="uploadImageChange($event)"
>
<nz-upload nzAction="file/upload/" nzListType="picture-card" [(nzFileList)]="fileList" nzName="uploadFile"
[nzShowButton]="fileList.length < 1" [nzPreview]="handlePreview" (nzChange)="uploadImageChange($event)">
<div>
<i nz-icon nzType="plus"></i>
<div style="margin-top: 8px">Upload</div>
</div>
</nz-upload>
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null"
(nzOnCancel)="previewVisible = false">
<ng-template #modalContent>
<img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
</ng-template>
</nz-modal>
</div>
<nz-form-control
style="display: none"
[nzSm]="16"
[nzMd]="16"
[nzXs]="36"
[nzXl]="48"
nzErrorTip="The input is not valid icon!"
>
<input
[(ngModel)]="form.model.iconId"
disabled="true"
[ngModelOptions]="{ standalone: true }"
nz-input
name="icon"
id="icon"
/>
<nz-form-control style="display: none" [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid icon!">
<input [(ngModel)]="form.model.iconId" disabled="true" [ngModelOptions]="{ standalone: true }" nz-input
name="icon" id="icon" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
id="appName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
<label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
</nz-radio-group>
@@ -93,8 +77,10 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid protocol!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid protocol!">
<nz-select [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" name="protocol">
<nz-option nzValue="OAuth_v2.0" nzLabel="OAuth v2.0"></nz-option>
<nz-option nzValue="OAuth_v2.1" nzLabel="OAuth v2.1"></nz-option>
@@ -104,8 +90,10 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category" id="category">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category"
id="category">
<nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
<nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
<nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
@@ -140,9 +128,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl" id="loginUrl" />
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl"
id="loginUrl" />
</nz-form-control>
</nz-form-item>
</div>
@@ -152,29 +143,22 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="registeredRedirectUris">{{
'mxk.apps.oauth.registeredRedirectUris' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid registeredRedirectUris!">
<textarea
[(ngModel)]="form.model.registeredRedirectUris"
[ngModelOptions]="{ standalone: true }"
nz-input
name="registeredRedirectUris"
id="registeredRedirectUris"
></textarea>
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid registeredRedirectUris!">
<textarea [(ngModel)]="form.model.registeredRedirectUris" [ngModelOptions]="{ standalone: true }" nz-input
name="registeredRedirectUris" id="registeredRedirectUris"></textarea>
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="GrantTypes">{{ 'mxk.apps.oauth.GrantTypes' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid authorizedGrantTypes!">
<nz-select
[(ngModel)]="form.model.select_authorizedGrantTypes"
nzMode="multiple"
nzPlaceHolder="Please select"
[ngModelOptions]="{ standalone: true }"
name="authorizedGrantTypes"
>
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="GrantTypes">{{ 'mxk.apps.oauth.GrantTypes' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid authorizedGrantTypes!">
<nz-select [(ngModel)]="form.model.select_authorizedGrantTypes" nzMode="multiple"
nzPlaceHolder="Please select" [ngModelOptions]="{ standalone: true }" name="authorizedGrantTypes">
<nz-option nzValue="authorization_code" nzLabel="authorization_code"></nz-option>
<nz-option nzValue="password" nzLabel="password"></nz-option>
<nz-option nzValue="client_credentials" nzLabel="client_credentials"></nz-option>
@@ -188,9 +172,12 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="subject">{{ 'mxk.apps.oauth.subject' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid subject!">
<nz-select [(ngModel)]="form.model.subject" [ngModelOptions]="{ standalone: true }" name="subject" id="subject">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="subject">{{ 'mxk.apps.oauth.subject' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid subject!">
<nz-select [(ngModel)]="form.model.subject" [ngModelOptions]="{ standalone: true }" name="subject"
id="subject">
<nz-option nzValue="username" nzLabel="{{ 'mxk.users.username' | i18n }}"></nz-option>
<nz-option nzValue="employeeNumber" nzLabel="{{ 'mxk.users.employeeNumber' | i18n }}"></nz-option>
<nz-option nzValue="email" nzLabel="{{ 'mxk.users.email' | i18n }}"></nz-option>
@@ -201,14 +188,11 @@
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="scope">{{ 'mxk.apps.oauth.scope' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="scope">{{ 'mxk.apps.oauth.scope' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid scope!">
<nz-select
[(ngModel)]="form.model.select_scope"
[ngModelOptions]="{ standalone: true }"
nzMode="multiple"
nzPlaceHolder="Please select"
>
<nz-select [(ngModel)]="form.model.select_scope" [ngModelOptions]="{ standalone: true }" nzMode="multiple"
nzPlaceHolder="Please select">
<nz-option nzValue="read" nzLabel="read"></nz-option>
<nz-option nzValue="write" nzLabel="write"></nz-option>
<nz-option nzValue="trust" nzLabel="trust"></nz-option>
@@ -226,10 +210,12 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="approvalPrompt">{{
'mxk.apps.oauth.approvalPrompt' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid approvalPrompt!">
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid approvalPrompt!">
<nz-input-group>
<nz-radio-group [(ngModel)]="form.model.approvalPrompt" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-radio-group [(ngModel)]="form.model.approvalPrompt" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="force">{{ 'mxk.apps.oauth.approvalPrompt.force' | i18n }}</label>
<label nz-radio-button nzValue="auto">{{ 'mxk.apps.oauth.approvalPrompt.auto' | i18n }}</label>
</nz-radio-group>
@@ -240,7 +226,8 @@
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="pkce">PKCE</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid PKCE!">
<nz-input-group>
<nz-radio-group [(ngModel)]="form.model.pkce" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-radio-group [(ngModel)]="form.model.pkce" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
<label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
</nz-radio-group>
@@ -252,38 +239,24 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="accessTokenValiditySeconds">{{
'mxk.apps.oauth.accessTokenValiditySeconds' | i18n
}}</nz-form-label>
<nz-form-control
[nzSm]="16"
[nzMd]="16"
[nzXs]="36"
[nzXl]="48"
nzErrorTip="The input is not valid accessTokenValiditySeconds!"
>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid accessTokenValiditySeconds!">
<nz-input-group nzAddOnAfter="{{ 'mxk.text.second' | i18n }}">
<input
[(ngModel)]="form.model.accessTokenValiditySeconds"
[ngModelOptions]="{ standalone: true }"
nz-input
name="accessTokenValiditySeconds"
id="accessTokenValiditySeconds"
/>
<input [(ngModel)]="form.model.accessTokenValiditySeconds" [ngModelOptions]="{ standalone: true }"
nz-input name="accessTokenValiditySeconds" id="accessTokenValiditySeconds" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="refreshTokenValiditySeconds">{{
'mxk.apps.oauth.refreshTokenValiditySeconds' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid expires!">
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid expires!">
<nz-input-group nzAddOnAfter="{{ 'mxk.text.second' | i18n }}">
<input
[(ngModel)]="form.model.refreshTokenValiditySeconds"
[ngModelOptions]="{ standalone: true }"
nz-input
name="refreshTokenValiditySeconds"
id="refreshTokenValiditySeconds"
/>
<input [(ngModel)]="form.model.refreshTokenValiditySeconds" [ngModelOptions]="{ standalone: true }"
nz-input name="refreshTokenValiditySeconds" id="refreshTokenValiditySeconds" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
@@ -292,30 +265,33 @@
<nz-tab nzTitle="{{ 'mxk.apps.oauth.connect.tab' | i18n }}">
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="issuer">{{ 'mxk.apps.oauth.connect.issuer' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid issuer!">
<input [(ngModel)]="form.model.issuer" [ngModelOptions]="{ standalone: true }" nz-input name="issuer" id="issuer" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="issuer">{{ 'mxk.apps.oauth.connect.issuer' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid issuer!">
<input [(ngModel)]="form.model.issuer" [ngModelOptions]="{ standalone: true }" nz-input name="issuer"
id="issuer" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="audience">{{ 'mxk.apps.oauth.connect.audience' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid audience!">
<input [(ngModel)]="form.model.audience" [ngModelOptions]="{ standalone: true }" nz-input name="audience" id="audience" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="audience">{{ 'mxk.apps.oauth.connect.audience' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid audience!">
<input [(ngModel)]="form.model.audience" [ngModelOptions]="{ standalone: true }" nz-input name="audience"
id="audience" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="signature">{{ 'mxk.apps.oauth.connect.signature' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid signature!">
<nz-select
(ngModelChange)="onSelectSignature($event)"
[(ngModel)]="form.model.signature"
[ngModelOptions]="{ standalone: true }"
name="signature"
id="signature"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="signature">{{ 'mxk.apps.oauth.connect.signature' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid signature!">
<nz-select (ngModelChange)="onSelectSignature($event)" [(ngModel)]="form.model.signature"
[ngModelOptions]="{ standalone: true }" name="signature" id="signature">
<nz-option nzValue="NONE" nzLabel="NONE"></nz-option>
<nz-option nzValue="RS256" nzLabel="RS256"></nz-option>
<nz-option nzValue="RS384" nzLabel="RS384"></nz-option>
@@ -329,14 +305,11 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="userInfoResponse">{{
'mxk.apps.oauth.connect.userInfoResponse' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid userInfoResponse!">
<nz-select
[(ngModel)]="form.model.userInfoResponse"
[ngModelOptions]="{ standalone: true }"
name="userInfoResponse"
id="userInfoResponse"
>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid userInfoResponse!">
<nz-select [(ngModel)]="form.model.userInfoResponse" [ngModelOptions]="{ standalone: true }"
name="userInfoResponse" id="userInfoResponse">
<nz-option nzValue="NORMAL" nzLabel="NORMAL"></nz-option>
<nz-option nzValue="SIGNING" nzLabel="SIGNING"></nz-option>
<nz-option nzValue="ENCRYPTION" nzLabel="ENCRYPTION"></nz-option>
@@ -347,29 +320,23 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="signatureKey">{{ 'mxk.apps.oauth.connect.signatureKey' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid signatureKey!">
<textarea
[(ngModel)]="form.model.signatureKey"
[ngModelOptions]="{ standalone: true }"
nz-input
name="signatureKey"
id="signatureKey"
></textarea>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="signatureKey">{{ 'mxk.apps.oauth.connect.signatureKey' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid signatureKey!">
<textarea [(ngModel)]="form.model.signatureKey" [ngModelOptions]="{ standalone: true }" nz-input
name="signatureKey" id="signatureKey"></textarea>
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="algorithm">{{ 'mxk.apps.oauth.connect.algorithm' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid algorithm!">
<nz-select
(ngModelChange)="onSelectAlgorithm($event)"
[(ngModel)]="form.model.algorithm"
[ngModelOptions]="{ standalone: true }"
name="algorithm"
id="algorithm"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="algorithm">{{ 'mxk.apps.oauth.connect.algorithm' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid algorithm!">
<nz-select (ngModelChange)="onSelectAlgorithm($event)" [(ngModel)]="form.model.algorithm"
[ngModelOptions]="{ standalone: true }" name="algorithm" id="algorithm">
<nz-option nzValue="NONE" nzLabel="NONE"></nz-option>
<nz-option nzValue="RSA1_5" nzLabel="RSA1_5"></nz-option>
<nz-option nzValue="RSA_OAEP" nzLabel="RSA_OAEP"></nz-option>
@@ -386,14 +353,11 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="encryptionMethod">{{
'mxk.apps.oauth.connect.encryptionMethod' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid encryptionMethod!">
<nz-select
[(ngModel)]="form.model.encryptionMethod"
[ngModelOptions]="{ standalone: true }"
name="encryptionMethod"
id="encryptionMethod"
>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid encryptionMethod!">
<nz-select [(ngModel)]="form.model.encryptionMethod" [ngModelOptions]="{ standalone: true }"
name="encryptionMethod" id="encryptionMethod">
<nz-option nzValue="A128GCM" nzLabel="A128GCM"></nz-option>
<nz-option nzValue="A192GCM" nzLabel="A192GCM"></nz-option>
<nz-option nzValue="A256GCM" nzLabel="A256GCM"></nz-option>
@@ -407,15 +371,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="algorithmKey">{{ 'mxk.apps.oauth.connect.algorithmKey' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid algorithmKey!">
<textarea
[(ngModel)]="form.model.algorithmKey"
[ngModelOptions]="{ standalone: true }"
nz-input
name="algorithmKey"
id="algorithmKey"
></textarea>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="algorithmKey">{{ 'mxk.apps.oauth.connect.algorithmKey' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid algorithmKey!">
<textarea [(ngModel)]="form.model.algorithmKey" [ngModelOptions]="{ standalone: true }" nz-input
name="algorithmKey" id="algorithmKey"></textarea>
</nz-form-control>
</nz-form-item>
</div>
@@ -424,14 +385,18 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input name="logoutUrl" id="logoutUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="logoutUrl" id="logoutUrl" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType" id="logoutType">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType"
id="logoutType">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
@@ -443,8 +408,10 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible" id="visible">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible"
id="visible">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
@@ -454,30 +421,38 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input name="sortIndex" id="sortIndex" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input
name="sortIndex" id="sortIndex" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor" id="vendor" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor"
id="vendor" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input name="vendorUrl" id="vendorUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="vendorUrl" id="vendorUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter" id="isAdapter">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter"
id="isAdapter">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
</nz-select>
@@ -485,49 +460,31 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid adapterName!">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid adapterName!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
<input
[(ngModel)]="form.model.adapterName"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterName"
id="adapterName"
/>
<input [(ngModel)]="form.model.adapterName" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterName" id="adapterName" />
</nz-input-group>
<ng-template #suffixAdapterButton>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' |
i18n }}</button>
</ng-template>
<input
type="hidden"
[(ngModel)]="form.model.adapterId"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterId"
id="adapterId"
/>
<input
type="hidden"
[(ngModel)]="form.model.adapter"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapter"
id="adapter"
/>
<input type="hidden" [(ngModel)]="form.model.adapterId" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterId" id="adapterId" />
<input type="hidden" [(ngModel)]="form.model.adapter" [ngModelOptions]="{ standalone: true }" nz-input
name="adapter" id="adapter" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid description!">
<input
[(ngModel)]="form.model.description"
[ngModelOptions]="{ standalone: true }"
nz-input
name="description"
id="description"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid description!">
<input [(ngModel)]="form.model.description" [ngModelOptions]="{ standalone: true }" nz-input
name="description" id="description" />
</nz-form-control>
</nz-form-item>
</div>
@@ -539,4 +496,4 @@
<div *nzModalFooter>
<button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
<button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
</div>
</div>
@@ -90,7 +90,7 @@ export class AppOauth20DetailsEditerComponent implements OnInit {
this.fileList = [
{
uid: this.form.model.id.toString(),
name: this.form.model.name.toString(),
name: this.form.model.appName.toString(),
status: 'done',
url: this.previewImage
}
@@ -8,20 +8,17 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzMd]="8" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="16" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id" id="id" />
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id"
id="id" />
</nz-form-control>
</nz-form-item>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid secret!">
<input
[(ngModel)]="form.model.secret"
readonly
[ngModelOptions]="{ standalone: true }"
nz-input
name="secret"
id="secret"
/>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid secret!">
<input [(ngModel)]="form.model.secret" readonly [ngModelOptions]="{ standalone: true }" nz-input
name="secret" id="secret" />
</nz-form-control>
</nz-form-item>
</nz-form-item>
@@ -29,57 +26,43 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
<div nz-col class="clearfix" nzSm="16" nzXs="24">
<nz-upload
nzAction="file/upload/"
nzListType="picture-card"
[(nzFileList)]="fileList"
nzName="uploadFile"
[nzShowButton]="fileList.length < 1"
[nzPreview]="handlePreview"
(nzChange)="uploadImageChange($event)"
>
<nz-upload nzAction="file/upload/" nzListType="picture-card" [(nzFileList)]="fileList" nzName="uploadFile"
[nzShowButton]="fileList.length < 1" [nzPreview]="handlePreview" (nzChange)="uploadImageChange($event)">
<div>
<i nz-icon nzType="plus"></i>
<div style="margin-top: 8px">Upload</div>
</div>
</nz-upload>
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null"
(nzOnCancel)="previewVisible = false">
<ng-template #modalContent>
<img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
</ng-template>
</nz-modal>
</div>
<nz-form-control
style="display: none"
[nzSm]="16"
[nzMd]="16"
[nzXs]="36"
[nzXl]="48"
nzErrorTip="The input is not valid icon!"
>
<input
[(ngModel)]="form.model.iconId"
disabled="true"
[ngModelOptions]="{ standalone: true }"
nz-input
name="icon"
id="icon"
/>
<nz-form-control style="display: none" [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid icon!">
<input [(ngModel)]="form.model.iconId" disabled="true" [ngModelOptions]="{ standalone: true }" nz-input
name="icon" id="icon" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
id="appName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
<label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
</nz-radio-group>
@@ -88,15 +71,20 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol" id="protocol" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol"
id="protocol" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category" id="category">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category"
id="category">
<nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
<nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
<nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
@@ -131,9 +119,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl" id="loginUrl" />
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl"
id="loginUrl" />
</nz-form-control>
</nz-form-item>
</div>
@@ -141,17 +132,23 @@
<nz-tab nzTitle="{{ 'mxk.apps.saml.tab' | i18n }}">
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="spAcsUrl">{{ 'mxk.apps.saml.spAcsUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid spAcsUrl!">
<input [(ngModel)]="form.model.spAcsUrl" [ngModelOptions]="{ standalone: true }" nz-input name="spAcsUrl" id="spAcsUrl" />
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="spAcsUrl">{{ 'mxk.apps.saml.spAcsUrl' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid spAcsUrl!">
<input [(ngModel)]="form.model.spAcsUrl" [ngModelOptions]="{ standalone: true }" nz-input name="spAcsUrl"
id="spAcsUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="binding">{{ 'mxk.apps.saml.binding' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid binding!">
<nz-select [(ngModel)]="form.model.binding" [ngModelOptions]="{ standalone: true }" nz-input name="binding" id="binding">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="binding">{{ 'mxk.apps.saml.binding' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid binding!">
<nz-select [(ngModel)]="form.model.binding" [ngModelOptions]="{ standalone: true }" nz-input
name="binding" id="binding">
<nz-option nzValue="Redirect-Post" nzLabel="Redirect-Post"></nz-option>
<nz-option nzValue="Post-Post" nzLabel="Post-Post"></nz-option>
<nz-option nzValue="IdpInit-Post" nzLabel="IdpInit-Post"></nz-option>
@@ -162,37 +159,43 @@
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="entityId">{{ 'mxk.apps.saml.entityId' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid entityId!">
<input [(ngModel)]="form.model.entityId" [ngModelOptions]="{ standalone: true }" nz-input name="entityId" id="entityId" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="entityId">{{ 'mxk.apps.saml.entityId' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid entityId!">
<input [(ngModel)]="form.model.entityId" [ngModelOptions]="{ standalone: true }" nz-input name="entityId"
id="entityId" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="audience">{{ 'mxk.apps.saml.audience' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid audience!">
<input [(ngModel)]="form.model.audience" [ngModelOptions]="{ standalone: true }" nz-input name="audience" id="audience" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="audience">{{ 'mxk.apps.saml.audience' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid audience!">
<input [(ngModel)]="form.model.audience" [ngModelOptions]="{ standalone: true }" nz-input name="audience"
id="audience" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="issuer">{{ 'mxk.apps.saml.issuer' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid issuer!">
<input [(ngModel)]="form.model.issuer" [ngModelOptions]="{ standalone: true }" nz-input name="issuer" id="issuer" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="issuer">{{ 'mxk.apps.saml.issuer' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid issuer!">
<input [(ngModel)]="form.model.issuer" [ngModelOptions]="{ standalone: true }" nz-input name="issuer"
id="issuer" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="signature">{{ 'mxk.apps.saml.signature' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid signature!">
<nz-select
[(ngModel)]="form.model.signature"
[ngModelOptions]="{ standalone: true }"
nz-input
name="signature"
id="signature"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="signature">{{ 'mxk.apps.saml.signature' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid signature!">
<nz-select [(ngModel)]="form.model.signature" [ngModelOptions]="{ standalone: true }" nz-input
name="signature" id="signature">
<nz-option nzValue="RSAwithSHA1" nzLabel="RSAwithSHA1"></nz-option>
<nz-option nzValue="RSAwithSHA256" nzLabel="RSAwithSHA256"></nz-option>
<nz-option nzValue="RSAwithSHA384" nzLabel="RSAwithSHA384"></nz-option>
@@ -214,15 +217,12 @@
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="digestMethod">{{ 'mxk.apps.saml.digestMethod' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid digestMethod!">
<nz-select
[(ngModel)]="form.model.digestMethod"
[ngModelOptions]="{ standalone: true }"
nz-input
name="digestMethod"
id="digestMethod"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="digestMethod">{{ 'mxk.apps.saml.digestMethod' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid digestMethod!">
<nz-select [(ngModel)]="form.model.digestMethod" [ngModelOptions]="{ standalone: true }" nz-input
name="digestMethod" id="digestMethod">
<nz-option nzValue="MD5" nzLabel="MD5"></nz-option>
<nz-option nzValue="SHA1" nzLabel="SHA1"></nz-option>
<nz-option nzValue="SHA256" nzLabel="SHA256"></nz-option>
@@ -235,15 +235,12 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="encrypted">{{ 'mxk.apps.saml.encrypted' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid encrypted!">
<nz-select
[(ngModel)]="form.model.encrypted"
[ngModelOptions]="{ standalone: true }"
nz-input
name="encrypted"
id="encrypted"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="encrypted">{{ 'mxk.apps.saml.encrypted' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid encrypted!">
<nz-select [(ngModel)]="form.model.encrypted" [ngModelOptions]="{ standalone: true }" nz-input
name="encrypted" id="encrypted">
<nz-option nzValue="no" nzLabel="{{ 'mxk.apps.saml.encrypted.no' | i18n }}"></nz-option>
<nz-option nzValue="yes" nzLabel="{{ 'mxk.apps.saml.encrypted.yes' | i18n }}"></nz-option>
</nz-select>
@@ -252,31 +249,24 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="validityInterval">{{
'mxk.apps.saml.validityInterval' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid validityInterval!">
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid validityInterval!">
<nz-input-group nzAddOnAfter="{{ 'mxk.text.second' | i18n }}">
<input
[(ngModel)]="form.model.validityInterval"
[ngModelOptions]="{ standalone: true }"
nz-input
name="validityInterval"
id="validityInterval"
/>
<input [(ngModel)]="form.model.validityInterval" [ngModelOptions]="{ standalone: true }" nz-input
name="validityInterval" id="validityInterval" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="nameidFormat">{{ 'mxk.apps.saml.nameidFormat' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid nameidFormat!">
<nz-select
[(ngModel)]="form.model.nameidFormat"
[ngModelOptions]="{ standalone: true }"
nz-input
name="nameidFormat"
id="nameidFormat"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="nameidFormat">{{ 'mxk.apps.saml.nameidFormat' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid nameidFormat!">
<nz-select [(ngModel)]="form.model.nameidFormat" [ngModelOptions]="{ standalone: true }" nz-input
name="nameidFormat" id="nameidFormat">
<nz-option nzValue="persistent" nzLabel="persistent"></nz-option>
<nz-option nzValue="transient" nzLabel="transient"></nz-option>
<nz-option nzValue="emailAddress" nzLabel="emailAddress"></nz-option>
@@ -290,18 +280,16 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="nameIdConvert">{{
'mxk.apps.saml.nameIdConvert' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid nameIdConvert!">
<nz-select
[(ngModel)]="form.model.nameIdConvert"
[ngModelOptions]="{ standalone: true }"
nz-input
name="nameIdConvert"
id="nameIdConvert"
>
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid nameIdConvert!">
<nz-select [(ngModel)]="form.model.nameIdConvert" [ngModelOptions]="{ standalone: true }" nz-input
name="nameIdConvert" id="nameIdConvert">
<nz-option nzValue="original" nzLabel="{{ 'mxk.apps.saml.nameIdConvert.original' | i18n }}"></nz-option>
<nz-option nzValue="uppercase" nzLabel="{{ 'mxk.apps.saml.nameIdConvert.upperCase' | i18n }}"></nz-option>
<nz-option nzValue="lowercase" nzLabel="{{ 'mxk.apps.saml.nameIdConvert.lowerCase' | i18n }}"></nz-option>
<nz-option nzValue="uppercase" nzLabel="{{ 'mxk.apps.saml.nameIdConvert.upperCase' | i18n }}">
</nz-option>
<nz-option nzValue="lowercase" nzLabel="{{ 'mxk.apps.saml.nameIdConvert.lowerCase' | i18n }}">
</nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
@@ -310,82 +298,68 @@
<nz-tab nzTitle="{{ 'mxk.apps.saml.tab.metadata' | i18n }}">
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="fileType">{{ 'mxk.apps.saml.fileType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid fileType!">
<nz-select [(ngModel)]="form.model.fileType" [ngModelOptions]="{ standalone: true }" nz-input name="fileType" id="fileType">
<nz-option nzValue="certificate" nzLabel="{{ 'mxk.apps.saml.fileType.certificate' | i18n }}"></nz-option>
<nz-option nzValue="metadata_file" nzLabel="{{ 'mxk.apps.saml.fileType.metadata.file' | i18n }}"></nz-option>
<nz-option nzValue="metadata_url" nzLabel="{{ 'mxk.apps.saml.fileType.metadata.url' | i18n }}"></nz-option>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="fileType">{{ 'mxk.apps.saml.fileType' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid fileType!">
<nz-select [(ngModel)]="form.model.fileType" [ngModelOptions]="{ standalone: true }" nz-input
name="fileType" id="fileType">
<nz-option nzValue="certificate" nzLabel="{{ 'mxk.apps.saml.fileType.certificate' | i18n }}">
</nz-option>
<nz-option nzValue="metadata_file" nzLabel="{{ 'mxk.apps.saml.fileType.metadata.file' | i18n }}">
</nz-option>
<nz-option nzValue="metadata_url" nzLabel="{{ 'mxk.apps.saml.fileType.metadata.url' | i18n }}">
</nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="metaFile">{{ 'mxk.apps.saml.metaFile' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid nameIdConvert!">
<nz-upload
style="{{ form.model.fileType == 'metadata_url' ? 'display: none;' : '' }}"
nzAction="file/upload/"
nzName="uploadFile"
(nzChange)="uploadMetaChange($event)"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="metaFile">{{ 'mxk.apps.saml.metaFile' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid nameIdConvert!">
<nz-upload style="{{ form.model.fileType == 'metadata_url' ? 'display: none;' : '' }}"
nzAction="file/upload/" nzName="uploadFile" (nzChange)="uploadMetaChange($event)">
<button nz-button>
<i nz-icon nzType="upload"></i>
{{ 'mxk.text.upload' | i18n }}
</button>
</nz-upload>
<input
style="{{ form.model.fileType == 'metadata_url' ? '' : 'display: none;' }}"
[(ngModel)]="form.model.metaUrl"
[ngModelOptions]="{ standalone: true }"
nz-input
name="metaUrl"
id="metaUrl"
/>
<input style="{{ form.model.fileType == 'metadata_url' ? '' : 'display: none;' }}"
[(ngModel)]="form.model.metaUrl" [ngModelOptions]="{ standalone: true }" nz-input name="metaUrl"
id="metaUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="certIssuer">{{ 'mxk.apps.saml.certIssuer' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid certIssuer!">
<input
[(ngModel)]="form.model.certIssuer"
[ngModelOptions]="{ standalone: true }"
nz-input
disabled="true"
name="certIssuer"
id="certIssuer"
/>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="certIssuer">{{ 'mxk.apps.saml.certIssuer' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid certIssuer!">
<input [(ngModel)]="form.model.certIssuer" [ngModelOptions]="{ standalone: true }" nz-input
disabled="true" name="certIssuer" id="certIssuer" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="certExpiration">{{
'mxk.apps.saml.certExpiration' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid issuer!">
<input
[(ngModel)]="form.model.certExpiration"
[ngModelOptions]="{ standalone: true }"
nz-input
disabled="true"
name="certExpiration"
id="certExpiration"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid issuer!">
<input [(ngModel)]="form.model.certExpiration" [ngModelOptions]="{ standalone: true }" nz-input
disabled="true" name="certExpiration" id="certExpiration" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="certSubject">{{ 'mxk.apps.saml.certSubject' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid certSubject!">
<input
[(ngModel)]="form.model.certSubject"
[ngModelOptions]="{ standalone: true }"
nz-input
disabled="true"
name="certSubject"
id="certSubject"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="certSubject">{{ 'mxk.apps.saml.certSubject' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid certSubject!">
<input [(ngModel)]="form.model.certSubject" [ngModelOptions]="{ standalone: true }" nz-input
disabled="true" name="certSubject" id="certSubject" />
</nz-form-control>
</nz-form-item>
</div>
@@ -395,14 +369,18 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input name="logoutUrl" id="logoutUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="logoutUrl" id="logoutUrl" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType" id="logoutType">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType"
id="logoutType">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
@@ -414,8 +392,10 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible" id="visible">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible"
id="visible">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
@@ -425,30 +405,38 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input name="sortIndex" id="sortIndex" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input
name="sortIndex" id="sortIndex" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor" id="vendor" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor"
id="vendor" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input name="vendorUrl" id="vendorUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="vendorUrl" id="vendorUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter" id="isAdapter">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter"
id="isAdapter">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
</nz-select>
@@ -456,49 +444,31 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid adapterName!">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid adapterName!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
<input
[(ngModel)]="form.model.adapterName"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterName"
id="adapterName"
/>
<input [(ngModel)]="form.model.adapterName" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterName" id="adapterName" />
</nz-input-group>
<ng-template #suffixAdapterButton>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' |
i18n }}</button>
</ng-template>
<input
type="hidden"
[(ngModel)]="form.model.adapterId"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterId"
id="adapterId"
/>
<input
type="hidden"
[(ngModel)]="form.model.adapter"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapter"
id="adapter"
/>
<input type="hidden" [(ngModel)]="form.model.adapterId" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterId" id="adapterId" />
<input type="hidden" [(ngModel)]="form.model.adapter" [ngModelOptions]="{ standalone: true }" nz-input
name="adapter" id="adapter" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid description!">
<input
[(ngModel)]="form.model.description"
[ngModelOptions]="{ standalone: true }"
nz-input
name="description"
id="description"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid description!">
<input [(ngModel)]="form.model.description" [ngModelOptions]="{ standalone: true }" nz-input
name="description" id="description" />
</nz-form-control>
</nz-form-item>
</div>
@@ -510,4 +480,4 @@
<div *nzModalFooter>
<button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
<button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
</div>
</div>
@@ -90,7 +90,7 @@ export class AppSaml20DetailsEditerComponent implements OnInit {
this.fileList = [
{
uid: this.form.model.id.toString(),
name: this.form.model.name.toString(),
name: this.form.model.appName.toString(),
status: 'done',
url: this.previewImage
}
@@ -8,24 +8,22 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzMd]="8" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
<nz-form-control [nzMd]="16" nzErrorTip="The input is not valid id!">
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id" id="id" />
<input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id"
id="id" />
</nz-form-control>
</nz-form-item>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid secret!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid secret!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixPasswordButton">
<input
[(ngModel)]="form.model.secret"
readonly
[ngModelOptions]="{ standalone: true }"
nz-input
name="secret"
id="secret"
/>
<input [(ngModel)]="form.model.secret" readonly [ngModelOptions]="{ standalone: true }" nz-input
name="secret" id="secret" />
</nz-input-group>
<ng-template #suffixPasswordButton>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate'
| i18n }}</button>
</ng-template>
</nz-form-control>
</nz-form-item>
@@ -34,57 +32,43 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
<div nz-col class="clearfix" nzSm="16" nzXs="24">
<nz-upload
nzAction="file/upload/"
nzListType="picture-card"
[(nzFileList)]="fileList"
nzName="uploadFile"
[nzShowButton]="fileList.length < 1"
[nzPreview]="handlePreview"
(nzChange)="uploadImageChange($event)"
>
<nz-upload nzAction="file/upload/" nzListType="picture-card" [(nzFileList)]="fileList" nzName="uploadFile"
[nzShowButton]="fileList.length < 1" [nzPreview]="handlePreview" (nzChange)="uploadImageChange($event)">
<div>
<i nz-icon nzType="plus"></i>
<div style="margin-top: 8px">Upload</div>
</div>
</nz-upload>
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
<nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null"
(nzOnCancel)="previewVisible = false">
<ng-template #modalContent>
<img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
</ng-template>
</nz-modal>
</div>
<nz-form-control
style="display: none"
[nzSm]="16"
[nzMd]="16"
[nzXs]="36"
[nzXl]="48"
nzErrorTip="The input is not valid icon!"
>
<input
[(ngModel)]="form.model.iconId"
disabled="true"
[ngModelOptions]="{ standalone: true }"
nz-input
name="icon"
id="icon"
/>
<nz-form-control style="display: none" [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid icon!">
<input [(ngModel)]="form.model.iconId" disabled="true" [ngModelOptions]="{ standalone: true }" nz-input
name="icon" id="icon" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
id="appName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid frequently!">
<nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }"
nzButtonStyle="solid">
<label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
<label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
</nz-radio-group>
@@ -93,15 +77,20 @@
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol" id="protocol" />
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid protocol!">
<input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol"
id="protocol" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category" id="category">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid category!">
<nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category"
id="category">
<nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
<nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
<nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
@@ -136,9 +125,12 @@
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl" id="loginUrl" />
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid loginUrl!">
<input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl"
id="loginUrl" />
</nz-form-control>
</nz-form-item>
</div>
@@ -146,23 +138,23 @@
<nz-tab nzTitle="{{ 'mxk.apps.tokenbased.tab' | i18n }}">
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="redirectUri">{{ 'mxk.apps.jwt.redirectUri' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid redirectUri!">
<input
[(ngModel)]="form.model.redirectUri"
[ngModelOptions]="{ standalone: true }"
nz-input
name="redirectUri"
id="redirectUri"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="redirectUri">{{ 'mxk.apps.jwt.redirectUri' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid redirectUri!">
<input [(ngModel)]="form.model.redirectUri" [ngModelOptions]="{ standalone: true }" nz-input
name="redirectUri" id="redirectUri" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="tokenType">{{ 'mxk.apps.tokenbased.tokenType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid tokenType!">
<nz-select [(ngModel)]="form.model.tokenType" [ngModelOptions]="{ standalone: true }" name="tokenType" id="tokenType">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="tokenType">{{ 'mxk.apps.tokenbased.tokenType' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid tokenType!">
<nz-select [(ngModel)]="form.model.tokenType" [ngModelOptions]="{ standalone: true }" name="tokenType"
id="tokenType">
<nz-option nzValue="POST" nzLabel="POST"></nz-option>
<nz-option nzValue="LTPA" nzLabel="LTPA"></nz-option>
</nz-select>
@@ -172,29 +164,22 @@
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="cookieName">{{
'mxk.apps.tokenbased.cookieName' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid cookieName!">
<input
[(ngModel)]="form.model.cookieName"
[ngModelOptions]="{ standalone: true }"
nz-input
name="cookieName"
id="cookieName"
/>
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid cookieName!">
<input [(ngModel)]="form.model.cookieName" [ngModelOptions]="{ standalone: true }" nz-input
name="cookieName" id="cookieName" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="algorithm">{{ 'mxk.apps.tokenbased.algorithm' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid algorithm!">
<nz-select
[(ngModel)]="form.model.algorithm"
(ngModelChange)="onSelectAlgorithm($event)"
[ngModelOptions]="{ standalone: true }"
name="algorithm"
id="algorithm"
>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="algorithm">{{ 'mxk.apps.tokenbased.algorithm' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid algorithm!">
<nz-select [(ngModel)]="form.model.algorithm" (ngModelChange)="onSelectAlgorithm($event)"
[ngModelOptions]="{ standalone: true }" name="algorithm" id="algorithm">
<nz-option nzValue="DES" nzLabel="DES"></nz-option>
<nz-option nzValue="DESede" nzLabel="DESede"></nz-option>
<nz-option nzValue="Blowfish" nzLabel="Blowfish"></nz-option>
@@ -204,10 +189,13 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="expires">{{ 'mxk.apps.tokenbased.expires' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid expires!">
<nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="expires">{{ 'mxk.apps.tokenbased.expires' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid expires!">
<nz-input-group nzAddOnAfter="{{ 'mxk.text.second' | i18n }}">
<input [(ngModel)]="form.model.expires" [ngModelOptions]="{ standalone: true }" nz-input name="expires" id="expires" />
<input [(ngModel)]="form.model.expires" [ngModelOptions]="{ standalone: true }" nz-input name="expires"
id="expires" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
@@ -216,15 +204,11 @@
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="userPropertys">{{
'mxk.apps.tokenbased.token.content' | i18n
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid userPropertys!">
<nz-select
[(ngModel)]="form.model.select_userPropertys"
nzMode="multiple"
nzPlaceHolder="Please select"
[ngModelOptions]="{ standalone: true }"
name="userPropertys"
>
}}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid userPropertys!">
<nz-select [(ngModel)]="form.model.select_userPropertys" nzMode="multiple" nzPlaceHolder="Please select"
[ngModelOptions]="{ standalone: true }" name="userPropertys">
<nz-option nzValue="userId" nzLabel="{{ 'mxk.users.id' | i18n }}"></nz-option>
<nz-option nzValue="username" nzLabel="{{ 'mxk.users.username' | i18n }}"></nz-option>
<nz-option nzValue="displayName" nzLabel="{{ 'mxk.users.displayName' | i18n }}"></nz-option>
@@ -248,14 +232,18 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input name="logoutUrl" id="logoutUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutUrl!">
<input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="logoutUrl" id="logoutUrl" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType" id="logoutType">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid logoutType!">
<nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType"
id="logoutType">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
@@ -267,8 +255,10 @@
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible" id="visible">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid visible!">
<nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible"
id="visible">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
<nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
@@ -278,30 +268,38 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input name="sortIndex" id="sortIndex" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid sortIndex!">
<input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input
name="sortIndex" id="sortIndex" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor" id="vendor" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendor!">
<input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor"
id="vendor" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input name="vendorUrl" id="vendorUrl" />
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid vendorUrl!">
<input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input
name="vendorUrl" id="vendorUrl" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter" id="isAdapter">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid isAdapter!">
<nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter"
id="isAdapter">
<nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
<nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
</nz-select>
@@ -309,49 +307,31 @@
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid adapterName!">
<nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid adapterName!">
<nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
<input
[(ngModel)]="form.model.adapterName"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterName"
id="adapterName"
/>
<input [(ngModel)]="form.model.adapterName" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterName" id="adapterName" />
</nz-input-group>
<ng-template #suffixAdapterButton>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' | i18n }}</button>
<button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' |
i18n }}</button>
</ng-template>
<input
type="hidden"
[(ngModel)]="form.model.adapterId"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapterId"
id="adapterId"
/>
<input
type="hidden"
[(ngModel)]="form.model.adapter"
[ngModelOptions]="{ standalone: true }"
nz-input
name="adapter"
id="adapter"
/>
<input type="hidden" [(ngModel)]="form.model.adapterId" [ngModelOptions]="{ standalone: true }" nz-input
name="adapterId" id="adapterId" />
<input type="hidden" [(ngModel)]="form.model.adapter" [ngModelOptions]="{ standalone: true }" nz-input
name="adapter" id="adapter" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-row>
<nz-form-item style="width: 100%">
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid description!">
<input
[(ngModel)]="form.model.description"
[ngModelOptions]="{ standalone: true }"
nz-input
name="description"
id="description"
/>
<nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
nzErrorTip="The input is not valid description!">
<input [(ngModel)]="form.model.description" [ngModelOptions]="{ standalone: true }" nz-input
name="description" id="description" />
</nz-form-control>
</nz-form-item>
</div>
@@ -363,4 +343,4 @@
<div *nzModalFooter>
<button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
<button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
</div>
</div>
@@ -91,7 +91,7 @@ export class AppTokenBasedDetailsEditerComponent implements OnInit {
this.fileList = [
{
uid: this.form.model.id.toString(),
name: this.form.model.name.toString(),
name: this.form.model.appName.toString(),
status: 'done',
url: this.previewImage
}
@@ -5,10 +5,10 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 24, lg: 24, xl: 48, xxl: 48 }">
<div nz-col nzMd="10" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="appName">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" name="appName"
placeholder="" id="appName" />
</nz-form-control>
</nz-form-item>
</div>
@@ -94,7 +94,7 @@
</td>
<td nzAlign="center"><img height="30" border="0px" src="{{ data.iconBase64 }}" /></td>
<td nzAlign="left"> {{ data.name }}</td>
<td nzAlign="left"> {{ data.appName }}</td>
<td nzAlign="left"> {{ data.protocol }}</td>
<td nzAlign="left">
<div *ngIf="data.category == 'none'">{{ 'mxk.apps.category.none' | i18n }}</div>
@@ -130,6 +130,10 @@
style="color: green"></i></td>
<td nzAlign="left" nzBreakWord="false">
<div nz-col>
<button nz-button type="button" (click)="onResourcesMgmt($event, data.id, data.appName)"
style="float: left">{{
'mxk.apps.resources' | i18n
}}</button>
<button nz-button type="button" (click)="onEdit($event, data.id, data.protocol)" style="float: left">{{
'mxk.text.edit' | i18n
}}</button>
@@ -16,6 +16,7 @@
import { ChangeDetectionStrategy, ViewContainerRef, ChangeDetectorRef, Component, OnInit, Inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { I18NService } from '@core';
import { _HttpClient, ALAIN_I18N_TOKEN, SettingsService } from '@delon/theme';
import { format, addDays } from 'date-fns';
@@ -43,7 +44,7 @@ import { AppTokenBasedDetailsEditerComponent } from './app-token-based-details-e
export class AppsComponent implements OnInit {
query: {
params: {
name: String;
appName: String;
displayName: String;
protocol: String;
startDate: String;
@@ -66,7 +67,7 @@ export class AppsComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
appName: '',
displayName: '',
protocol: '',
startDate: '',
@@ -96,6 +97,7 @@ export class AppsComponent implements OnInit {
private fb: FormBuilder,
private msg: NzMessageService,
@Inject(ALAIN_I18N_TOKEN) private i18n: I18NService,
private router: Router,
private cdr: ChangeDetectorRef
) { }
@@ -177,6 +179,11 @@ export class AppsComponent implements OnInit {
}
return ProtocolComponent;
}
onResourcesMgmt(e: MouseEvent, appId: String, appName: String): void {
this.router.navigateByUrl(`/permissions/resources?appId=${appId}&appName=${appName}`);
}
onAdd(e: MouseEvent, protocol: String): void {
e.preventDefault();
const modal = this.modalService.create({
@@ -4,10 +4,10 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
<div nz-col nzMd="14" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="appName">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
<nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" name="appName"
placeholder="" id="appName" />
</nz-form-control>
</nz-form-item>
</div>
@@ -46,7 +46,7 @@
</td>
<td nzAlign="left"><img height="30" border="0px" src="{{ data.iconBase64 }}" /></td>
<td nzAlign="left"> {{ data.name }}</td>
<td nzAlign="left"> {{ data.appName }}</td>
<td nzAlign="left">
<div *ngIf="data.category == 'none'">{{ 'mxk.apps.category.none' | i18n }}</div>
<div *ngIf="data.category == '1011'">{{ 'mxk.apps.category.1011' | i18n }}</div>
@@ -1,19 +1,18 @@
/*
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { ChangeDetectionStrategy, ViewContainerRef, ChangeDetectorRef, Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@@ -35,7 +34,7 @@ import { set2String } from '../../../shared/index';
export class SelectAppsComponent implements OnInit {
query: {
params: {
name: String;
appName: String;
displayName: String;
protocol: String;
startDate: String;
@@ -58,7 +57,7 @@ export class SelectAppsComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
appName: '',
displayName: '',
protocol: '',
startDate: '',
@@ -11,19 +11,19 @@
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="code">{{ 'mxk.organizations.code' | i18n }}
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="orgCode">{{ 'mxk.organizations.code' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="18" [nzMd]="18" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid code!">
<input [(ngModel)]="form.model.code" [ngModelOptions]="{ standalone: true }" nz-input name="code"
id="code" />
<input [(ngModel)]="form.model.orgCode" [ngModelOptions]="{ standalone: true }" nz-input name="orgCode"
id="orgCode" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.organizations.name' | i18n }}
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="orgName">{{ 'mxk.organizations.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="18" [nzMd]="18" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name"
id="name" />
<input [(ngModel)]="form.model.orgName" [ngModelOptions]="{ standalone: true }" nz-input name="orgName"
id="orgName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
@@ -5,10 +5,10 @@
<div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 24, lg: 24, xl: 48, xxl: 48 }">
<div nz-col nzMd="16" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.organizations.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="orgName">{{ 'mxk.organizations.name' | i18n }}</nz-form-label>
<nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.orgName" [ngModelOptions]="{ standalone: true }" name="orgName"
placeholder="" id="orgName" />
</nz-form-control>
</nz-form-item>
</div>
@@ -77,7 +77,7 @@
<td nzAlign="left">
<span>{{ data.id }}</span>
</td>
<td nzAlign="left"> {{ data.name }}</td>
<td nzAlign="left"> {{ data.orgName }}</td>
<td nzAlign="left">
{{ data.type == 'entity' ? ('mxk.organizations.type.entity' | i18n) : ('mxk.organizations.type.virtual' |
i18n) }}</td>
@@ -71,7 +71,7 @@ import { OrganizationEditerComponent } from './organization-editer/organization-
export class OrganizationsComponent implements OnInit {
query: {
params: {
name: String;
orgName: String;
displayName: String;
parentId: String;
startDate: String;
@@ -91,7 +91,7 @@ export class OrganizationsComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
orgName: '',
displayName: '',
parentId: '',
startDate: '',
@@ -20,10 +20,10 @@
</div>
<div nz-col nzMd="8" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="roleName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
<nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.roleName" [ngModelOptions]="{ standalone: true }" name="roleName"
placeholder="" id="roleName" />
</nz-form-control>
</nz-form-item>
</div>
@@ -83,7 +83,7 @@
<td nzAlign="left" style="display: none">
<span>{{ data.id }}</span>
</td>
<td nzAlign="left" nzBreakWord="false">{{ data.name }}</td>
<td nzAlign="left" nzBreakWord="false">{{ data.roleName }}</td>
<td nzAlign="center"> <i *ngIf="data.dynamic == 1" nz-icon nzType="check-circle" nzTheme="fill"
style="color: green"></i></td>
</tr>
@@ -51,7 +51,7 @@ export class PrivilegesComponent implements OnInit {
@ViewChild('nzTreeComponent', { static: false }) nzTreeComponent!: NzTreeComponent;
query: {
params: {
name: String;
roleName: String;
displayName: String;
employeeNumber: String;
appId: String;
@@ -76,7 +76,7 @@ export class PrivilegesComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
roleName: '',
displayName: '',
employeeNumber: '',
appId: '',
@@ -210,7 +210,7 @@ export class PrivilegesComponent implements OnInit {
// Return a result when closed
modal.afterClose.subscribe(result => {
if (result.refresh) {
this.query.params.appName = result.data.name;
this.query.params.appName = result.data.appName;
this.query.params.appId = result.data.id;
this.fetch();
this.tree();
@@ -9,9 +9,11 @@
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="name">{{ 'mxk.resources.name' | i18n }}</nz-form-label>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="resourceName">{{ 'mxk.resources.name' | i18n }}
</nz-form-label>
<nz-form-control [nzSm]="18" [nzMd]="18" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
<input [(ngModel)]="form.model.name" [ngModelOptions]="{ standalone: true }" nz-input name="name" id="name" />
<input [(ngModel)]="form.model.resourceName" [ngModelOptions]="{ standalone: true }" nz-input
name="resourceName" id="resourceName" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
@@ -20,10 +20,10 @@
</div>
<div nz-col nzMd="10" nzSm="24">
<nz-form-item>
<nz-form-label nzFor="name">{{ 'mxk.resources.name' | i18n }}</nz-form-label>
<nz-form-label nzFor="resourceName">{{ 'mxk.resources.name' | i18n }}</nz-form-label>
<nz-form-control>
<input nz-input [(ngModel)]="query.params.name" [ngModelOptions]="{ standalone: true }" name="name"
placeholder="" id="name" />
<input nz-input [(ngModel)]="query.params.resourceName" [ngModelOptions]="{ standalone: true }"
name="resourceName" placeholder="" id="resourceName" />
</nz-form-control>
</nz-form-item>
</div>
@@ -92,7 +92,7 @@
<td nzAlign="left">
<span>{{ data.appName }}</span>
</td>
<td nzAlign="left"> {{ data.name }}</td>
<td nzAlign="left"> {{ data.resourceName }}</td>
<td nzAlign="left"> {{ data.resourceType }}</td>
<td nzAlign="center"> {{ data.sortIndex }}</td>
<td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill"
@@ -16,6 +16,7 @@
import { ChangeDetectionStrategy, ViewContainerRef, ChangeDetectorRef, Component, OnInit, Inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { I18NService } from '@core';
import { _HttpClient, ALAIN_I18N_TOKEN, SettingsService } from '@delon/theme';
import { format, addDays } from 'date-fns';
@@ -40,7 +41,7 @@ import { ResourceEditerComponent } from './resource-editer/resource-editer.compo
export class ResourcesComponent implements OnInit {
query: {
params: {
name: String;
resourceName: String;
displayName: String;
parentId: String;
appName: String;
@@ -65,7 +66,7 @@ export class ResourcesComponent implements OnInit {
checked: boolean;
} = {
params: {
name: '',
resourceName: '',
displayName: '',
parentId: '',
appName: '',
@@ -100,10 +101,18 @@ export class ResourcesComponent implements OnInit {
private fb: FormBuilder,
private msg: NzMessageService,
@Inject(ALAIN_I18N_TOKEN) private i18n: I18NService,
private route: ActivatedRoute,
private cdr: ChangeDetectorRef
) { }
ngOnInit(): void { }
ngOnInit(): void {
if (this.route.snapshot.queryParams['appId']) {
this.query.params.appId = this.route.snapshot.queryParams['appId'];
this.query.params.appName = this.route.snapshot.queryParams['appName'];
this.fetch();
this.tree();
}
}
onQueryParamsChange(tableQueryParams: NzTableQueryParams): void {
this.query.params.pageNumber = tableQueryParams.pageIndex;
@@ -185,7 +194,7 @@ export class ResourcesComponent implements OnInit {
// Return a result when closed
modal.afterClose.subscribe(result => {
if (result.refresh) {
this.query.params.appName = result.data.name;
this.query.params.appName = result.data.appName;
this.query.params.appId = result.data.id;
console.log(result);
this.fetch();
@@ -19,5 +19,5 @@ export const CONSTS = {
INST: 'inst',
REDIRECT_URI: 'redirect_uri',
REMEMBER: 'remember',
VERSION: 'v3.5.1 GA'
VERSION: 'v3.5.2 GA'
};
@@ -261,6 +261,7 @@
"tab.basic": "Basic",
"tab.extra": "Extra",
"extendapi.tab": "API",
"resources":"Resources",
"id": "App Id",
"name": "App Name",
"icon": "Icon",
@@ -262,6 +262,7 @@
"tab.basic": "基本信息",
"tab.extra": "扩展信息",
"extendapi.tab": "API配置",
"resources":"资源",
"id": "应用编码",
"name": "应用名称",
"icon": "图标",
@@ -263,6 +263,7 @@
"tab.basic": "基本信息",
"tab.extra": "擴展信息",
"extendapi.tab": "API配置",
"resources":"資源",
"id": "應用編碼",
"name": "應用名稱",
"icon": "圖標",
@@ -67,7 +67,7 @@ public class HistorySignOnAppInterceptor implements AsyncHandlerInterceptor {
HistoryLoginApps historyLoginApps = new HistoryLoginApps();
historyLoginApps.setAppId(app.getId());
historyLoginApps.setSessionId(sessionId);
historyLoginApps.setAppName(app.getName());
historyLoginApps.setAppName(app.getAppName());
historyLoginApps.setUserId(userInfo.getId());
historyLoginApps.setUsername(userInfo.getUsername());
historyLoginApps.setDisplayName(userInfo.getDisplayName());
@@ -26,6 +26,7 @@ import org.maxkey.entity.Roles;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
import org.maxkey.persistence.service.RolesService;
import org.maxkey.util.StringUtils;
import org.maxkey.persistence.service.HistorySystemLogsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -87,6 +88,10 @@ public class RolesController {
public ResponseEntity<?> insert(@RequestBody Roles role,@CurrentUser UserInfo currentUser) {
_logger.debug("-Add :" + role);
role.setInstId(currentUser.getInstId());
role.setId(role.generateId());
if(StringUtils.isBlank(role.getRoleCode())) {
role.setRoleCode(role.getId());
}
if (rolesService.insert(role)) {
rolesService.refreshDynamicRoles(role);
systemLog.insert(
@@ -160,8 +160,8 @@ public class OrganizationsController {
TreeAttributes treeAttributes = new TreeAttributes();
int nodeCount = 0;
for (Organizations org : orgList) {
TreeNode treeNode = new TreeNode(org.getId(),org.getName());
treeNode.setCode(org.getCode());
TreeNode treeNode = new TreeNode(org.getId(),org.getOrgName());
treeNode.setCode(org.getOrgCode());
treeNode.setCodePath(org.getCodePath());
treeNode.setNamePath(org.getNamePath());
treeNode.setParentKey(org.getParentId());
@@ -235,7 +235,7 @@ public class OrganizationsController {
// 组织编码
organization.setId(ExcelUtils.getValue(row, 2));
// 组织名称
organization.setName(ExcelUtils.getValue(row, 3));
organization.setOrgName(ExcelUtils.getValue(row, 3));
// 组织全称
organization.setFullName(ExcelUtils.getValue(row, 4));
// 编码路径
@@ -148,7 +148,7 @@ public class ResourcesController {
TreeAttributes treeAttributes = new TreeAttributes();
int nodeCount = 0;
for (Resources r : resourceList) {
TreeNode treeNode = new TreeNode(r.getId(),r.getName());
TreeNode treeNode = new TreeNode(r.getId(),r.getResourceName());
treeNode.setParentKey(r.getParentId());
treeNode.setParentTitle(r.getParentName());
treeNode.setAttrs(r);