app-saml20-details-editer.component.html 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  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" id="id" />
  12. </nz-form-control>
  13. </nz-form-item>
  14. <nz-form-item style="width: 100%">
  15. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="secret">{{ 'mxk.apps.secret' | i18n }} </nz-form-label>
  16. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid secret!">
  17. <input
  18. [(ngModel)]="form.model.secret"
  19. readonly
  20. [ngModelOptions]="{ standalone: true }"
  21. nz-input
  22. name="secret"
  23. id="secret"
  24. />
  25. </nz-form-control>
  26. </nz-form-item>
  27. </nz-form-item>
  28. <nz-form-item>
  29. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="icon">{{ 'mxk.apps.icon' | i18n }}</nz-form-label>
  30. <div nz-col class="clearfix" nzSm="16" nzXs="24">
  31. <nz-upload
  32. nzAction="/file/upload/"
  33. nzListType="picture-card"
  34. [(nzFileList)]="fileList"
  35. nzName="uploadFile"
  36. [nzShowButton]="fileList.length < 1"
  37. [nzPreview]="handlePreview"
  38. (nzChange)="uploadImageChange($event)"
  39. >
  40. <div>
  41. <i nz-icon nzType="plus"></i>
  42. <div style="margin-top: 8px">Upload</div>
  43. </div>
  44. </nz-upload>
  45. <nz-modal [nzVisible]="previewVisible" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible = false">
  46. <ng-template #modalContent>
  47. <img [src]="previewImage" [ngStyle]="{ width: '100%' }" />
  48. </ng-template>
  49. </nz-modal>
  50. </div>
  51. <nz-form-control
  52. style="display: none"
  53. [nzSm]="16"
  54. [nzMd]="16"
  55. [nzXs]="36"
  56. [nzXl]="48"
  57. nzErrorTip="The input is not valid icon!"
  58. >
  59. <input
  60. [(ngModel)]="form.model.iconId"
  61. disabled="true"
  62. [ngModelOptions]="{ standalone: true }"
  63. nz-input
  64. name="icon"
  65. id="icon"
  66. />
  67. </nz-form-control>
  68. </nz-form-item>
  69. </div>
  70. <div nz-row>
  71. <nz-form-item>
  72. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="appName">{{ 'mxk.apps.name' | i18n }} </nz-form-label>
  73. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid name!">
  74. <input [(ngModel)]="form.model.appName" [ngModelOptions]="{ standalone: true }" nz-input name="appName" id="appName" />
  75. </nz-form-control>
  76. </nz-form-item>
  77. <nz-form-item>
  78. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="frequently">{{ 'mxk.apps.frequently' | i18n }}</nz-form-label>
  79. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid frequently!">
  80. <nz-radio-group [(ngModel)]="form.model.frequently" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
  81. <label nz-radio-button nzValue="yes">{{ 'mxk.text.yes' | i18n }}</label>
  82. <label nz-radio-button nzValue="no">{{ 'mxk.text.no' | i18n }}</label>
  83. </nz-radio-group>
  84. </nz-form-control>
  85. </nz-form-item>
  86. </div>
  87. <div nz-row>
  88. <nz-form-item>
  89. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }} </nz-form-label>
  90. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid protocol!">
  91. <input [(ngModel)]="form.model.protocol" [ngModelOptions]="{ standalone: true }" nz-input name="protocol" id="protocol" />
  92. </nz-form-control>
  93. </nz-form-item>
  94. <nz-form-item>
  95. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="category">{{ 'mxk.apps.category' | i18n }}</nz-form-label>
  96. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid category!">
  97. <nz-select [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" name="category" id="category">
  98. <nz-option nzValue="none" nzLabel="{{ 'mxk.apps.category.none' | i18n }}"></nz-option>
  99. <nz-option nzValue="1011" nzLabel="{{ 'mxk.apps.category.1011' | i18n }}"></nz-option>
  100. <nz-option nzValue="1012" nzLabel="{{ 'mxk.apps.category.1012' | i18n }}"></nz-option>
  101. <nz-option nzValue="1013" nzLabel="{{ 'mxk.apps.category.1013' | i18n }}"></nz-option>
  102. <nz-option nzValue="1014" nzLabel="{{ 'mxk.apps.category.1014' | i18n }}"></nz-option>
  103. <nz-option nzValue="1015" nzLabel="{{ 'mxk.apps.category.1015' | i18n }}"></nz-option>
  104. <nz-option nzValue="1016" nzLabel="{{ 'mxk.apps.category.1016' | i18n }}"></nz-option>
  105. <nz-option nzValue="1017" nzLabel="{{ 'mxk.apps.category.1017' | i18n }}"></nz-option>
  106. <nz-option nzValue="1111" nzLabel="{{ 'mxk.apps.category.1111' | i18n }}"></nz-option>
  107. <nz-option nzValue="1112" nzLabel="{{ 'mxk.apps.category.1112' | i18n }}"></nz-option>
  108. <nz-option nzValue="1113" nzLabel="{{ 'mxk.apps.category.1113' | i18n }}"></nz-option>
  109. <nz-option nzValue="1114" nzLabel="{{ 'mxk.apps.category.1114' | i18n }}"></nz-option>
  110. <nz-option nzValue="1211" nzLabel="{{ 'mxk.apps.category.1211' | i18n }}"></nz-option>
  111. <nz-option nzValue="1212" nzLabel="{{ 'mxk.apps.category.1212' | i18n }}"></nz-option>
  112. <nz-option nzValue="1213" nzLabel="{{ 'mxk.apps.category.1213' | i18n }}"></nz-option>
  113. <nz-option nzValue="1214" nzLabel="{{ 'mxk.apps.category.1214' | i18n }}"></nz-option>
  114. <nz-option nzValue="1215" nzLabel="{{ 'mxk.apps.category.1215' | i18n }}"></nz-option>
  115. <nz-option nzValue="1311" nzLabel="{{ 'mxk.apps.category.1311' | i18n }}"></nz-option>
  116. <nz-option nzValue="1411" nzLabel="{{ 'mxk.apps.category.1411' | i18n }}"></nz-option>
  117. <nz-option nzValue="1511" nzLabel="{{ 'mxk.apps.category.1511' | i18n }}"></nz-option>
  118. <nz-option nzValue="1512" nzLabel="{{ 'mxk.apps.category.1512' | i18n }}"></nz-option>
  119. <nz-option nzValue="1611" nzLabel="{{ 'mxk.apps.category.1611' | i18n }}"></nz-option>
  120. <nz-option nzValue="1711" nzLabel="{{ 'mxk.apps.category.1711' | i18n }}"></nz-option>
  121. <nz-option nzValue="1712" nzLabel="{{ 'mxk.apps.category.1712' | i18n }}"></nz-option>
  122. <nz-option nzValue="1811" nzLabel="{{ 'mxk.apps.category.1811' | i18n }}"></nz-option>
  123. <nz-option nzValue="1812" nzLabel="{{ 'mxk.apps.category.1812' | i18n }}"></nz-option>
  124. <nz-option nzValue="1911" nzLabel="{{ 'mxk.apps.category.1911' | i18n }}"></nz-option>
  125. <nz-option nzValue="1912" nzLabel="{{ 'mxk.apps.category.1912' | i18n }}"></nz-option>
  126. </nz-select>
  127. </nz-form-control>
  128. </nz-form-item>
  129. </div>
  130. <div nz-row>
  131. <nz-form-item style="width: 100%">
  132. <nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="loginUrl">{{ 'mxk.apps.loginUrl' | i18n }} </nz-form-label>
  133. <nz-form-control [nzSm]="16" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid loginUrl!">
  134. <input [(ngModel)]="form.model.loginUrl" [ngModelOptions]="{ standalone: true }" nz-input name="loginUrl" id="loginUrl" />
  135. </nz-form-control>
  136. </nz-form-item>
  137. </div>
  138. <div nz-row>
  139. <nz-form-item>
  140. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="status">{{ 'mxk.text.status' | i18n }} </nz-form-label>
  141. <nz-form-control [nzSm]="14" [nzXs]="24" nzErrorTip="The input is not valid status!">
  142. <nz-switch
  143. [(ngModel)]="form.model.switch_status"
  144. [ngModelOptions]="{ standalone: true }"
  145. name="status"
  146. [nzCheckedChildren]="statuscheckedTemplate"
  147. [nzUnCheckedChildren]="statusunCheckedTemplate"
  148. ></nz-switch>
  149. <ng-template #statuscheckedTemplate><i nz-icon nzType="check"></i></ng-template>
  150. <ng-template #statusunCheckedTemplate><i nz-icon nzType="close"></i></ng-template>
  151. </nz-form-control>
  152. </nz-form-item>
  153. <nz-form-item>
  154. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isExtendAttr">{{ 'mxk.apps.isExtendAttr' | i18n }} </nz-form-label>
  155. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isExtendAttr!">
  156. <nz-radio-group [(ngModel)]="form.model.isExtendAttr" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
  157. <label nz-radio-button nzValue="0">{{ 'mxk.text.no' | i18n }}</label>
  158. <label nz-radio-button nzValue="1">{{ 'mxk.text.yes' | i18n }}</label>
  159. </nz-radio-group>
  160. </nz-form-control>
  161. </nz-form-item>
  162. </div>
  163. </nz-tab>
  164. <nz-tab nzTitle="{{ 'mxk.apps.saml.tab' | i18n }}">
  165. <div nz-row>
  166. <nz-form-item style="width: 100%">
  167. <nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="spAcsUrl">{{ 'mxk.apps.saml.spAcsUrl' | i18n }} </nz-form-label>
  168. <nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid spAcsUrl!">
  169. <input [(ngModel)]="form.model.spAcsUrl" [ngModelOptions]="{ standalone: true }" nz-input name="spAcsUrl" id="spAcsUrl" />
  170. </nz-form-control>
  171. </nz-form-item>
  172. </div>
  173. <div nz-row>
  174. <nz-form-item>
  175. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="binding">{{ 'mxk.apps.saml.binding' | i18n }} </nz-form-label>
  176. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid binding!">
  177. <nz-select [(ngModel)]="form.model.binding" [ngModelOptions]="{ standalone: true }" nz-input name="binding" id="binding">
  178. <nz-option nzValue="Redirect-Post" nzLabel="Redirect-Post"></nz-option>
  179. <nz-option nzValue="Post-Post" nzLabel="Post-Post"></nz-option>
  180. <nz-option nzValue="IdpInit-Post" nzLabel="IdpInit-Post"></nz-option>
  181. <nz-option nzValue="Redirect-PostSimpleSign" nzLabel="Redirect-PostSimpleSign"></nz-option>
  182. <nz-option nzValue="Post-PostSimpleSign" nzLabel="Post-PostSimpleSign"></nz-option>
  183. <nz-option nzValue="IdpInit-PostSimpleSign" nzLabel="IdpInit-PostSimpleSign"></nz-option>
  184. </nz-select>
  185. </nz-form-control>
  186. </nz-form-item>
  187. <nz-form-item>
  188. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="entityId">{{ 'mxk.apps.saml.entityId' | i18n }} </nz-form-label>
  189. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid entityId!">
  190. <input [(ngModel)]="form.model.entityId" [ngModelOptions]="{ standalone: true }" nz-input name="entityId" id="entityId" />
  191. </nz-form-control>
  192. </nz-form-item>
  193. </div>
  194. <div nz-row>
  195. <nz-form-item>
  196. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="audience">{{ 'mxk.apps.saml.audience' | i18n }} </nz-form-label>
  197. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid audience!">
  198. <input [(ngModel)]="form.model.audience" [ngModelOptions]="{ standalone: true }" nz-input name="audience" id="audience" />
  199. </nz-form-control>
  200. </nz-form-item>
  201. <nz-form-item>
  202. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="issuer">{{ 'mxk.apps.saml.issuer' | i18n }} </nz-form-label>
  203. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid issuer!">
  204. <input [(ngModel)]="form.model.issuer" [ngModelOptions]="{ standalone: true }" nz-input name="issuer" id="issuer" />
  205. </nz-form-control>
  206. </nz-form-item>
  207. </div>
  208. <div nz-row>
  209. <nz-form-item>
  210. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="signature">{{ 'mxk.apps.saml.signature' | i18n }} </nz-form-label>
  211. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid signature!">
  212. <nz-select
  213. [(ngModel)]="form.model.signature"
  214. [ngModelOptions]="{ standalone: true }"
  215. nz-input
  216. name="signature"
  217. id="signature"
  218. >
  219. <nz-option nzValue="RSAwithSHA1" nzLabel="RSAwithSHA1"></nz-option>
  220. <nz-option nzValue="RSAwithSHA256" nzLabel="RSAwithSHA256"></nz-option>
  221. <nz-option nzValue="RSAwithSHA384" nzLabel="RSAwithSHA384"></nz-option>
  222. <nz-option nzValue="RSAwithSHA512" nzLabel="RSAwithSHA512"></nz-option>
  223. <nz-option nzValue="RSAwithMD5" nzLabel="RSAwithMD5"></nz-option>
  224. <nz-option nzValue="RSAwithRIPEMD160" nzLabel="RSAwithRIPEMD160"></nz-option>
  225. <nz-option nzValue="DSAwithSHA1" nzLabel="DSAwithSHA1"></nz-option>
  226. <nz-option nzValue="ECDSAwithSHA1" nzLabel="ECDSAwithSHA1"></nz-option>
  227. <nz-option nzValue="ECDSAwithSHA256" nzLabel="ECDSAwithSHA256"></nz-option>
  228. <nz-option nzValue="ECDSAwithSHA384" nzLabel="ECDSAwithSHA384"></nz-option>
  229. <nz-option nzValue="ECDSAwithSHA512" nzLabel="ECDSAwithSHA512"></nz-option>
  230. <nz-option nzValue="HMAC-MD5" nzLabel="HMAC-MD5"></nz-option>
  231. <nz-option nzValue="HMAC-SHA1" nzLabel="HMAC-SHA1"></nz-option>
  232. <nz-option nzValue="HMAC-SHA256" nzLabel="HMAC-SHA256"></nz-option>
  233. <nz-option nzValue="HMAC-SHA384" nzLabel="HMAC-SHA384"></nz-option>
  234. <nz-option nzValue="HMAC-SHA512" nzLabel="HMAC-SHA512"></nz-option>
  235. <nz-option nzValue="HMAC-RIPEMD160" nzLabel="HMAC-RIPEMD160"></nz-option>
  236. </nz-select>
  237. </nz-form-control>
  238. </nz-form-item>
  239. <nz-form-item>
  240. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="digestMethod">{{ 'mxk.apps.saml.digestMethod' | i18n }}</nz-form-label>
  241. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid digestMethod!">
  242. <nz-select
  243. [(ngModel)]="form.model.digestMethod"
  244. [ngModelOptions]="{ standalone: true }"
  245. nz-input
  246. name="digestMethod"
  247. id="digestMethod"
  248. >
  249. <nz-option nzValue="MD5" nzLabel="MD5"></nz-option>
  250. <nz-option nzValue="SHA1" nzLabel="SHA1"></nz-option>
  251. <nz-option nzValue="SHA256" nzLabel="SHA256"></nz-option>
  252. <nz-option nzValue="SHA384" nzLabel="SHA384"></nz-option>
  253. <nz-option nzValue="SHA512" nzLabel="SHA512"></nz-option>
  254. <nz-option nzValue="RIPEMD-160" nzLabel="RIPEMD-160"></nz-option>
  255. </nz-select>
  256. </nz-form-control>
  257. </nz-form-item>
  258. </div>
  259. <div nz-row>
  260. <nz-form-item>
  261. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="encrypted">{{ 'mxk.apps.saml.encrypted' | i18n }} </nz-form-label>
  262. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid encrypted!">
  263. <nz-select
  264. [(ngModel)]="form.model.encrypted"
  265. [ngModelOptions]="{ standalone: true }"
  266. nz-input
  267. name="encrypted"
  268. id="encrypted"
  269. >
  270. <nz-option nzValue="no" nzLabel="{{ 'mxk.apps.saml.encrypted.no' | i18n }}"></nz-option>
  271. <nz-option nzValue="yes" nzLabel="{{ 'mxk.apps.saml.encrypted.yes' | i18n }}"></nz-option>
  272. </nz-select>
  273. </nz-form-control>
  274. </nz-form-item>
  275. <nz-form-item>
  276. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="validityInterval">{{
  277. 'mxk.apps.saml.validityInterval' | i18n
  278. }}</nz-form-label>
  279. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid validityInterval!">
  280. <nz-input-group nzAddOnAfter="{{ 'mxk.text.second' | i18n }}">
  281. <input
  282. [(ngModel)]="form.model.validityInterval"
  283. [ngModelOptions]="{ standalone: true }"
  284. nz-input
  285. name="validityInterval"
  286. id="validityInterval"
  287. />
  288. </nz-input-group>
  289. </nz-form-control>
  290. </nz-form-item>
  291. </div>
  292. <div nz-row>
  293. <nz-form-item>
  294. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="nameidFormat">{{ 'mxk.apps.saml.nameidFormat' | i18n }}</nz-form-label>
  295. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid nameidFormat!">
  296. <nz-select
  297. [(ngModel)]="form.model.nameidFormat"
  298. [ngModelOptions]="{ standalone: true }"
  299. nz-input
  300. name="nameidFormat"
  301. id="nameidFormat"
  302. >
  303. <nz-option nzValue="persistent" nzLabel="persistent"></nz-option>
  304. <nz-option nzValue="transient" nzLabel="transient"></nz-option>
  305. <nz-option nzValue="emailAddress" nzLabel="emailAddress"></nz-option>
  306. <nz-option nzValue="X509SubjectName" nzLabel="X509SubjectName"></nz-option>
  307. <nz-option nzValue="WindowsDomainQualifiedName" nzLabel="WindowsDomainQualifiedName"></nz-option>
  308. <nz-option nzValue="unspecified" nzLabel="unspecified"></nz-option>
  309. <nz-option nzValue="entity" nzLabel="entity"></nz-option>
  310. </nz-select>
  311. </nz-form-control>
  312. </nz-form-item>
  313. <nz-form-item>
  314. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="nameIdConvert">{{
  315. 'mxk.apps.saml.nameIdConvert' | i18n
  316. }}</nz-form-label>
  317. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid nameIdConvert!">
  318. <nz-select
  319. [(ngModel)]="form.model.nameIdConvert"
  320. [ngModelOptions]="{ standalone: true }"
  321. nz-input
  322. name="nameIdConvert"
  323. id="nameIdConvert"
  324. >
  325. <nz-option nzValue="original" nzLabel="{{ 'mxk.apps.saml.nameIdConvert.original' | i18n }}"></nz-option>
  326. <nz-option nzValue="uppercase" nzLabel="{{ 'mxk.apps.saml.nameIdConvert.upperCase' | i18n }}"> </nz-option>
  327. <nz-option nzValue="lowercase" nzLabel="{{ 'mxk.apps.saml.nameIdConvert.lowerCase' | i18n }}"> </nz-option>
  328. </nz-select>
  329. </nz-form-control>
  330. </nz-form-item>
  331. </div>
  332. <div nz-row>
  333. <nz-form-item>
  334. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="fileType">{{ 'mxk.apps.saml.fileType' | i18n }} </nz-form-label>
  335. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid fileType!">
  336. <nz-select [(ngModel)]="form.model.fileType" [ngModelOptions]="{ standalone: true }" nz-input name="fileType" id="fileType">
  337. <nz-option nzValue="certificate" nzLabel="{{ 'mxk.apps.saml.fileType.certificate' | i18n }}"> </nz-option>
  338. <nz-option nzValue="metadata_file" nzLabel="{{ 'mxk.apps.saml.fileType.metadata.file' | i18n }}"> </nz-option>
  339. <nz-option nzValue="metadata_url" nzLabel="{{ 'mxk.apps.saml.fileType.metadata.url' | i18n }}"> </nz-option>
  340. </nz-select>
  341. </nz-form-control>
  342. </nz-form-item>
  343. <nz-form-item>
  344. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="metaFile">{{ 'mxk.apps.saml.metaFile' | i18n }} </nz-form-label>
  345. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid nameIdConvert!">
  346. <nz-upload
  347. *ngIf="form.model.fileType == 'certificate' || form.model.fileType == 'metadata_file'"
  348. nzAction="/file/upload/"
  349. nzName="uploadFile"
  350. (nzChange)="uploadMetaChange($event)"
  351. >
  352. <div class="ant-btn">
  353. <i nz-icon nzType="upload"></i>
  354. {{ 'mxk.text.upload' | i18n }}
  355. </div>
  356. </nz-upload>
  357. <input
  358. *ngIf="form.model.fileType == 'metadata_url'"
  359. [(ngModel)]="form.model.metaUrl"
  360. [ngModelOptions]="{ standalone: true }"
  361. nz-input
  362. name="metaUrl"
  363. id="metaUrl"
  364. />
  365. </nz-form-control>
  366. </nz-form-item>
  367. </div>
  368. <div nz-row>
  369. <nz-form-item>
  370. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="certIssuer">{{ 'mxk.apps.saml.certIssuer' | i18n }} </nz-form-label>
  371. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid certIssuer!">
  372. <input
  373. [(ngModel)]="form.model.certIssuer"
  374. [ngModelOptions]="{ standalone: true }"
  375. nz-input
  376. disabled="true"
  377. name="certIssuer"
  378. id="certIssuer"
  379. />
  380. </nz-form-control>
  381. </nz-form-item>
  382. <nz-form-item>
  383. <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="certExpiration">{{
  384. 'mxk.apps.saml.certExpiration' | i18n
  385. }}</nz-form-label>
  386. <nz-form-control [nzSm]="20" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid issuer!">
  387. <input
  388. [(ngModel)]="form.model.certExpiration"
  389. [ngModelOptions]="{ standalone: true }"
  390. nz-input
  391. disabled="true"
  392. name="certExpiration"
  393. id="certExpiration"
  394. />
  395. </nz-form-control>
  396. </nz-form-item>
  397. </div>
  398. <div nz-row>
  399. <nz-form-item style="width: 100%">
  400. <nz-form-label [nzSm]="4" [nzXs]="24" nzRequired nzFor="certSubject">{{ 'mxk.apps.saml.certSubject' | i18n }}</nz-form-label>
  401. <nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid certSubject!">
  402. <input
  403. [(ngModel)]="form.model.certSubject"
  404. [ngModelOptions]="{ standalone: true }"
  405. nz-input
  406. disabled="true"
  407. name="certSubject"
  408. id="certSubject"
  409. />
  410. </nz-form-control>
  411. </nz-form-item>
  412. </div>
  413. </nz-tab>
  414. <nz-tab nzTitle="{{ 'mxk.apps.tab.extra' | i18n }}">
  415. <div nz-row>
  416. <nz-form-item>
  417. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutUrl">{{ 'mxk.apps.logoutUrl' | i18n }}</nz-form-label>
  418. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutUrl!">
  419. <input [(ngModel)]="form.model.logoutUrl" [ngModelOptions]="{ standalone: true }" nz-input name="logoutUrl" id="logoutUrl" />
  420. </nz-form-control>
  421. </nz-form-item>
  422. <nz-form-item>
  423. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="logoutType">{{ 'mxk.apps.logoutType' | i18n }}</nz-form-label>
  424. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid logoutType!">
  425. <nz-select [(ngModel)]="form.model.logoutType" [ngModelOptions]="{ standalone: true }" name="logoutType" id="logoutType">
  426. <nz-option nzValue="0" nzLabel="{{ 'mxk.apps.logoutType.none' | i18n }}"></nz-option>
  427. <nz-option nzValue="1" nzLabel="{{ 'mxk.apps.logoutType.back_channel' | i18n }}"></nz-option>
  428. <nz-option nzValue="2" nzLabel="{{ 'mxk.apps.logoutType.front_channel' | i18n }}"></nz-option>
  429. </nz-select>
  430. </nz-form-control>
  431. </nz-form-item>
  432. </div>
  433. <div nz-row>
  434. <nz-form-item>
  435. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="visible">{{ 'mxk.apps.visible' | i18n }}</nz-form-label>
  436. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid visible!">
  437. <nz-select [(ngModel)]="form.model.visible" [ngModelOptions]="{ standalone: true }" name="visible" id="visible">
  438. <nz-option nzValue="0" nzLabel="{{ 'mxk.apps.visible.hidden' | i18n }}"></nz-option>
  439. <nz-option nzValue="1" nzLabel="{{ 'mxk.apps.visible.all' | i18n }}"></nz-option>
  440. <nz-option nzValue="2" nzLabel="{{ 'mxk.apps.visible.internet' | i18n }}"></nz-option>
  441. <nz-option nzValue="3" nzLabel="{{ 'mxk.apps.visible.intranet' | i18n }}"></nz-option>
  442. </nz-select>
  443. </nz-form-control>
  444. </nz-form-item>
  445. <nz-form-item>
  446. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="sortIndex">{{ 'mxk.text.sortIndex' | i18n }}</nz-form-label>
  447. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid sortIndex!">
  448. <input [(ngModel)]="form.model.sortIndex" [ngModelOptions]="{ standalone: true }" nz-input name="sortIndex" id="sortIndex" />
  449. </nz-form-control>
  450. </nz-form-item>
  451. </div>
  452. <div nz-row>
  453. <nz-form-item>
  454. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendor">{{ 'mxk.apps.vendor' | i18n }}</nz-form-label>
  455. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendor!">
  456. <input [(ngModel)]="form.model.vendor" [ngModelOptions]="{ standalone: true }" nz-input name="vendor" id="vendor" />
  457. </nz-form-control>
  458. </nz-form-item>
  459. <nz-form-item>
  460. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="vendorUrl">{{ 'mxk.apps.vendor.url' | i18n }}</nz-form-label>
  461. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid vendorUrl!">
  462. <input [(ngModel)]="form.model.vendorUrl" [ngModelOptions]="{ standalone: true }" nz-input name="vendorUrl" id="vendorUrl" />
  463. </nz-form-control>
  464. </nz-form-item>
  465. </div>
  466. <div nz-row>
  467. <nz-form-item>
  468. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="isAdapter">{{ 'mxk.apps.isAdapter' | i18n }}</nz-form-label>
  469. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid isAdapter!">
  470. <nz-select [(ngModel)]="form.model.isAdapter" [ngModelOptions]="{ standalone: true }" name="isAdapter" id="isAdapter">
  471. <nz-option nzValue="0" nzLabel="{{ 'mxk.apps.isAdapter.no' | i18n }}"></nz-option>
  472. <nz-option nzValue="1" nzLabel="{{ 'mxk.apps.isAdapter.yes' | i18n }}"></nz-option>
  473. </nz-select>
  474. </nz-form-control>
  475. </nz-form-item>
  476. <nz-form-item>
  477. <nz-form-label [nzSm]="8" [nzXs]="24" nzFor="adapterName">{{ 'mxk.apps.adapter' | i18n }}</nz-form-label>
  478. <nz-form-control [nzSm]="16" [nzMd]="16" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid adapterName!">
  479. <nz-input-group nzSearch [nzAddOnAfter]="suffixAdapterButton">
  480. <input
  481. [(ngModel)]="form.model.adapterName"
  482. [ngModelOptions]="{ standalone: true }"
  483. nz-input
  484. name="adapterName"
  485. id="adapterName"
  486. />
  487. </nz-input-group>
  488. <ng-template #suffixAdapterButton>
  489. <button nz-button nzType="primary" nzSearch (click)="onSelectAdapter($event)">{{ 'mxk.text.select' | i18n }}</button>
  490. </ng-template>
  491. <input
  492. type="hidden"
  493. [(ngModel)]="form.model.adapterId"
  494. [ngModelOptions]="{ standalone: true }"
  495. nz-input
  496. name="adapterId"
  497. id="adapterId"
  498. />
  499. <input
  500. type="hidden"
  501. [(ngModel)]="form.model.adapter"
  502. [ngModelOptions]="{ standalone: true }"
  503. nz-input
  504. name="adapter"
  505. id="adapter"
  506. />
  507. </nz-form-control>
  508. </nz-form-item>
  509. </div>
  510. <div nz-row>
  511. <nz-form-item style="width: 100%">
  512. <nz-form-label [nzSm]="4" [nzXs]="24" nzFor="description">{{ 'mxk.text.description' | i18n }} </nz-form-label>
  513. <nz-form-control [nzSm]="20" [nzMd]="20" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid description!">
  514. <input
  515. [(ngModel)]="form.model.description"
  516. [ngModelOptions]="{ standalone: true }"
  517. nz-input
  518. name="description"
  519. id="description"
  520. />
  521. </nz-form-control>
  522. </nz-form-item>
  523. </div>
  524. </nz-tab>
  525. <nz-tab nzTitle="{{ 'mxk.apps.tab.custom' | i18n }}" *ngIf="isEdit && form.model.isExtendAttr === '1'">
  526. <button nz-button (click)="addExtraAttrRow($event)" nzType="primary">{{ 'mxk.text.add' | i18n }}</button>
  527. <nz-table #editRowTable nzBordered [nzData]="extraAttrListOfData" nzTableLayout="fixed">
  528. <thead>
  529. <tr>
  530. <th nzWidth="25%">{{ 'mxk.custom.extraAttr.attr' | i18n }}</th>
  531. <th nzWidth="15%">{{ 'mxk.custom.extraAttr.type' | i18n }}</th>
  532. <th nzWidth="40%">{{ 'mxk.custom.extraAttr.value' | i18n }}</th>
  533. <th>{{ 'mxk.text.action' | i18n }}</th>
  534. </tr>
  535. </thead>
  536. <tbody>
  537. <tr *ngFor="let data of editRowTable.data">
  538. <ng-container *ngIf="!extraAttrEditCache[data.id].edit; else editTemplate">
  539. <td>{{ data.attr }}</td>
  540. <td>{{ data.type }}</td>
  541. <td>{{ data.value }}</td>
  542. <td>
  543. <button nz-button type="button" (click)="startExtraAttrEdit(data.id)" style="float: left">{{
  544. 'mxk.text.edit' | i18n
  545. }}</button>
  546. <button nz-button type="button" (click)="deleteExtraAttrRow(data.id)" nzDanger>{{ 'mxk.text.delete' | i18n }}</button>
  547. </td>
  548. </ng-container>
  549. <ng-template #editTemplate>
  550. <td
  551. ><input type="text" nz-input [(ngModel)]="extraAttrEditCache[data.id].data.attr" [ngModelOptions]="{ standalone: true }"
  552. /></td>
  553. <td
  554. ><input type="text" nz-input [(ngModel)]="extraAttrEditCache[data.id].data.type" [ngModelOptions]="{ standalone: true }"
  555. /></td>
  556. <td
  557. ><input type="text" nz-input [(ngModel)]="extraAttrEditCache[data.id].data.value" [ngModelOptions]="{ standalone: true }"
  558. /></td>
  559. <td>
  560. <button nz-button type="button" (click)="saveExtraAttrEdit(data.id)" style="float: left">{{
  561. 'mxk.text.submit' | i18n
  562. }}</button>
  563. </td>
  564. </ng-template>
  565. </tr>
  566. </tbody>
  567. </nz-table>
  568. </nz-tab>
  569. </nz-tabset>
  570. </form>
  571. </div>
  572. <div *nzModalFooter>
  573. <button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
  574. <button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
  575. </div>