manage_card.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. {% extends "base.html" %}
  2. {% block content %}
  3. <div class='row'>
  4. <div class='col-6'>
  5. <h1 class="mt-4">Manage Card</h1>
  6. </div>
  7. <div class='col-6'>
  8. <h2 class='mt-4' id='ui.manage_card.message'>...</h2>
  9. </div>
  10. </div>
  11. <div class='container'>
  12. <!-- container row -->
  13. <div class='row'>
  14. <!-- col-10 to give a padding on the side -->
  15. <div class='col-10'>
  16. <!-- row to contain both the card area and the user info area -->
  17. <div class='row'>
  18. <!-- half of the row is devoted to card specific operations -->
  19. <div class='col-6'>
  20. <div class='row row-shade rowpop'>
  21. <div class='col-4'> CardId </div>
  22. <div class='col-6'>
  23. <input id='ui.manage_card.logical_card_id' type='text' class='form-control form-control-sm' placeholder=''>
  24. </div>
  25. <div class='col-2'>
  26. <button id='ui.manage_card.lookup_logical_card_id' type='button' class='btn btn-secondary btn-sm'>Find</button>
  27. </div>
  28. </div>
  29. <div class='row rowpop'>
  30. <div class='col-4'> Group </div>
  31. <div class='col-6'>
  32. <div class='input-group input-group-sm mb-3'>
  33. <select class='custom-select'>
  34. {% for g in groups %}
  35. <option id='{{ g.group_id }}'>{{ g.group_name }}</option>
  36. {% endfor %}
  37. </select>
  38. </div>
  39. </div>
  40. <div class='col-2'> </div>
  41. </div>
  42. <div class='row row-shade rowpop'>
  43. <div class='col-4'> MagStripe </div>
  44. <div class='col-6'>
  45. <input id='ui.manage_card.mag_token' type='text' class='form-control form-control-sm' placeholder=''>
  46. </div>
  47. <div class='col-2' >
  48. <button id='ui.manage_card.lookup_mag_token' type='button' class='btn btn-secondary btn-sm '>Find</button>
  49. </div>
  50. </div>
  51. <div class='row rowpop'>
  52. <div class='col-4'> RFID </div>
  53. <div class='col-6'>
  54. <input id='ui.manage_card.rfid_token' type='text' class='form-control form-control-sm' placeholder=''>
  55. </div>
  56. <div class='col-2 '>
  57. <button id='ui.manage_card.lookup_rfid_token' type='button' class='btn btn-secondary btn-sm'>Find</button>
  58. </div>
  59. </div>
  60. <div class='row row-shade rowpop'>
  61. <div class='col-4'> Active Pass </div>
  62. <div class='col-6'> ... </div>
  63. <div class='col-2'>
  64. <button id='ui.manage_card.lookup_pass' type='button' class='btn btn-secondary btn-sm'>Find</button>
  65. </div>
  66. </div>
  67. <div class='row rowpop'>
  68. <div class='col-4'> Comment </div>
  69. <div class='col-6'> ... </div>
  70. <div class='col-2'> </div>
  71. </div>
  72. <div class='row row-shade rowpop'>
  73. <div class='col-4'> Other ID </div>
  74. <div class='col-6'>
  75. <input id='ui.manage_card.other_id' type='text' class='form-control form-control-sm' placeholder=''>
  76. </div>
  77. <div class='col-2'>
  78. <button id='ui.manage_card.other_find' type='button' class='btn btn-secondary btn-sm'>Find</button>
  79. </div>
  80. </div>
  81. <div class='row rowpop'>
  82. <div class='col-4'> </div>
  83. <div class='col-6'> </div>
  84. <div class='col-2'> </div>
  85. </div>
  86. </div>
  87. <div class='col-1'> </div>
  88. <!-- and the other half is devoted to user specific information (associated with the card) -->
  89. <div class='col-5'>
  90. <input id='ui.manage_card.userid' type='hidden' >
  91. <div class='row row-shade rowpop'>
  92. <div class='col-5'> UserId</div>
  93. <div id='ui.manage_card.disp_userid' class='col-7'> </div>
  94. </div>
  95. <div class='row rowpop'>
  96. <div class='col-5'> Username </div>
  97. <div id='ui.manage_card.username' class='col-7'> </div>
  98. </div>
  99. <div class='row row-shade rowpop'>
  100. <div class='col-5'> First Name </div>
  101. <div id='ui.manage_card.first_name' class='col-7'> </div>
  102. </div>
  103. <div class='row rowpop'>
  104. <div class='col-5'> Last Name </div>
  105. <div id='ui.manage_card.last_name' class='col-7'> </div>
  106. </div>
  107. <div class='row row-shade rowpop'>
  108. <div class='col-5'> E-Mail </div>
  109. <div id='ui.manage_card.email' class='col-7'> </div>
  110. </div>
  111. <div class='row rowpop'>
  112. <div class='col-5'> Phone </div>
  113. <div id='ui.manage_card.phone' class='col-7'> </div>
  114. </div>
  115. <div class='row row-shade rowpop'>
  116. <div class='col-5'> Address </div>
  117. <div id='ui.manage_card.address' class='col-7'> </div>
  118. </div>
  119. <div class='row rowpop'>
  120. <div class='col-5'> City </div>
  121. <div id='ui.manage_card.city' class='col-7'> </div>
  122. </div>
  123. <div class='row row-shade rowpop'>
  124. <div class='col-5'> State </div>
  125. <div id='ui.manage_card.state' class='col-7'> </div>
  126. </div>
  127. <div class='row rowpop'>
  128. <div class='col-5'> ZIP </div>
  129. <div id='ui.manage_card.zip' class='col-7'> </div>
  130. </div>
  131. <div class='row row-shade rowpop'>
  132. <div class='col-5'> Group </div>
  133. <div id='ui.manage_card.group' class='col-7'> </div>
  134. </div>
  135. <br>
  136. <div class='row'>
  137. <div class='col-5'>
  138. <button id='ui.manage_card.manage_user' type='button' class='btn btn-secondary btn-sm'>Manage User</button>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. <br>
  144. <br>
  145. <br>
  146. <!-- passes selection area where passes can be added to the card -->
  147. <div class='row'>
  148. <div class='col-3'>
  149. <h2> Passes </h2>
  150. </div>
  151. <div class='col-6'></div>
  152. <div class='col-3'>
  153. <button id='ui.manage_card.reissue' type='button' class='btn btn-secondary btn-sm'>Re-Issue Card</button>
  154. </div>
  155. </div>
  156. <div class='row row-shade rowpop'>
  157. <div class='col-2'> Multi-Ride </div>
  158. <div class='col-2'>
  159. <div class='input-group input-group-sm mb-3'>
  160. <select id='ui.manage_card.pass_nride_type' class='custom-select'>
  161. <option value='NRIDE'>Adult</option>
  162. <option value='NRIDEH'>Half</option>
  163. </select>
  164. </div>
  165. </div>
  166. <div class='col-2'>
  167. <div class='input-group input-group-sm mb-3'>
  168. <select id='ui.manage_card.pass_nride_region' class='custom-select'>
  169. <option value='ZON0'>Region 0</option>
  170. <option value='ZON1'>Region 1</option>
  171. </select>
  172. </div>
  173. </div>
  174. <div class='col-2'>
  175. <div class='input-group input-group-sm mb-3'>
  176. <select id='ui.manage_card.pass_nride_orig' class='custom-select'>
  177. <option value='1'>1</option>
  178. <option value='2'>2</option>
  179. <option value='5'>5</option>
  180. <option value='10'>10</option>
  181. <option value='25'>25</option>
  182. </select>
  183. </div>
  184. </div>
  185. <div class='col-3'>
  186. <div class='input-group input-group-sm mb-3 custom-h'>
  187. <div class='input-group-prepend'>
  188. <span class='input-group-text'>Other</span>
  189. </div>
  190. <input id='ui.manage_card.pass_nride_other' type='text' class='form-control form-control-sm' placeholder=''>
  191. </div>
  192. </div>
  193. <div class='col-1'>
  194. <button id='ui.manage_card.add_pass_nride' type='button' class='btn btn-secondary btn-sm'>Add</button>
  195. </div>
  196. </div>
  197. <div class='row rowpop'>
  198. <div class='col-2'> Multi-Day </div>
  199. <div class='col-2'>
  200. <div class='input-group input-group-sm mb-3'>
  201. <select id='ui.manage_card.pass_nday_type' class='custom-select'>
  202. <option value='NDAY'>Adult</option>
  203. <option value='NDAYH'>Half</option>
  204. </select>
  205. </div>
  206. </div>
  207. <div class='col-2'>
  208. <div class='input-group input-group-sm mb-3'>
  209. <select id='ui.manage_card.pass_nday_region' class='custom-select'>
  210. <option value='ZON0'>Region 0</option>
  211. <option value='ZON1'>Region 1</option>
  212. </select>
  213. </div>
  214. </div>
  215. <div class='col-2'>
  216. <div class='input-group input-group-sm mb-3'>
  217. <select id='ui.manage_card.pass_nday_orig' class='custom-select'>
  218. <option value='1'>1</option>
  219. <option value='2'>2</option>
  220. <option value='5'>5</option>
  221. <option value='10'>10</option>
  222. <option value='25'>25</option>
  223. </select>
  224. </div>
  225. </div>
  226. <div class='col-3'>
  227. <div class='input-group input-group-sm mb-3 custom-h'>
  228. <div class='input-group-prepend'>
  229. <span class='input-group-text'>Other</span>
  230. </div>
  231. <input id='ui.manage_card.pass_nday_other' type='text' class='form-control form-control-sm' placeholder=''>
  232. </div>
  233. </div>
  234. <div class='col-1'>
  235. <button id='ui.manage_card.add_pass_nday' type='button' class='btn btn-secondary btn-sm'>Add</button>
  236. </div>
  237. </div>
  238. <div class='row row-shade rowpop'>
  239. <div class='col-2'> Other </div>
  240. <div class='col-9'>
  241. <div class='input-group input-group-sm mb-3'>
  242. <select id='ui.manage_card.pass_other' class='custom-select'>
  243. {% for rc in cache["other_pass"] %}
  244. <option id='{{ rc.rulename }}'>{{ rc.rulename }}</option>
  245. {% endfor %}
  246. </select>
  247. </div>
  248. </div>
  249. <div class='col-1'>
  250. <button id='ui.manage_card.add_pass_other' type='button' class='btn btn-secondary btn-sm'>Add</button>
  251. </div>
  252. </div>
  253. <div class='row rowpop'>
  254. <hr>
  255. </div>
  256. <br>
  257. <!-- pre-existing pass management where they can be re-ordered and deleted -->
  258. <div class='row'>
  259. <div id='ui.manage_card.list_passes_buttons' class='col-12'>
  260. <div class='row row-shade rowpop'>
  261. <div class='col-3'>
  262. <button type='button' class='btn btn-secondary btn-sm' id='ui.manage_card.toggle_pass_all'>check / uncheck all</button>
  263. </div>
  264. <div class='col-7'> </div>
  265. <div class='col-2'> <button type='button' class='btn btn-secondary btn-sm' id='ui.manage_card.delete_pass'>delete</button> </div>
  266. </div>
  267. </div>
  268. <div id='ui.manage_card.list_passes' class='col-12'>
  269. <div class='row row-shade rowpop' >
  270. <div class='col-1'> Type </div>
  271. <div class='col-1'> Original </div>
  272. <div class='col-1'> Remain </div>
  273. <div class='col-2'> Exp. </div>
  274. <div class='col-2'> Issued </div>
  275. <div class='col-2'> First Used </div>
  276. <div class='col-3'> Last Used </div>
  277. </div>
  278. <!--
  279. <div class='row rowpop' >
  280. <div class='col-1'> NRide </div>
  281. <div class='col-1'> 5 </div>
  282. <div class='col-1'> 3 </div>
  283. <div class='col-2'> - </div>
  284. <div class='col-2'> 2020-01-20 </div>
  285. <div class='col-2'> 2020-01-20 </div>
  286. <div class='col-3'> 2020-01-25 13:10 </div>
  287. </div>
  288. <div class='row rowpop' >
  289. <div class='col-1'> NDay </div>
  290. <div class='col-1'> 10 </div>
  291. <div class='col-1'> 2 </div>
  292. <div class='col-2'> 2020-04-01 </div>
  293. <div class='col-2'> 2020-01-20 </div>
  294. <div class='col-2'> 2020-01-20 </div>
  295. <div class='col-3'> 2020-01-25 13:10 </div>
  296. </div>
  297. -->
  298. </div>
  299. <!-- end of col-12 -->
  300. </div>
  301. <!-- side padding -->
  302. <div class='col-2'> </div>
  303. <!-- end of encasing container row -->
  304. </div>
  305. <!-- container -->
  306. </div>
  307. {% endblock %}