Consolidated ASP Classic MVC framework from best components
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

285 lignes
11KB

  1. <%
  2. ' HouseholderNameController - CRUD controller for HouseholderNames
  3. ' NorthTerritory app
  4. '
  5. ' Dependencies (all included via HouseholdController which loads first):
  6. ' - app/models/POBO_HouseholderNames.asp
  7. ' - app/models/HouseholderNamesRepository.asp
  8. ' - app/models/POBO_Households.asp
  9. ' - app/models/HouseholdsRepository.asp
  10. Class HouseholderNameController_Class
  11. Private m_useLayout
  12. Private m_title
  13. ' Public properties for views
  14. Public householderNames ' LinkedList for Index
  15. Public householderName ' Single POBO for Show/Edit
  16. Public household ' Parent household
  17. Public householdsList ' For dropdown
  18. ' Pagination properties
  19. Public currentPage
  20. Public pageCount
  21. Public recordCount
  22. Public perPage
  23. Public searchTerm
  24. Public filterHouseholdId
  25. Private Sub Class_Initialize()
  26. m_useLayout = True
  27. m_title = "Householder Names"
  28. currentPage = 1
  29. pageCount = 0
  30. recordCount = 0
  31. perPage = 25
  32. searchTerm = ""
  33. filterHouseholdId = 0
  34. End Sub
  35. Public Property Get useLayout
  36. useLayout = m_useLayout
  37. End Property
  38. Public Property Let useLayout(v)
  39. m_useLayout = v
  40. End Property
  41. Public Property Get Title
  42. Title = m_title
  43. End Property
  44. Public Property Let Title(v)
  45. m_title = v
  46. End Property
  47. '-------------------------------------------------------------------------------------------------------------------
  48. ' Index - List all householder names with pagination, search, and household filter
  49. '-------------------------------------------------------------------------------------------------------------------
  50. Public Sub Index()
  51. ' Get pagination params
  52. If Request.QueryString("page") <> "" And IsNumeric(Request.QueryString("page")) Then
  53. currentPage = CInt(Request.QueryString("page"))
  54. If currentPage < 1 Then currentPage = 1
  55. End If
  56. ' Get search param
  57. searchTerm = Trim(Request.QueryString("q") & "")
  58. ' Get household filter
  59. If Request.QueryString("household") <> "" And IsNumeric(Request.QueryString("household")) Then
  60. filterHouseholdId = CLng(Request.QueryString("household"))
  61. End If
  62. ' Fetch householder names with pagination
  63. If searchTerm <> "" Then
  64. ' Search in Name column
  65. Set householderNames = HouseholderNamesRepository.SearchTablePaged( _
  66. Array("Name"), _
  67. searchTerm, _
  68. Empty, _
  69. perPage, _
  70. currentPage, _
  71. pageCount, _
  72. recordCount _
  73. )
  74. ElseIf filterHouseholdId > 0 Then
  75. ' Filter by household
  76. Set householderNames = HouseholderNamesRepository.FindPaged( _
  77. Array("HouseholdId", filterHouseholdId), _
  78. Empty, _
  79. perPage, _
  80. currentPage, _
  81. pageCount, _
  82. recordCount _
  83. )
  84. ' Load parent household for context
  85. On Error Resume Next
  86. Set household = HouseholdsRepository.FindByID(filterHouseholdId)
  87. On Error GoTo 0
  88. Else
  89. Set householderNames = HouseholderNamesRepository.FindPaged( _
  90. Empty, _
  91. Empty, _
  92. perPage, _
  93. currentPage, _
  94. pageCount, _
  95. recordCount _
  96. )
  97. End If
  98. %> <!--#include file="../views/HouseholderName/index.asp" --> <%
  99. End Sub
  100. '-------------------------------------------------------------------------------------------------------------------
  101. ' Show - Display a single householder name
  102. '-------------------------------------------------------------------------------------------------------------------
  103. Public Sub Show(id)
  104. On Error Resume Next
  105. Set householderName = HouseholderNamesRepository.FindByID(id)
  106. If Err.Number <> 0 Or householderName Is Nothing Then
  107. On Error GoTo 0
  108. Flash().Error = "Householder name not found."
  109. Response.Redirect "/householder-names"
  110. Exit Sub
  111. End If
  112. On Error GoTo 0
  113. ' Load parent household
  114. On Error Resume Next
  115. Set household = HouseholdsRepository.FindByID(householderName.HouseholdId)
  116. On Error GoTo 0
  117. %> <!--#include file="../views/HouseholderName/show.asp" --> <%
  118. End Sub
  119. '-------------------------------------------------------------------------------------------------------------------
  120. ' Create - Display form for new householder name
  121. '-------------------------------------------------------------------------------------------------------------------
  122. Public Sub Create()
  123. Set householderName = New POBO_HouseholderNames
  124. householderName.Created = Now()
  125. householderName.LetterReturned = 0
  126. ' Pre-fill household if passed in query string
  127. If Request.QueryString("household") <> "" And IsNumeric(Request.QueryString("household")) Then
  128. householderName.HouseholdId = CLng(Request.QueryString("household"))
  129. ' Load parent household for context
  130. On Error Resume Next
  131. Set household = HouseholdsRepository.FindByID(householderName.HouseholdId)
  132. On Error GoTo 0
  133. End If
  134. %> <!--#include file="../views/HouseholderName/create.asp" --> <%
  135. End Sub
  136. '-------------------------------------------------------------------------------------------------------------------
  137. ' Store - Save new householder name
  138. '-------------------------------------------------------------------------------------------------------------------
  139. Public Sub Store()
  140. Set householderName = New POBO_HouseholderNames
  141. householderName.Name = Trim(Request.Form("Name"))
  142. householderName.HouseholdId = Request.Form("HouseholdId")
  143. householderName.LetterReturned = IIf(Request.Form("LetterReturned") = "1", 1, 0)
  144. householderName.Created = Now()
  145. If Request.Form("ReturnDate") <> "" Then
  146. On Error Resume Next
  147. householderName.ReturnDate = CDate(Request.Form("ReturnDate"))
  148. On Error GoTo 0
  149. End If
  150. ' Validation
  151. If householderName.Name = "" Then
  152. Flash().Error = "Name is required."
  153. Response.Redirect "/householder-names/new?household=" & householderName.HouseholdId
  154. Exit Sub
  155. End If
  156. If Not IsNumeric(householderName.HouseholdId) Or CLng(householderName.HouseholdId) < 1 Then
  157. Flash().Error = "Please select a household."
  158. Response.Redirect "/householder-names/new"
  159. Exit Sub
  160. End If
  161. HouseholderNamesRepository.AddNew householderName
  162. Flash().Success = "Householder name created successfully."
  163. Response.Redirect "/householder-names/" & householderName.Id
  164. End Sub
  165. '-------------------------------------------------------------------------------------------------------------------
  166. ' Edit - Display form to edit householder name
  167. '-------------------------------------------------------------------------------------------------------------------
  168. Public Sub Edit(id)
  169. On Error Resume Next
  170. Set householderName = HouseholderNamesRepository.FindByID(id)
  171. If Err.Number <> 0 Or householderName Is Nothing Then
  172. On Error GoTo 0
  173. Flash().Error = "Householder name not found."
  174. Response.Redirect "/householder-names"
  175. Exit Sub
  176. End If
  177. On Error GoTo 0
  178. ' Load parent household for context
  179. On Error Resume Next
  180. Set household = HouseholdsRepository.FindByID(householderName.HouseholdId)
  181. On Error GoTo 0
  182. %> <!--#include file="../views/HouseholderName/edit.asp" --> <%
  183. End Sub
  184. '-------------------------------------------------------------------------------------------------------------------
  185. ' Update - Save changes to householder name
  186. '-------------------------------------------------------------------------------------------------------------------
  187. Public Sub Update(id)
  188. On Error Resume Next
  189. Set householderName = HouseholderNamesRepository.FindByID(id)
  190. If Err.Number <> 0 Or householderName Is Nothing Then
  191. On Error GoTo 0
  192. Flash().Error = "Householder name not found."
  193. Response.Redirect "/householder-names"
  194. Exit Sub
  195. End If
  196. On Error GoTo 0
  197. householderName.Name = Trim(Request.Form("Name"))
  198. householderName.LetterReturned = IIf(Request.Form("LetterReturned") = "1", 1, 0)
  199. If Request.Form("ReturnDate") <> "" Then
  200. On Error Resume Next
  201. householderName.ReturnDate = CDate(Request.Form("ReturnDate"))
  202. On Error GoTo 0
  203. Else
  204. householderName.ReturnDate = #1/1/1970#
  205. End If
  206. ' Validation
  207. If householderName.Name = "" Then
  208. Flash().Error = "Name is required."
  209. Response.Redirect "/householder-names/" & id & "/edit"
  210. Exit Sub
  211. End If
  212. HouseholderNamesRepository.Update householderName
  213. Flash().Success = "Householder name updated successfully."
  214. Response.Redirect "/householder-names/" & id
  215. End Sub
  216. '-------------------------------------------------------------------------------------------------------------------
  217. ' Delete - Remove a householder name
  218. '-------------------------------------------------------------------------------------------------------------------
  219. Public Sub Delete(id)
  220. On Error Resume Next
  221. Set householderName = HouseholderNamesRepository.FindByID(id)
  222. If Err.Number <> 0 Or householderName Is Nothing Then
  223. On Error GoTo 0
  224. Flash().Error = "Householder name not found."
  225. Response.Redirect "/householder-names"
  226. Exit Sub
  227. End If
  228. On Error GoTo 0
  229. Dim householdId
  230. householdId = householderName.HouseholdId
  231. HouseholderNamesRepository.Delete id
  232. Flash().Success = "Householder name deleted successfully."
  233. Response.Redirect "/householder-names?household=" & householdId
  234. End Sub
  235. End Class
  236. ' Singleton instance
  237. Dim HouseholderNameController_Class__Singleton
  238. Function HouseholderNameController()
  239. If IsEmpty(HouseholderNameController_Class__Singleton) Then
  240. Set HouseholderNameController_Class__Singleton = New HouseholderNameController_Class
  241. End If
  242. Set HouseholderNameController = HouseholderNameController_Class__Singleton
  243. End Function
  244. %>

Powered by TurnKey Linux.