您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

754 行
59 KiB

  1. <h4>
  2. <a href="javascript:history.back()"><i class="fas fa-chevron-left"></i></a>&nbsp;<%= _lc( 'EDIT_APPOINTMENT' ) %>
  3. <%=raw app.core.View.getTemplate( 'gui-header-help-button' ) %>
  4. </h4>
  5. <% var mStart = a.getMomentStart(); %>
  6. <% var mEnd = a.getMomentEnd(); %>
  7. <% var mDeadline = a.getMomentDeadline(); %>
  8. <% var mReject = a.getMomentDeadlineReject(); %>
  9. <div class="row">
  10. <div class="col-sm-12">
  11. <div class="card">
  12. <form data-id="form-appointment"
  13. class="needs-validation"
  14. novalidate>
  15. <div class="card-body">
  16. <input type="hidden"
  17. name="appointment-id"
  18. value="<%= a.getId() %>" />
  19. <% var mTeam = new app.model.Group( team ) %>
  20. <input type="hidden"
  21. name="team-id"
  22. data-id="select-team-id"
  23. value="<%= mTeam.getId() %>" />
  24. <div class="form-group">
  25. <div class="form-row">
  26. <div class="col">
  27. <div class="radio-icons" id="radio-icons">
  28. <p class="d-flex justify-content-between align-items-center">
  29. <%= _lc( 'APPOINTMENT_ICON' ) %>
  30. <i class="fas fa-chevron-down"></i>
  31. </p>
  32. <div class="radio-icons-inner">
  33. <label for="input-subject-icon">
  34. <input type="radio" <%= a.getIcon() === "" ? 'checked' : '' %> value="" name="categoryicon" id="input-subject-icon" />
  35. Ohne
  36. </label>
  37. <label for="input-subject-icon-wrench">
  38. <input type="radio" <%= a.getIcon() === "fa-wrench" ? 'checked' : '' %> value="fa-wrench" name="categoryicon" id="input-subject-icon-wrench" />
  39. <i class="fas fa-wrench"></i>
  40. </label>
  41. <label for="input-subject-icon-weight">
  42. <input type="radio" <%= a.getIcon() === "fa-weight" ? 'checked' : '' %> value="fa-weight" name="categoryicon" id="input-subject-icon-weight" />
  43. <i class="fas fa-weight"></i>
  44. </label>
  45. <label for="input-subject-icon-walking">
  46. <input type="radio" <%= a.getIcon() === "fa-walking" ? 'checked' : '' %> value="fa-walking" name="categoryicon" id="input-subject-icon-walking" />
  47. <i class="fas fa-walking"></i>
  48. </label>
  49. <label for="input-subject-icon-volume-up">
  50. <input type="radio" <%= a.getIcon() === "fa-volume-up" ? 'checked' : '' %> value="fa-volume-up" name="categoryicon" id="input-subject-icon-volume-up" />
  51. <i class="fas fa-volume-up"></i>
  52. </label>
  53. <label for="input-subject-icon-video">
  54. <input type="radio" <%= a.getIcon() === "fa-video" ? 'checked' : '' %> value="fa-video" name="categoryicon" id="input-subject-icon-video" />
  55. <i class="fas fa-video"></i>
  56. </label>
  57. <label for="input-subject-icon-utensils">
  58. <input type="radio" <%= a.getIcon() === "fa-utensils" ? 'checked' : '' %> value="fa-utensils" name="categoryicon" id="input-subject-icon-utensils" />
  59. <i class="fas fa-utensils"></i>
  60. </label>
  61. <label for="input-subject-icon-user-friends">
  62. <input type="radio" <%= a.getIcon() === "fa-user-friends" ? 'checked' : '' %> value="fa-user-friends" name="categoryicon" id="input-subject-icon-user-friends" />
  63. <i class="fas fa-user-friends"></i>
  64. </label>
  65. <label for="input-subject-icon-umbrella-beach">
  66. <input type="radio" <%= a.getIcon() === "fa-umbrella-beach" ? 'checked' : '' %> value="fa-umbrella-beach" name="categoryicon" id="input-subject-icon-umbrella-beach" />
  67. <i class="fas fa-umbrella-beach"></i>
  68. </label>
  69. <label for="input-subject-icon-trophy">
  70. <input type="radio" <%= a.getIcon() === "fa-trophy" ? 'checked' : '' %> value="fa-trophy" name="categoryicon" id="input-subject-icon-trophy" />
  71. <i class="fas fa-trophy"></i>
  72. </label>
  73. <label for="input-subject-icon-tree">
  74. <input type="radio" <%= a.getIcon() === "fa-tree" ? 'checked' : '' %> value="fa-tree" name="categoryicon" id="input-subject-icon-tree" />
  75. <i class="fas fa-tree"></i>
  76. </label>
  77. <label for="input-subject-icon-toolbox">
  78. <input type="radio" <%= a.getIcon() === "fa-toolbox" ? 'checked' : '' %> value="fa-toolbox" name="categoryicon" id="input-subject-icon-toolbox" />
  79. <i class="fas fa-toolbox"></i>
  80. </label>
  81. <label for="input-subject-icon-thumbtack">
  82. <input type="radio" <%= a.getIcon() === "fa-thumbtack" ? 'checked' : '' %> value="fa-thumbtack" name="categoryicon" id="input-subject-icon-thumbtack" />
  83. <i class="fas fa-thumbtack"></i>
  84. </label>
  85. <label for="input-subject-icon-tags">
  86. <input type="radio" <%= a.getIcon() === "fa-tags" ? 'checked' : '' %> value="fa-tags" name="categoryicon" id="input-subject-icon-tags" />
  87. <i class="fas fa-tags"></i>
  88. </label>
  89. <label for="input-subject-icon-tachometer-alt">
  90. <input type="radio" <%= a.getIcon() === "fa-tachometer-alt" ? 'checked' : '' %> value="fa-tachometer-alt" name="categoryicon" id="input-subject-icon-tachometer-alt" />
  91. <i class="fas fa-tachometer-alt"></i>
  92. </label>
  93. <label for="input-subject-icon-swimmer">
  94. <input type="radio" <%= a.getIcon() === "fa-swimmer" ? 'checked' : '' %> value="fa-swimmer" name="categoryicon" id="input-subject-icon-swimmer" />
  95. <i class="fas fa-swimmer"></i>
  96. </label>
  97. <label for="input-subject-icon-surprise">
  98. <input type="radio" <%= a.getIcon() === "fa-surprise" ? 'checked' : '' %> value="fa-surprise" name="categoryicon" id="input-subject-icon-surprise" />
  99. <i class="fas fa-surprise"></i>
  100. </label>
  101. <label for="input-subject-icon-street-view">
  102. <input type="radio" <%= a.getIcon() === "fa-street-view" ? 'checked' : '' %> value="fa-street-view" name="categoryicon" id="input-subject-icon-street-view" />
  103. <i class="fas fa-street-view"></i>
  104. </label>
  105. <label for="input-subject-icon-stopwatch">
  106. <input type="radio" <%= a.getIcon() === "fa-stopwatch" ? 'checked' : '' %> value="fa-stopwatch" name="categoryicon" id="input-subject-icon-stopwatch" />
  107. <i class="fas fa-stopwatch"></i>
  108. </label>
  109. <label for="input-subject-icon-star">
  110. <input type="radio" <%= a.getIcon() === "fa-star" ? 'checked' : '' %> value="fa-star" name="categoryicon" id="input-subject-icon-star" />
  111. <i class="fas fa-star"></i>
  112. </label>
  113. <label for="input-subject-icon-smile-wink">
  114. <input type="radio" <%= a.getIcon() === "fa-smile-wink" ? 'checked' : '' %> value="fa-smile-wink" name="categoryicon" id="input-subject-icon-smile-wink" />
  115. <i class="fas fa-smile-wink"></i>
  116. </label>
  117. <label for="input-subject-icon-shuttle-van">
  118. <input type="radio" <%= a.getIcon() === "fa-shuttle-van" ? 'checked' : '' %> value="fa-shuttle-van" name="categoryicon" id="input-subject-icon-shuttle-van" />
  119. <i class="fas fa-shuttle-van"></i>
  120. </label>
  121. <label for="input-subject-icon-shopping-cart">
  122. <input type="radio" <%= a.getIcon() === "fa-shopping-cart" ? 'checked' : '' %> value="fa-shopping-cart" name="categoryicon" id="input-subject-icon-shopping-cart" />
  123. <i class="fas fa-shopping-cart"></i>
  124. </label>
  125. <label for="input-subject-icon-running">
  126. <input type="radio" <%= a.getIcon() === "fa-running" ? 'checked' : '' %> value="fa-running" name="categoryicon" id="input-subject-icon-running" />
  127. <i class="fas fa-running"></i>
  128. </label>
  129. <label for="input-subject-icon-rocket">
  130. <input type="radio" <%= a.getIcon() === "fa-rocket" ? 'checked' : '' %> value="fa-rocket" name="categoryicon" id="input-subject-icon-rocket" />
  131. <i class="fas fa-rocket"></i>
  132. </label>
  133. <label for="input-subject-icon-recycle">
  134. <input type="radio" <%= a.getIcon() === "fa-recycle" ? 'checked' : '' %> value="fa-recycle" name="categoryicon" id="input-subject-icon-recycle" />
  135. <i class="fas fa-recycle"></i>
  136. </label>
  137. <label for="input-subject-icon-question-circle">
  138. <input type="radio" <%= a.getIcon() === "fa-question-circle" ? 'checked' : '' %> value="fa-question-circle" name="categoryicon" id="input-subject-icon-question-circle" />
  139. <i class="fas fa-question-circle"></i>
  140. </label>
  141. <label for="input-subject-icon-puzzle-piece">
  142. <input type="radio" <%= a.getIcon() === "fa-puzzle-piece" ? 'checked' : '' %> value="fa-puzzle-piece" name="categoryicon" id="input-subject-icon-puzzle-piece" />
  143. <i class="fas fa-puzzle-piece"></i>
  144. </label>
  145. <label for="input-subject-icon-poll">
  146. <input type="radio" <%= a.getIcon() === "fa-poll" ? 'checked' : '' %> value="fa-poll" name="categoryicon" id="input-subject-icon-poll" />
  147. <i class="fas fa-poll"></i>
  148. </label>
  149. <label for="input-subject-icon-plus-circle">
  150. <input type="radio" <%= a.getIcon() === "fa-plus-circle" ? 'checked' : '' %> value="fa-plus-circle" name="categoryicon" id="input-subject-icon-plus-circle" />
  151. <i class="fas fa-plus-circle"></i>
  152. </label>
  153. <label for="input-subject-icon-play-circle">
  154. <input type="radio" <%= a.getIcon() === "fa-play-circle" ? 'checked' : '' %> value="fa-play-circle" name="categoryicon" id="input-subject-icon-play-circle" />
  155. <i class="fas fa-play-circle"></i>
  156. </label>
  157. <label for="input-subject-icon-phone-square">
  158. <input type="radio" <%= a.getIcon() === "fa-phone-square" ? 'checked' : '' %> value="fa-phone-square" name="categoryicon" id="input-subject-icon-phone-square" />
  159. <i class="fas fa-phone-square"></i>
  160. </label>
  161. <label for="input-subject-icon-pepper-hot">
  162. <input type="radio" <%= a.getIcon() === "fa-pepper-hot" ? 'checked' : '' %> value="fa-pepper-hot" name="categoryicon" id="input-subject-icon-pepper-hot" />
  163. <i class="fas fa-pepper-hot"></i>
  164. </label>
  165. <label for="input-subject-icon-paw">
  166. <input type="radio" <%= a.getIcon() === "fa-paw" ? 'checked' : '' %> value="fa-paw" name="categoryicon" id="input-subject-icon-paw" />
  167. <i class="fas fa-paw"></i>
  168. </label>
  169. <label for="input-subject-icon-paper-plane">
  170. <input type="radio" <%= a.getIcon() === "fa-paper-plane" ? 'checked' : '' %> value="fa-paper-plane" name="categoryicon" id="input-subject-icon-paper-plane" />
  171. <i class="fas fa-paper-plane"></i>
  172. </label>
  173. <label for="input-subject-icon-motorcycle">
  174. <input type="radio" <%= a.getIcon() === "fa-motorcycle" ? 'checked' : '' %> value="fa-motorcycle" name="categoryicon" id="input-subject-icon-motorcycle" />
  175. <i class="fas fa-motorcycle"></i>
  176. </label>
  177. <label for="input-subject-icon-mobile">
  178. <input type="radio" <%= a.getIcon() === "fa-mobile" ? 'checked' : '' %> value="fa-mobile" name="categoryicon" id="input-subject-icon-mobile" />
  179. <i class="fas fa-mobile"></i>
  180. </label>
  181. <label for="input-subject-icon-medal">
  182. <input type="radio" <%= a.getIcon() === "fa-medal" ? 'checked' : '' %> value="fa-medal" name="categoryicon" id="input-subject-icon-medal" />
  183. <i class="fas fa-medal"></i>
  184. </label>
  185. <label for="input-subject-icon-map-signs">
  186. <input type="radio" <%= a.getIcon() === "fa-map-signs" ? 'checked' : '' %> value="fa-map-signs" name="categoryicon" id="input-subject-icon-map-signs" />
  187. <i class="fas fa-map-signs"></i>
  188. </label>
  189. <label for="input-subject-icon-map-marked">
  190. <input type="radio" <%= a.getIcon() === "fa-map-marked" ? 'checked' : '' %> value="fa-map-marked" name="categoryicon" id="input-subject-icon-map-marked" />
  191. <i class="fas fa-map-marked"></i>
  192. </label>
  193. <label for="input-subject-icon-male">
  194. <input type="radio" <%= a.getIcon() === "fa-male" ? 'checked' : '' %> value="fa-male" name="categoryicon" id="input-subject-icon-male" />
  195. <i class="fas fa-male"></i>
  196. </label>
  197. <label for="input-subject-icon-female">
  198. <input type="radio" <%= a.getIcon() === "fa-female" ? 'checked' : '' %> value="fa-female" name="categoryicon" id="input-subject-icon-female" />
  199. <i class="fas fa-female"></i>
  200. </label>
  201. <label for="input-subject-icon-magic">
  202. <input type="radio" <%= a.getIcon() === "fa-magic" ? 'checked' : '' %> value="fa-magic" name="categoryicon" id="input-subject-icon-magic" />
  203. <i class="fas fa-magic"></i>
  204. </label>
  205. <label for="input-subject-icon-lock">
  206. <input type="radio" <%= a.getIcon() === "fa-lock" ? 'checked' : '' %> value="fa-lock" name="categoryicon" id="input-subject-icon-lock" />
  207. <i class="fas fa-lock"></i>
  208. </label>
  209. <label for="input-subject-icon-lock-open">
  210. <input type="radio" <%= a.getIcon() === "fa-lock-open" ? 'checked' : '' %> value="fa-lock-open" name="categoryicon" id="input-subject-icon-lock-open" />
  211. <i class="fas fa-lock-open"></i>
  212. </label>
  213. <label for="input-subject-icon-laugh">
  214. <input type="radio" <%= a.getIcon() === "fa-laugh" ? 'checked' : '' %> value="fa-laugh" name="categoryicon" id="input-subject-icon-laugh" />
  215. <i class="fas fa-laugh"></i>
  216. </label>
  217. <label for="input-subject-icon-layer-group">
  218. <input type="radio" <%= a.getIcon() === "fa-layer-group" ? 'checked' : '' %> value="fa-layer-group" name="categoryicon" id="input-subject-icon-layer-group" />
  219. <i class="fas fa-layer-group"></i>
  220. </label>
  221. <label for="input-subject-icon-key">
  222. <input type="radio" <%= a.getIcon() === "fa-key" ? 'checked' : '' %> value="fa-key" name="categoryicon" id="input-subject-icon-key" />
  223. <i class="fas fa-key"></i>
  224. </label>
  225. <label for="input-subject-icon-info-circle">
  226. <input type="radio" <%= a.getIcon() === "fa-info-circle" ? 'checked' : '' %> value="fa-info-circle" name="categoryicon" id="input-subject-icon-info-circle" />
  227. <i class="fas fa-info-circle"></i>
  228. </label>
  229. <label for="input-subject-icon-horse">
  230. <input type="radio" <%= a.getIcon() === "fa-horse" ? 'checked' : '' %> value="fa-horse" name="categoryicon" id="input-subject-icon-horse" />
  231. <i class="fas fa-horse"></i>
  232. </label>
  233. <label for="input-subject-icon-home">
  234. <input type="radio" <%= a.getIcon() === "fa-home" ? 'checked' : '' %> value="fa-home" name="categoryicon" id="input-subject-icon-home" />
  235. <i class="fas fa-home"></i>
  236. </label>
  237. <label for="input-subject-icon-hiking">
  238. <input type="radio" <%= a.getIcon() === "fa-hiking" ? 'checked' : '' %> value="fa-hiking" name="categoryicon" id="input-subject-icon-hiking" />
  239. <i class="fas fa-hiking"></i>
  240. </label>
  241. <label for="input-subject-icon-heart">
  242. <input type="radio" <%= a.getIcon() === "fa-heart" ? 'checked' : '' %> value="fa-heart" name="categoryicon" id="input-subject-icon-heart" />
  243. <i class="fas fa-heart"></i>
  244. </label>
  245. <label for="input-subject-icon-helicopter">
  246. <input type="radio" <%= a.getIcon() === "fa-helicopter" ? 'checked' : '' %> value="fa-helicopter" name="categoryicon" id="input-subject-icon-helicopter" />
  247. <i class="fas fa-helicopter"></i>
  248. </label>
  249. <label for="input-subject-icon-handshake">
  250. <input type="radio" <%= a.getIcon() === "fa-handshake" ? 'checked' : '' %> value="fa-handshake" name="categoryicon" id="input-subject-icon-handshake" />
  251. <i class="fas fa-handshake"></i>
  252. </label>
  253. <label for="input-subject-icon-hand-holding-usc">
  254. <input type="radio" <%= a.getIcon() === "fa-hand-holding-usc" ? 'checked' : '' %> value="fa-hand-holding-usc" name="categoryicon" id="input-subject-icon-hand-holding-usc" />
  255. <i class="fas fa-hand-holding-usc"></i>
  256. </label>
  257. <label for="input-subject-icon-hand-holding-medical">
  258. <input type="radio" <%= a.getIcon() === "fa-hand-holding-medical" ? 'checked' : '' %> value="fa-hand-holding-medical" name="categoryicon" id="input-subject-icon-hand-holding-medical" />
  259. <i class="fas fa-hand-holding-medical"></i>
  260. </label>
  261. <label for="input-subject-icon-hand-holding-heart">
  262. <input type="radio" <%= a.getIcon() === "fa-hand-holding-heart" ? 'checked' : '' %> value="fa-hand-holding-heart" name="categoryicon" id="input-subject-icon-hand-holding-heart" />
  263. <i class="fas fa-hand-holding-heart"></i>
  264. </label>
  265. <label for="input-subject-icon-hammer">
  266. <input type="radio" <%= a.getIcon() === "fa-hammer" ? 'checked' : '' %> value="fa-hammer" name="categoryicon" id="input-subject-icon-hammer" />
  267. <i class="fas fa-hammer"></i>
  268. </label>
  269. <label for="input-subject-icon-globe">
  270. <input type="radio" <%= a.getIcon() === "fa-globe" ? 'checked' : '' %> value="fa-globe" name="categoryicon" id="input-subject-icon-globe" />
  271. <i class="fas fa-globe"></i>
  272. </label>
  273. <label for="input-subject-icon-glass-cheers">
  274. <input type="radio" <%= a.getIcon() === "fa-glass-cheers" ? 'checked' : '' %> value="fa-glass-cheers" name="categoryicon" id="input-subject-icon-glass-cheers" />
  275. <i class="fas fa-glass-cheers"></i>
  276. </label>
  277. <label for="input-subject-icon-ghost">
  278. <input type="radio" <%= a.getIcon() === "fa-ghost" ? 'checked' : '' %> value="fa-ghost" name="categoryicon" id="input-subject-icon-ghost" />
  279. <i class="fas fa-ghost"></i>
  280. </label>
  281. <label for="input-subject-icon-futbol">
  282. <input type="radio" <%= a.getIcon() === "fa-futbol" ? 'checked' : '' %> value="fa-futbol" name="categoryicon" id="input-subject-icon-futbol" />
  283. <i class="fas fa-futbol"></i>
  284. </label>
  285. <label for="input-subject-icon-fish">
  286. <input type="radio" <%= a.getIcon() === "fa-fish" ? 'checked' : '' %> value="fa-fish" name="categoryicon" id="input-subject-icon-fish" />
  287. <i class="fas fa-fish"></i>
  288. </label>
  289. <label for="input-subject-icon-fire-alt">
  290. <input type="radio" <%= a.getIcon() === "fa-fire-alt" ? 'checked' : '' %> value="fa-fire-alt" name="categoryicon" id="input-subject-icon-fire-alt" />
  291. <i class="fas fa-fire-alt"></i>
  292. </label>
  293. <label for="input-subject-icon-fan">
  294. <input type="radio" <%= a.getIcon() === "fa-fan" ? 'checked' : '' %> value="fa-fan" name="categoryicon" id="input-subject-icon-fan" />
  295. <i class="fas fa-fan"></i>
  296. </label>
  297. <label for="input-subject-icon-eye">
  298. <input type="radio" <%= a.getIcon() === "fa-eye" ? 'checked' : '' %> value="fa-eye" name="categoryicon" id="input-subject-icon-eye" />
  299. <i class="fas fa-eye"></i>
  300. </label>
  301. <label for="input-subject-icon-exclamation-circle">
  302. <input type="radio" <%= a.getIcon() === "fa-exclamation-circle" ? 'checked' : '' %> value="fa-exclamation-circle" name="categoryicon" id="input-subject-icon-exclamation-circle" />
  303. <i class="fas fa-exclamation-circle"></i>
  304. </label>
  305. <label for="input-subject-icon-euro-sign">
  306. <input type="radio" <%= a.getIcon() === "fa-euro-sign" ? 'checked' : '' %> value="fa-euro-sign" name="categoryicon" id="input-subject-icon-euro-sign" />
  307. <i class="fas fa-euro-sign"></i>
  308. </label>
  309. <label for="input-subject-icon-envelope">
  310. <input type="radio" <%= a.getIcon() === "fa-envelope" ? 'checked' : '' %> value="fa-envelope" name="categoryicon" id="input-subject-icon-envelope" />
  311. <i class="fas fa-envelope"></i>
  312. </label>
  313. <label for="input-subject-icon-dot-circle">
  314. <input type="radio" <%= a.getIcon() === "fa-dot-circle" ? 'checked' : '' %> value="fa-dot-circle" name="categoryicon" id="input-subject-icon-dot-circle" />
  315. <i class="fas fa-dot-circle"></i>
  316. </label>
  317. <label for="input-subject-icon-dollar-sign">
  318. <input type="radio" <%= a.getIcon() === "fa-dollar-sign" ? 'checked' : '' %> value="fa-dollar-sign" name="categoryicon" id="input-subject-icon-dollar-sign" />
  319. <i class="fas fa-dollar-sign"></i>
  320. </label>
  321. <label for="input-subject-icon-dog">
  322. <input type="radio" <%= a.getIcon() === "fa-dog" ? 'checked' : '' %> value="fa-dog" name="categoryicon" id="input-subject-icon-dog" />
  323. <i class="fas fa-dog"></i>
  324. </label>
  325. <label for="input-subject-icon-directions">
  326. <input type="radio" <%= a.getIcon() === "fa-directions" ? 'checked' : '' %> value="fa-directions" name="categoryicon" id="input-subject-icon-directions" />
  327. <i class="fas fa-directions"></i>
  328. </label>
  329. <label for="input-subject-icon-concierge-bell">
  330. <input type="radio" <%= a.getIcon() === "fa-concierge-bell" ? 'checked' : '' %> value="fa-concierge-bell" name="categoryicon" id="input-subject-icon-concierge-bell" />
  331. <i class="fas fa-concierge-bell"></i>
  332. </label>
  333. <label for="input-subject-icon-compass">
  334. <input type="radio" <%= a.getIcon() === "fa-compass" ? 'checked' : '' %> value="fa-compass" name="categoryicon" id="input-subject-icon-compass" />
  335. <i class="fas fa-compass"></i>
  336. </label>
  337. <label for="input-subject-icon-comments">
  338. <input type="radio" <%= a.getIcon() === "fa-comments" ? 'checked' : '' %> value="fa-comments" name="categoryicon" id="input-subject-icon-comments" />
  339. <i class="fas fa-comments"></i>
  340. </label>
  341. <label for="input-subject-icon-coffee">
  342. <input type="radio" <%= a.getIcon() === "fa-coffee" ? 'checked' : '' %> value="fa-coffee" name="categoryicon" id="input-subject-icon-coffee" />
  343. <i class="fas fa-coffee"></i>
  344. </label>
  345. <label for="input-subject-icon-cloud">
  346. <input type="radio" <%= a.getIcon() === "fa-cloud" ? 'checked' : '' %> value="fa-cloud" name="categoryicon" id="input-subject-icon-cloud" />
  347. <i class="fas fa-cloud"></i>
  348. </label>
  349. <label for="input-subject-icon-child">
  350. <input type="radio" <%= a.getIcon() === "fa-child" ? 'checked' : '' %> value="fa-child" name="categoryicon" id="input-subject-icon-child" />
  351. <i class="fas fa-child"></i>
  352. </label>
  353. <label for="input-subject-icon-cat">
  354. <input type="radio" <%= a.getIcon() === "fa-cat" ? 'checked' : '' %> value="fa-cat" name="categoryicon" id="input-subject-icon-cat" />
  355. <i class="fas fa-cat"></i>
  356. </label>
  357. <label for="input-subject-icon-certificate">
  358. <input type="radio" <%= a.getIcon() === "fa-certificate" ? 'checked' : '' %> value="fa-certificate" name="categoryicon" id="input-subject-icon-certificate" />
  359. <i class="fas fa-certificate"></i>
  360. </label>
  361. <label for="input-subject-icon-car">
  362. <input type="radio" <%= a.getIcon() === "fa-car" ? 'checked' : '' %> value="fa-car" name="categoryicon" id="input-subject-icon-car" />
  363. <i class="fas fa-car"></i>
  364. </label>
  365. <label for="input-subject-icon-calendar-alt">
  366. <input type="radio" <%= a.getIcon() === "fa-calendar-alt" ? 'checked' : '' %> value="fa-calendar-alt" name="categoryicon" id="input-subject-icon-calendar-alt" />
  367. <i class="fas fa-calendar-alt"></i>
  368. </label>
  369. <label for="input-subject-icon-bus">
  370. <input type="radio" <%= a.getIcon() === "fa-bus" ? 'checked' : '' %> value="fa-bus" name="categoryicon" id="input-subject-icon-bus" />
  371. <i class="fas fa-bus"></i>
  372. </label>
  373. <label for="input-subject-icon-bullhorn">
  374. <input type="radio" <%= a.getIcon() === "fa-bullhorn" ? 'checked' : '' %> value="fa-bullhorn" name="categoryicon" id="input-subject-icon-bullhorn" />
  375. <i class="fas fa-bullhorn"></i>
  376. </label>
  377. <label for="input-subject-icon-bookmark">
  378. <input type="radio" <%= a.getIcon() === "fa-bookmark" ? 'checked' : '' %> value="fa-bookmark" name="categoryicon" id="input-subject-icon-bookmark" />
  379. <i class="fas fa-bookmark"></i>
  380. </label>
  381. <label for="input-subject-icon-bolt">
  382. <input type="radio" <%= a.getIcon() === "fa-bolt" ? 'checked' : '' %> value="fa-bolt" name="categoryicon" id="input-subject-icon-bolt" />
  383. <i class="fas fa-bolt"></i>
  384. </label>
  385. <label for="input-subject-icon-biking">
  386. <input type="radio" <%= a.getIcon() === "fa-biking" ? 'checked' : '' %> value="fa-biking" name="categoryicon" id="input-subject-icon-biking" />
  387. <i class="fas fa-biking"></i>
  388. </label>
  389. <label for="input-subject-icon-baby-carriage">
  390. <input type="radio" <%= a.getIcon() === "fa-baby-carriage" ? 'checked' : '' %> value="fa-baby-carriage" name="categoryicon" id="input-subject-icon-baby-carriage" />
  391. <i class="fas fa-baby-carriage"></i>
  392. </label>
  393. <label for="input-subject-icon-award">
  394. <input type="radio" <%= a.getIcon() === "fa-award" ? 'checked' : '' %> value="fa-award" name="categoryicon" id="input-subject-icon-award" />
  395. <i class="fas fa-award"></i>
  396. </label>
  397. <label for="input-subject-icon-arrow-alt-circle-up">
  398. <input type="radio" <%= a.getIcon() === "fa-arrow-alt-circle-up" ? 'checked' : '' %> value="fa-arrow-alt-circle-up" name="categoryicon" id="input-subject-icon-arrow-alt-circle-up" />
  399. <i class="fas fa-arrow-alt-circle-up"></i>
  400. </label>
  401. <label for="input-subject-icon-arrow-alt-circle-down">
  402. <input type="radio" <%= a.getIcon() === "fa-arrow-alt-circle-down" ? 'checked' : '' %> value="fa-arrow-alt-circle-down" name="categoryicon" id="input-subject-icon-arrow-alt-circle-down" />
  403. <i class="fas fa-arrow-alt-circle-down"></i>
  404. </label>
  405. <label for="input-subject-icon-arrow-alt-circle-right">
  406. <input type="radio" <%= a.getIcon() === "fa-arrow-alt-circle-right" ? 'checked' : '' %> value="fa-arrow-alt-circle-right" name="categoryicon" id="input-subject-icon-arrow-alt-circle-right" />
  407. <i class="fas fa-arrow-alt-circle-right"></i>
  408. </label>
  409. <label for="input-subject-icon-arrow-alt-circle-left">
  410. <input type="radio" <%= a.getIcon() === "fa-arrow-alt-circle-left" ? 'checked' : '' %> value="fa-arrow-alt-circle-left" name="categoryicon" id="input-subject-icon-arrow-alt-circle-left" />
  411. <i class="fas fa-arrow-alt-circle-left"></i>
  412. </label>
  413. </div>
  414. </div>
  415. </div>
  416. </div>
  417. </div>
  418. <div class="form-group">
  419. <div class="form-row">
  420. <div class="col">
  421. <label for="input-subject">
  422. <%= _lc( 'APPOINTMENT_SUBJECT' ) %>
  423. </label>
  424. <input type="text"
  425. minlength="3"
  426. maxlength="255"
  427. name="subject"
  428. data-id="input-subject"
  429. id="input-subject"
  430. class="form-control"
  431. value="<%= a.getSubject() %>"
  432. autocomplete="off"
  433. required />
  434. <div class="invalid-feedback">
  435. <%= _lc( 'VALIDATION_INPUT_REQUIRED' ) %>
  436. </div>
  437. </div>
  438. </div>
  439. </div>
  440. <% var categories = mTeam.getAdminCourseCategoriesForProfile( currentProfile ); %>
  441. <div class="form-group">
  442. <div class="form-row">
  443. <div class="col">
  444. <label for="select-category-<%= mTeam.getId() %>">
  445. <%= _lc( 'APPOINTMENT_CATEGORY' ) %> - <small><a href="/#/course/categories/<%= mTeam.getId() %>" style="text-decoration: underline">Zur Kursverwaltung</a></small>
  446. </label>
  447. <select class="form-control"
  448. name="category"
  449. multiple="multiple"
  450. required="required"
  451. size="<%= ~~Math.min( 4, categories.length ) %>"
  452. data-id="select-category-<%= mTeam.getId() %>"
  453. id="select-category-<%= mTeam.getId() %>">
  454. <% var categoryIds = a.getCategoryIds(); %>
  455. <% for ( var ci = 0; ci < categories.length; ci++ ) { %>
  456. <option value="<%= categories[ ci ].id %>"
  457. <%= ( -1 < categoryIds.indexOf( categories[ ci ].id ) ) ? 'selected="selected"' : '' %>
  458. ><%= categories[ ci ].name %></option>
  459. <% } %>
  460. </select>
  461. <div class="invalid-feedback">
  462. <%= _lc( 'VALIDATION_SELECT_AT_LEAST_ONE_CATEGORY' ) %>
  463. </div>
  464. </div>
  465. </div>
  466. <%=raw app.core.View.getTemplate( 'gui-form-help', { help : _lc( 'FORMHELP_APPOINTMENT_CATEGORY' ) } ) %>
  467. <% if ( 0 === categories.length ) { %>
  468. <div class="alert alert-warning" role="alert">
  469. <%= _lc( 'APPOINTMENT_CATEGORIES_MISSING_FOR_ADMIN' ) %>
  470. </div>
  471. <% } %>
  472. </div>
  473. <div class="form-group">
  474. <label><%= _lc( 'APPOINTMENT_VISIBLE_FOR' ) %></label><br />
  475. <div class="custom-control custom-radio custom-control-inline">
  476. <input type="radio"
  477. id="input-visibility-all"
  478. data-id="input-visibility-all"
  479. name="input-visibility"
  480. value="visibility-all"
  481. class="custom-control-input"
  482. <%= a.getVisibility() === 'ALL' ? 'checked="checked"' : '' %>
  483. >
  484. <label class="custom-control-label"
  485. for="input-visibility-all"><%= _lc( 'APPOINTMENT_VISIBLE_FOR_ALL' ) %></label>
  486. </div>
  487. <div class="custom-control custom-radio custom-control-inline">
  488. <input type="radio"
  489. id="input-visibility-category_only"
  490. data-id="input-visibility-category_only"
  491. name="input-visibility"
  492. value="visibility-category-only"
  493. class="custom-control-input"
  494. <%= a.getVisibility() === 'CATEGORIES' ? 'checked="checked"' : '' %>
  495. >
  496. <label class="custom-control-label"
  497. for="input-visibility-category_only"><%= _lc( 'APPOINTMENT_VISIBLE_FOR_CATEGORY_ONLY' ) %></label>
  498. </div>
  499. <div data-id="max-bookers" style="display: none">
  500. <small>
  501. <em><i class="fas fa-info-circle"></i> <%= _lc( 'MAX_BOOKERS' ) %>: <span data-id="span-max-bookers">0</span></em>
  502. </small>
  503. </div>
  504. </div>
  505. <div class="form-group">
  506. <div class="form-row">
  507. <div class="col">
  508. <label for="input-start-date">
  509. <%= _lc( 'APPOINTMENT_START_DATE' ) %>
  510. </label>
  511. <input type="date"
  512. id="input-start-date"
  513. data-id="input-start-date"
  514. name="start-date"
  515. class="form-control"
  516. value="<%= mStart.format( 'YYYY-MM-DD' ) %>"
  517. required />
  518. <div class="invalid-feedback">
  519. <%= _lc( 'VALIDATION_APPOINTMENT_STARTTIME_CANNOT_BE_IN_PAST' ) %>
  520. </div>
  521. </div>
  522. <div class="col">
  523. <label for="input-start-time">
  524. <%= _lc( 'APPOINTMENT_START_TIME' ) %>
  525. </label>
  526. <input type="time"
  527. id="input-start-time"
  528. data-id="input-start-time"
  529. name="start-time"
  530. value="<%= mStart.format( 'HH:mm' ) %>"
  531. class="form-control"
  532. required />
  533. </div>
  534. </div>
  535. </div>
  536. <div class="form-group">
  537. <div class="form-row">
  538. <div class="col">
  539. <label for="input-end-date">
  540. <%= _lc( 'APPOINTMENT_END_DATE' ) %>
  541. </label>
  542. <input type="date"
  543. id="input-end-date"
  544. data-id="input-end-date"
  545. name="end-date"
  546. class="form-control"
  547. value="<%= mEnd.format( 'YYYY-MM-DD' ) %>"
  548. required />
  549. <div class="invalid-feedback">
  550. <%= _lc( 'VALIDATION_APPOINTMENT_ENDTIME_CANNOT_BE_BEFORE_STARTTIME' ) %>
  551. </div>
  552. </div>
  553. <div class="col">
  554. <label for="input-end-time">
  555. <%= _lc( 'APPOINTMENT_END_TIME' ) %>
  556. </label>
  557. <input type="time"
  558. id="input-end-time"
  559. data-id="input-end-time"
  560. name="end-time"
  561. value="<%= mEnd.format( 'HH:mm' ) %>"
  562. class="form-control"
  563. required />
  564. </div>
  565. </div>
  566. </div>
  567. <div class="form-group">
  568. <div class="form-row">
  569. <div class="col">
  570. <label for="input-deadline-date">
  571. <%= _lc( 'APPOINTMENT_DEADLINE_DATE' ) %>
  572. </label>
  573. <input type="date"
  574. id="input-deadline-date"
  575. data-id="input-deadline-date"
  576. name="deadline-date"
  577. class="form-control"
  578. value="<%= mDeadline.format( 'YYYY-MM-DD' ) %>"
  579. required />
  580. <div class="invalid-feedback">
  581. <%= _lc( 'VALIDATION_APPOINTMENT_DEADLINE_CANNOT_BE_AFTER_STARTTIME' ) %>
  582. </div>
  583. </div>
  584. <div class="col">
  585. <label for="input-end-time">
  586. <%= _lc( 'APPOINTMENT_DEADLINE_TIME' ) %>
  587. </label>
  588. <input type="time"
  589. id="input-deadline-time"
  590. data-id="input-deadline-time"
  591. name="deadline-time"
  592. value="<%= mDeadline.format( 'HH:mm' ) %>"
  593. class="form-control"
  594. required />
  595. </div>
  596. </div>
  597. <%=raw app.core.View.getTemplate( 'gui-form-help', { help : _lc( 'FORMHELP_APPOINTMENT_DEADLINE' ) } ) %>
  598. </div>
  599. <div class="form-group">
  600. <div class="form-row">
  601. <div class="col">
  602. <label for="input-deadline-reject-date">
  603. <%= _lc( 'APPOINTMENT_DEADLINE_REJECT_DATE' ) %>
  604. </label>
  605. <input type="date"
  606. id="input-deadline-reject-date"
  607. data-id="input-deadline-reject-date"
  608. name="deadline-date"
  609. class="form-control"
  610. value="<%= mReject.format( 'YYYY-MM-DD' ) %>"
  611. required />
  612. <div class="invalid-feedback">
  613. <%= _lc( 'GENERAL_VALIDATION_REQUIRED' ) %>
  614. </div>
  615. </div>
  616. <div class="col">
  617. <label for="input-deadline-reject-time">
  618. <%= _lc( 'APPOINTMENT_DEADLINE_REJECT_TIME' ) %>
  619. </label>
  620. <input type="time"
  621. id="input-deadline-reject-time"
  622. data-id="input-deadline-reject-time"
  623. name="deadline-time"
  624. value="<%= mReject.format( 'HH:mm' ) %>"
  625. class="form-control"
  626. required />
  627. <div class="invalid-feedback">
  628. <%= _lc( 'GENERAL_VALIDATION_REQUIRED' ) %>
  629. </div>
  630. </div>
  631. </div>
  632. <%=raw app.core.View.getTemplate( 'gui-form-help', { help : _lc( 'FORMHELP_APPOINTMENT_DEADLINE_REJECT' ) } ) %>
  633. </div>
  634. <div class="form-group">
  635. <label for="input-location">
  636. <%= _lc( 'APPOINTMENT_LOCATION' ) %>
  637. </label>
  638. <input type="text"
  639. maxlength="256"
  640. data-id="input-location"
  641. id="input-location"
  642. autocomplete="off"
  643. value="<%= a.getLocation() ? a.getLocation() : '' %>"
  644. class="form-control" />
  645. </div>
  646. <div class="form-group">
  647. <div class="form-row">
  648. <!--
  649. <div class="col">
  650. <label for="select-min-attendee">
  651. <%= _lc( 'APPOINTMENT_MIN_ATTENDEE' ) %>
  652. </label>
  653. <select class="form-control"
  654. name="min-attendee"
  655. data-id="select-min-attendee"
  656. id="select-min-attendee">
  657. <option value="0"><%= _lc( 'DOESNT_MATTER' ) %></option>
  658. <% for ( var ma = 1; ma <= 500; ma++ ) { %>
  659. <option value="<%= ma %>"
  660. <%= ( a.getMinAttendees() == ma ) ? 'selected="selected"' : '' %>>
  661. <%= ma %>
  662. </option>
  663. <% } %>
  664. </select>
  665. <div class="invalid-feedback">
  666. <%= _lc( 'VALIDATION_APPOINTMENT_MIN_ATTENDEE' ) %>
  667. </div>
  668. </div>
  669. -->
  670. <div class="col">
  671. <label for="select-max-attendee">
  672. <%= _lc( 'APPOINTMENT_MAX_ATTENDEE' ) %>
  673. </label>
  674. <select class="form-control"
  675. name="max-attendee"
  676. data-id="select-max-attendee"
  677. id="select-max-attendee">
  678. <option value="0"><%= _lc( 'DOESNT_MATTER' ) %></option>
  679. <% for ( var ma = 1; ma <= 500; ma++ ) { %>
  680. <option value="<%= ma %>"
  681. <%= ( a.getMaxAttendees() == ma ) ? 'selected="selected"' : '' %> >
  682. <%= ma %>
  683. </option>
  684. <% } %>
  685. </select>
  686. <% if ( 0 < a.getNumAttendeesAccepted() || 0 < a.getNumAttendeesDeclined() ) { %>
  687. <p>
  688. <small><%= _lc( 'UPDATE_APPOINTMENT_CURRENT_ATTENDEE_STATUS', [ a.getNumAttendeesAccepted(), a.getNumAttendeesWaiting() ] ) %></small>
  689. </p>
  690. <% } %>
  691. <%=raw app.core.View.getTemplate( 'gui-form-help', { help : _lc( 'FORMHELP_APPOINTMENT_MAX_ATTENDEES' ) } ) %>
  692. </div>
  693. </div>
  694. </div>
  695. <div class="form-group">
  696. <label for="textarea-comment">
  697. <%= _lc( 'APPOINTMENT_ADDITIONAL_NOTES' ) %>
  698. </label>
  699. <textarea id="textarea-comment"
  700. data-id="textarea-comment"
  701. class="form-control"><%= a.getComment() ? a.getComment() : '' %></textarea>
  702. </div>
  703. <div class="form-group">
  704. <label for="input-location">
  705. Abrechnungsfaktor
  706. </label>
  707. <input type="number"
  708. min="0"
  709. data-id="input-price-factor"
  710. id="input-price-factor"
  711. value="<%= a.getPriceFactor() %>"
  712. step="0.5"
  713. class="form-control" />
  714. </div>
  715. <% if ( 0 < a.getNumAttendeesAccepted() || 0 < a.getNumAttendeesDeclined() ) { %>
  716. <div class="form-group">
  717. <div class="custom-control custom-checkbox my-1 mr-sm-2">
  718. <input type="checkbox"
  719. name="reset-attendee-list"
  720. data-id="checkbox-reset-attendee-list"
  721. id="checkbox-reset-attendee-list"
  722. class="custom-control-input"
  723. >
  724. <label class="custom-control-label"
  725. for="checkbox-reset-attendee-list"><%= _lc( 'RESET_ATTENDEE_LIST' ) %></label>
  726. <p>
  727. <small><%= _lc( 'RESET_ATTENDEE_LIST_INFO' ) %></small>
  728. </p>
  729. </div>
  730. </div>
  731. <% } %>
  732. </div>
  733. <div class="card-footer">
  734. <a href="#/appointment/<%= a.getId() %>"
  735. class="btn btn-sm btn-secondary">
  736. <%= _lc( 'BTN_CANCEL' ) %>
  737. </a>
  738. <button type="button"
  739. data-id="btn-save"
  740. class="btn btn-sm btn-primary">
  741. <%= _lc( 'BTN_SAVE' ) %>
  742. </button>
  743. </div>
  744. </form>
  745. </div>
  746. </div>
  747. </div>