app-oauth20-details-editer.component.html 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. <div *nzModalTitle> {{ isEdit ? ('mxk.text.edit' | i18n) : ('mxk.text.add' | i18n) }} </div>
  2. <div>
  3. <form nz-form [formGroup]="formGroup" (ngSubmit)="onSubmit($event)" se-container="1">
  4. <nz-tabset style="width: 100%">
  5. <nz-tab nzTitle="{{ 'mxk.apps.tab.basic' | i18n }}">
  6. <div nz-row>
  7. <nz-form-item>
  8. <nz-form-item style="width: 100%">
  9. <nz-form-label [nzMd]="8" nzRequired nzFor="id">{{ 'mxk.text.id' | i18n }}</nz-form-label>
  10. <nz-form-control [nzMd]="16" nzErrorTip="The input is not valid id!">
  11. <input [(ngModel)]="form.model.id" readonly [ngModelOptions]="{ standalone: true }" nz-input name="id"
  12. id="id" />
  13. </nz-form-control>
  14. </nz-form-item>
  15. <nz-form-item style="width: 100%">
  16. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }}
  17. </nz-form-label>
  18. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  19. nzErrorTip="The input is not valid secret!">
  20. <nz-input-group nzSearch [nzAddOnAfter]="suffixPasswordButton">
  21. <input [(ngModel)]="form.model.secret" readonly [ngModelOptions]="{ standalone: true }" nz-input
  22. name="secret" id="secret" />
  23. </nz-input-group>
  24. <ng-template #suffixPasswordButton>
  25. <button nz-button nzType="primary" nzSearch (click)="onGenerateSecret($event)">{{ 'mxk.text.generate'
  26. | i18n }}</button>
  27. </ng-template>
  28. </nz-form-control>
  29. </nz-form-item>
  30. </nz-form-item>
  31. <nz-form-item>
  32. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
  33. <div nz-col class="clearfix" nzSm="16" nzXs="24">
  34. <nz-upload nzAction="file/upload/" nzListType="picture-card" [(nzFileList)]="fileList" nzName="uploadFile"
  35. [nzShowButton]="fileList.length < 1" [nzPreview]="handlePreview" (nzChange)="uploadImageChange($event)">
  36. <div>
  37. <i nz-icon nzType="plus"></i>
  38. <div style="margin-top: 8px">Upload</div>
  39. </div>
  40. </nz-upload>
  41. <nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null"
  42. (nzOnCancel)="previewVisible = false">
  43. <ng-template #modalContent>
  44. <img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
  45. </ng-template>
  46. </nz-modal>
  47. </div>
  48. <nz-form-control style="display: none" [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  49. nzErrorTip="The input is not valid icon!">
  50. <input [(ngModel)]="form.model.iconId" disabled="true" [ngModelOptions]="{ standalone: true }" nz-input
  51. name="icon" id="icon" />
  52. </nz-form-control>
  53. </nz-form-item>
  54. </div>
  55. <div nz-row>
  56. <nz-form-item>
  57. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }}
  58. </nz-form-label>
  59. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
  60. <input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName"
  61. id="appName" />
  62. </nz-form-control>
  63. </nz-form-item>
  64. <nz-form-item>
  65. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
  66. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  67. nzErrorTip="The input is not valid frequently!">
  68. <nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }"
  69. nzButtonStyle="solid">
  70. <label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
  71. <label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
  72. </nz-radio-group>
  73. </nz-form-control>
  74. </nz-form-item>
  75. </div>
  76. <div nz-row>
  77. <nz-form-item>
  78. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}
  79. </nz-form-label>
  80. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  81. nzErrorTip="The input is not valid protocol!">
  82. <nz-select [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" name="protocol">
  83. <nz-option nzValue="OAuth_v2.0" nzLabel="OAuth v2.0"></nz-option>
  84. <nz-option nzValue="OAuth_v2.1" nzLabel="OAuth v2.1"></nz-option>
  85. <nz-option nzValue="OpenID_Connect_v1.0" nzLabel="OpenID Connect 1.0"></nz-option>
  86. </nz-select>
  87. </nz-form-control>
  88. </nz-form-item>
  89. <nz-form-item>
  90. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
  91. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  92. nzErrorTip="The input is not valid category!">
  93. <nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category"
  94. id="category">
  95. <nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
  96. <nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
  97. <nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
  98. <nz-option nzValue="1013" nzLabel="{{ 'mxk.apps.category.1013' | i18n }}"></nz-option>
  99. <nz-option nzValue="1014" nzLabel="{{ 'mxk.apps.category.1014' | i18n }}"></nz-option>
  100. <nz-option nzValue="1015" nzLabel="{{ 'mxk.apps.category.1015' | i18n }}"></nz-option>
  101. <nz-option nzValue="1016" nzLabel="{{ 'mxk.apps.category.1016' | i18n }}"></nz-option>
  102. <nz-option nzValue="1017" nzLabel="{{ 'mxk.apps.category.1017' | i18n }}"></nz-option>
  103. <nz-option nzValue="1111" nzLabel="{{ 'mxk.apps.category.1111' | i18n }}"></nz-option>
  104. <nz-option nzValue="1112" nzLabel="{{ 'mxk.apps.category.1112' | i18n }}"></nz-option>
  105. <nz-option nzValue="1113" nzLabel="{{ 'mxk.apps.category.1113' | i18n }}"></nz-option>
  106. <nz-option nzValue="1114" nzLabel="{{ 'mxk.apps.category.1114' | i18n }}"></nz-option>
  107. <nz-option nzValue="1211" nzLabel="{{ 'mxk.apps.category.1211' | i18n }}"></nz-option>
  108. <nz-option nzValue="1212" nzLabel="{{ 'mxk.apps.category.1212' | i18n }}"></nz-option>
  109. <nz-option nzValue="1213" nzLabel="{{ 'mxk.apps.category.1213' | i18n }}"></nz-option>
  110. <nz-option nzValue="1214" nzLabel="{{ 'mxk.apps.category.1214' | i18n }}"></nz-option>
  111. <nz-option nzValue="1215" nzLabel="{{ 'mxk.apps.category.1215' | i18n }}"></nz-option>
  112. <nz-option nzValue="1311" nzLabel="{{ 'mxk.apps.category.1311' | i18n }}"></nz-option>
  113. <nz-option nzValue="1411" nzLabel="{{ 'mxk.apps.category.1411' | i18n }}"></nz-option>
  114. <nz-option nzValue="1511" nzLabel="{{ 'mxk.apps.category.1511' | i18n }}"></nz-option>
  115. <nz-option nzValue="1512" nzLabel="{{ 'mxk.apps.category.1512' | i18n }}"></nz-option>
  116. <nz-option nzValue="1611" nzLabel="{{ 'mxk.apps.category.1611' | i18n }}"></nz-option>
  117. <nz-option nzValue="1711" nzLabel="{{ 'mxk.apps.category.1711' | i18n }}"></nz-option>
  118. <nz-option nzValue="1712" nzLabel="{{ 'mxk.apps.category.1712' | i18n }}"></nz-option>
  119. <nz-option nzValue="1811" nzLabel="{{ 'mxk.apps.category.1811' | i18n }}"></nz-option>
  120. <nz-option nzValue="1812" nzLabel="{{ 'mxk.apps.category.1812' | i18n }}"></nz-option>
  121. <nz-option nzValue="1911" nzLabel="{{ 'mxk.apps.category.1911' | i18n }}"></nz-option>
  122. <nz-option nzValue="1912" nzLabel="{{ 'mxk.apps.category.1912' | i18n }}"></nz-option>
  123. </nz-select>
  124. </nz-form-control>
  125. </nz-form-item>
  126. </div>
  127. <div nz-row>
  128. <nz-form-item style="width: 100%">
  129. <nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }}
  130. </nz-form-label>
  131. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  132. nzErrorTip="The input is not valid loginUrl!">
  133. <input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl"
  134. id="loginUrl" />
  135. </nz-form-control>
  136. </nz-form-item>
  137. </div>
  138. </nz-tab>
  139. <nz-tab nzTitle="{{ 'mxk.apps.oauth.v2.0.tab' | i18n }}">
  140. <div nz-row>
  141. <nz-form-item style="width: 100%">
  142. <nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="registeredRedirectUris">{{
  143. 'mxk.apps.oauth.registeredRedirectUris' | i18n
  144. }}</nz-form-label>
  145. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  146. nzErrorTip="The input is not valid registeredRedirectUris!">
  147. <textarea [(ngModel)]="form.model.registeredRedirectUris" [ngModelOptions]="{ standalone: true }" nz-input
  148. name="registeredRedirectUris" id="registeredRedirectUris"></textarea>
  149. </nz-form-control>
  150. </nz-form-item>
  151. </div>
  152. <div nz-row>
  153. <nz-form-item style="width: 100%">
  154. <nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="GrantTypes">{{ 'mxk.apps.oauth.GrantTypes' | i18n }}
  155. </nz-form-label>
  156. <nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
  157. nzErrorTip="The input is not valid authorizedGrantTypes!">
  158. <nz-select [(ngModel)]="form.model.select_authorizedGrantTypes" nzMode="multiple"
  159. nzPlaceHolder="Please select" [ngModelOptions]="{ standalone: true }" name="authorizedGrantTypes">
  160. <nz-option nzValue="authorization_code" nzLabel="authorization_code"></nz-option>
  161. <nz-option nzValue="password" nzLabel="password"></nz-option>
  162. <nz-option nzValue="client_credentials" nzLabel="client_credentials"></nz-option>
  163. <nz-option nzValue="implicit" nzLabel="implicit"></nz-option>
  164. <nz-option nzValue="id_token" nzLabel="id_token"></nz-option>
  165. <nz-option nzValue="token" nzLabel="token"></nz-option>
  166. <nz-option nzValue="refresh_token" nzLabel="refresh_token"></nz-option>
  167. </nz-select>
  168. </nz-form-control>
  169. </nz-form-item>
  170. </div>
  171. <div nz-row>
  172. <nz-form-item>
  173. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="subject">{{ 'mxk.apps.oauth.subject' | i18n }}
  174. </nz-form-label>
  175. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  176. nzErrorTip="The input is not valid subject!">
  177. <nz-select [(ngModel)]="form.model.subject" [ngModelOptions]="{ standalone: true }" name="subject"
  178. id="subject">
  179. <nz-option nzValue="username" nzLabel="{{ 'mxk.users.username' | i18n }}"></nz-option>
  180. <nz-option nzValue="employeeNumber" nzLabel="{{ 'mxk.users.employeeNumber' | i18n }}"></nz-option>
  181. <nz-option nzValue="email" nzLabel="{{ 'mxk.users.email' | i18n }}"></nz-option>
  182. <nz-option nzValue="mobile" nzLabel="{{ 'mxk.users.mobile' | i18n }}"></nz-option>
  183. <nz-option nzValue="windowsaccount" nzLabel="{{ 'mxk.users.windowsAccount' | i18n }}"></nz-option>
  184. <nz-option nzValue="userId" nzLabel="{{ 'mxk.users.id' | i18n }}"></nz-option>
  185. </nz-select>
  186. </nz-form-control>
  187. </nz-form-item>
  188. <nz-form-item>
  189. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="scope">{{ 'mxk.apps.oauth.scope' | i18n }}
  190. </nz-form-label>
  191. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid scope!">
  192. <nz-select [(ngModel)]="form.model.select_scope" [ngModelOptions]="{ standalone: true }" nzMode="multiple"
  193. nzPlaceHolder="Please select">
  194. <nz-option nzValue="read" nzLabel="read"></nz-option>
  195. <nz-option nzValue="write" nzLabel="write"></nz-option>
  196. <nz-option nzValue="trust" nzLabel="trust"></nz-option>
  197. <nz-option nzValue="openid" nzLabel="openid"></nz-option>
  198. <nz-option nzValue="profile" nzLabel="profile"></nz-option>
  199. <nz-option nzValue="email" nzLabel="email"></nz-option>
  200. <nz-option nzValue="phone" nzLabel="phone"></nz-option>
  201. <nz-option nzValue="address" nzLabel="address"></nz-option>
  202. <nz-option nzValue="all" nzLabel="all"></nz-option>
  203. </nz-select>
  204. </nz-form-control>
  205. </nz-form-item>
  206. </div>
  207. <div nz-row>
  208. <nz-form-item>
  209. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="approvalPrompt">{{
  210. 'mxk.apps.oauth.approvalPrompt' | i18n
  211. }}</nz-form-label>
  212. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  213. nzErrorTip="The input is not valid approvalPrompt!">
  214. <nz-input-group>
  215. <nz-radio-group [(ngModel)]="form.model.approvalPrompt" [ngModelOptions]="{ standalone: true }"
  216. nzButtonStyle="solid">
  217. <label nz-radio-button nzValue="force">{{ 'mxk.apps.oauth.approvalPrompt.force' | i18n }}</label>
  218. <label nz-radio-button nzValue="auto">{{ 'mxk.apps.oauth.approvalPrompt.auto' | i18n }}</label>
  219. </nz-radio-group>
  220. </nz-input-group>
  221. </nz-form-control>
  222. </nz-form-item>
  223. <nz-form-item>
  224. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="pkce">PKCE</nz-form-label>
  225. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid PKCE!">
  226. <nz-input-group>
  227. <nz-radio-group [(ngModel)]="form.model.pkce" [ngModelOptions]="{ standalone: true }"
  228. nzButtonStyle="solid">
  229. <label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
  230. <label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
  231. </nz-radio-group>
  232. </nz-input-group>
  233. </nz-form-control>
  234. </nz-form-item>
  235. </div>
  236. <div nz-row>
  237. <nz-form-item>
  238. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="accessTokenValiditySeconds">{{
  239. 'mxk.apps.oauth.accessTokenValiditySeconds' | i18n
  240. }}</nz-form-label>
  241. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  242. nzErrorTip="The input is not valid accessTokenValiditySeconds!">
  243. <nz-input-group nzAddOnAfter="{{ 'mxk.text.second' | i18n }}">
  244. <input [(ngModel)]="form.model.accessTokenValiditySeconds" [ngModelOptions]="{ standalone: true }"
  245. nz-input name="accessTokenValiditySeconds" id="accessTokenValiditySeconds" />
  246. </nz-input-group>
  247. </nz-form-control>
  248. </nz-form-item>
  249. <nz-form-item>
  250. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="refreshTokenValiditySeconds">{{
  251. 'mxk.apps.oauth.refreshTokenValiditySeconds' | i18n
  252. }}</nz-form-label>
  253. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  254. nzErrorTip="The input is not valid expires!">
  255. <nz-input-group nzAddOnAfter="{{ 'mxk.text.second' | i18n }}">
  256. <input [(ngModel)]="form.model.refreshTokenValiditySeconds" [ngModelOptions]="{ standalone: true }"
  257. nz-input name="refreshTokenValiditySeconds" id="refreshTokenValiditySeconds" />
  258. </nz-input-group>
  259. </nz-form-control>
  260. </nz-form-item>
  261. </div>
  262. </nz-tab>
  263. <nz-tab nzTitle="{{ 'mxk.apps.oauth.connect.tab' | i18n }}">
  264. <div nz-row>
  265. <nz-form-item>
  266. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="issuer">{{ 'mxk.apps.oauth.connect.issuer' | i18n }}
  267. </nz-form-label>
  268. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  269. nzErrorTip="The input is not valid issuer!">
  270. <input [(ngModel)]="form.model.issuer" [ngModelOptions]="{ standalone: true }" nz-input name="issuer"
  271. id="issuer" />
  272. </nz-form-control>
  273. </nz-form-item>
  274. <nz-form-item>
  275. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="audience">{{ 'mxk.apps.oauth.connect.audience' | i18n }}
  276. </nz-form-label>
  277. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  278. nzErrorTip="The input is not valid audience!">
  279. <input [(ngModel)]="form.model.audience" [ngModelOptions]="{ standalone: true }" nz-input name="audience"
  280. id="audience" />
  281. </nz-form-control>
  282. </nz-form-item>
  283. </div>
  284. <div nz-row>
  285. <nz-form-item>
  286. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="signature">{{ 'mxk.apps.oauth.connect.signature' | i18n }}
  287. </nz-form-label>
  288. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  289. nzErrorTip="The input is not valid signature!">
  290. <nz-select (ngModelChange)="onSelectSignature($event)" [(ngModel)]="form.model.signature"
  291. [ngModelOptions]="{ standalone: true }" name="signature" id="signature">
  292. <nz-option nzValue="NONE" nzLabel="NONE"></nz-option>
  293. <nz-option nzValue="RS256" nzLabel="RS256"></nz-option>
  294. <nz-option nzValue="RS384" nzLabel="RS384"></nz-option>
  295. <nz-option nzValue="RS512" nzLabel="RS512"></nz-option>
  296. <nz-option nzValue="HS256" nzLabel="HS256"></nz-option>
  297. <nz-option nzValue="HS384" nzLabel="HS384"></nz-option>
  298. <nz-option nzValue="HS512" nzLabel="HS512"></nz-option>
  299. </nz-select>
  300. </nz-form-control>
  301. </nz-form-item>
  302. <nz-form-item>
  303. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="userInfoResponse">{{
  304. 'mxk.apps.oauth.connect.userInfoResponse' | i18n
  305. }}</nz-form-label>
  306. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  307. nzErrorTip="The input is not valid userInfoResponse!">
  308. <nz-select [(ngModel)]="form.model.userInfoResponse" [ngModelOptions]="{ standalone: true }"
  309. name="userInfoResponse" id="userInfoResponse">
  310. <nz-option nzValue="NORMAL" nzLabel="NORMAL"></nz-option>
  311. <nz-option nzValue="SIGNING" nzLabel="SIGNING"></nz-option>
  312. <nz-option nzValue="ENCRYPTION" nzLabel="ENCRYPTION"></nz-option>
  313. <nz-option nzValue="SIGNING_ENCRYPTION" nzLabel="SIGNING_ENCRYPTION"></nz-option>
  314. </nz-select>
  315. </nz-form-control>
  316. </nz-form-item>
  317. </div>
  318. <div nz-row>
  319. <nz-form-item style="width: 100%">
  320. <nz-form-label [nzSm]="4" [nzXs]="24" nzFor="signatureKey">{{ 'mxk.apps.oauth.connect.signatureKey' | i18n
  321. }}</nz-form-label>
  322. <nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
  323. nzErrorTip="The input is not valid signatureKey!">
  324. <textarea [(ngModel)]="form.model.signatureKey" [ngModelOptions]="{ standalone: true }" nz-input
  325. name="signatureKey" id="signatureKey"></textarea>
  326. </nz-form-control>
  327. </nz-form-item>
  328. </div>
  329. <div nz-row>
  330. <nz-form-item>
  331. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="algorithm">{{ 'mxk.apps.oauth.connect.algorithm' | i18n }}
  332. </nz-form-label>
  333. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  334. nzErrorTip="The input is not valid algorithm!">
  335. <nz-select (ngModelChange)="onSelectAlgorithm($event)" [(ngModel)]="form.model.algorithm"
  336. [ngModelOptions]="{ standalone: true }" name="algorithm" id="algorithm">
  337. <nz-option nzValue="NONE" nzLabel="NONE"></nz-option>
  338. <nz-option nzValue="RSA1_5" nzLabel="RSA1_5"></nz-option>
  339. <nz-option nzValue="RSA_OAEP" nzLabel="RSA_OAEP"></nz-option>
  340. <nz-option nzValue="RSA-OAEP-256" nzLabel="RSA-OAEP-256"></nz-option>
  341. <nz-option nzValue="A128KW" nzLabel="A128KW"></nz-option>
  342. <nz-option nzValue="A192KW" nzLabel="A192KW"></nz-option>
  343. <nz-option nzValue="A256KW" nzLabel="A256KW"></nz-option>
  344. <nz-option nzValue="A128GCMKW" nzLabel="A128GCMKW"></nz-option>
  345. <nz-option nzValue="A192GCMKW" nzLabel="A192GCMKW"></nz-option>
  346. <nz-option nzValue="A256GCMKW" nzLabel="A256GCMKW"></nz-option>
  347. </nz-select>
  348. </nz-form-control>
  349. </nz-form-item>
  350. <nz-form-item>
  351. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="encryptionMethod">{{
  352. 'mxk.apps.oauth.connect.encryptionMethod' | i18n
  353. }}</nz-form-label>
  354. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  355. nzErrorTip="The input is not valid encryptionMethod!">
  356. <nz-select [(ngModel)]="form.model.encryptionMethod" [ngModelOptions]="{ standalone: true }"
  357. name="encryptionMethod" id="encryptionMethod">
  358. <nz-option nzValue="A128GCM" nzLabel="A128GCM"></nz-option>
  359. <nz-option nzValue="A192GCM" nzLabel="A192GCM"></nz-option>
  360. <nz-option nzValue="A256GCM" nzLabel="A256GCM"></nz-option>
  361. <nz-option nzValue="A128CBC-HS256" nzLabel="A128CBC-HS256"></nz-option>
  362. <nz-option nzValue="A192CBC-HS384" nzLabel="A192CBC-HS384"></nz-option>
  363. <nz-option nzValue="A256CBC-HS512" nzLabel="A256CBC-HS512"></nz-option>
  364. <nz-option nzValue="XC20P" nzLabel="XC20P"></nz-option>
  365. </nz-select>
  366. </nz-form-control>
  367. </nz-form-item>
  368. </div>
  369. <div nz-row>
  370. <nz-form-item style="width: 100%">
  371. <nz-form-label [nzSm]="4" [nzXs]="24" nzFor="algorithmKey">{{ 'mxk.apps.oauth.connect.algorithmKey' | i18n
  372. }}</nz-form-label>
  373. <nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48"
  374. nzErrorTip="The input is not valid algorithmKey!">
  375. <textarea [(ngModel)]="form.model.algorithmKey" [ngModelOptions]="{ standalone: true }" nz-input
  376. name="algorithmKey" id="algorithmKey"></textarea>
  377. </nz-form-control>
  378. </nz-form-item>
  379. </div>
  380. </nz-tab>
  381. <nz-tab nzTitle="{{ 'mxk.apps.tab.extra' | i18n }}">
  382. <div nz-row>
  383. <nz-form-item>
  384. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
  385. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  386. nzErrorTip="The input is not valid logoutUrl!">
  387. <input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input
  388. name="logoutUrl" id="logoutUrl" />
  389. </nz-form-control>
  390. </nz-form-item>
  391. <nz-form-item>
  392. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
  393. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  394. nzErrorTip="The input is not valid logoutType!">
  395. <nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType"
  396. id="logoutType">
  397. <nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
  398. <nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
  399. <nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
  400. </nz-select>
  401. </nz-form-control>
  402. </nz-form-item>
  403. </div>
  404. <div nz-row>
  405. <nz-form-item>
  406. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
  407. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  408. nzErrorTip="The input is not valid visible!">
  409. <nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible"
  410. id="visible">
  411. <nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
  412. <nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
  413. <nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
  414. <nz-option nzValue="3" nzLabel="{{ 'mxk.apps.visible.intranet' | i18n }}"></nz-option>
  415. </nz-select>
  416. </nz-form-control>
  417. </nz-form-item>
  418. <nz-form-item>
  419. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
  420. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  421. nzErrorTip="The input is not valid sortIndex!">
  422. <input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input
  423. name="sortIndex" id="sortIndex" />
  424. </nz-form-control>
  425. </nz-form-item>
  426. </div>
  427. <div nz-row>
  428. <nz-form-item>
  429. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
  430. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  431. nzErrorTip="The input is not valid vendor!">
  432. <input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor"
  433. id="vendor" />
  434. </nz-form-control>
  435. </nz-form-item>
  436. <nz-form-item>
  437. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
  438. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  439. nzErrorTip="The input is not valid vendorUrl!">
  440. <input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input
  441. name="vendorUrl" id="vendorUrl" />
  442. </nz-form-control>
  443. </nz-form-item>
  444. </div>
  445. <div nz-row>
  446. <nz-form-item>
  447. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
  448. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  449. nzErrorTip="The input is not valid isAdapter!">
  450. <nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter"
  451. id="isAdapter">
  452. <nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
  453. <nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
  454. </nz-select>
  455. </nz-form-control>
  456. </nz-form-item>
  457. <nz-form-item>
  458. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
  459. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  460. nzErrorTip="The input is not valid adapterName!">
  461. <nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
  462. <input [(ngModel)]="form.model.adapterName" [ngModelOptions]="{ standalone: true }" nz-input
  463. name="adapterName" id="adapterName" />
  464. </nz-input-group>
  465. <ng-template #suffixAdapterButton>
  466. <button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' |
  467. i18n }}</button>
  468. </ng-template>
  469. <input type="hidden" [(ngModel)]="form.model.adapterId" [ngModelOptions]="{ standalone: true }" nz-input
  470. name="adapterId" id="adapterId" />
  471. <input type="hidden" [(ngModel)]="form.model.adapter" [ngModelOptions]="{ standalone: true }" nz-input
  472. name="adapter" id="adapter" />
  473. </nz-form-control>
  474. </nz-form-item>
  475. </div>
  476. <div nz-row>
  477. <nz-form-item style="width: 100%">
  478. <nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }}
  479. </nz-form-label>
  480. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48"
  481. nzErrorTip="The input is not valid description!">
  482. <input [(ngModel)]="form.model.description" [ngModelOptions]="{ standalone: true }" nz-input
  483. name="description" id="description" />
  484. </nz-form-control>
  485. </nz-form-item>
  486. </div>
  487. </nz-tab>
  488. </nz-tabset>
  489. </form>
  490. </div>
  491. <div *nzModalFooter>
  492. <button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
  493. <button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
  494. </div>