Consolidated ASP Classic MVC framework from best components
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

285 lines
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.