<% 'Include Common Files @1-D6EDE132 %> <% 'End Include Common Files 'Initialize Page @1-C953B341 ' Variables Dim PathToRoot, ScriptPath Dim FileName Dim Redirect Dim Tpl, HTMLTemplate Dim TemplateFileName Dim ComponentName Dim PathToCurrentPage ' Events Dim CCSEvents Dim CCSEventResult ' Connections Dim DBannals ' Page controls Dim Header Dim ArticlesSearch Dim Articles Redirect = "" TemplateFileName = "Articles_list.html" Set CCSEvents = CreateObject("Scripting.Dictionary") PathToCurrentPage = "./" FileName = "Articles_list.asp" PathToRoot = "./" ScriptPath = Left(Request.ServerVariables("PATH_TRANSLATED"), Len(Request.ServerVariables("PATH_TRANSLATED")) - Len(FileName)) 'End Initialize Page 'Initialize Objects @1-9DAED222 Set DBannals = New clsDBannals DBannals.Open ' Controls Set Header = New clsHeader Header.BindEvents Header.Initialize Set ArticlesSearch = new clsRecordArticlesSearch Set Articles = New clsGridArticles Articles.Initialize DBannals CCSEventResult = CCRaiseEvent(CCSEvents, "AfterInitialize", Nothing) 'End Initialize Objects 'Execute Components @1-0165FBC7 Header.Operations ArticlesSearch.Operation 'End Execute Components 'Go to destination page @1-6D35F4FD If NOT ( Redirect = "" ) Then UnloadPage Response.Redirect Redirect End If 'End Go to destination page 'Initialize HTML Template @1-0155E1BE CCSEventResult = CCRaiseEvent(CCSEvents, "OnInitializeView", Nothing) Set HTMLTemplate = new clsTemplate Set HTMLTemplate.Cache = TemplatesRepository HTMLTemplate.LoadTemplate ScriptPath & TemplateFileName Set Tpl = HTMLTemplate.Block("main") CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeShow", Nothing) 'End Initialize HTML Template 'Show Page @1-72B753AF Header.Show Tpl, "Header" ArticlesSearch.Show Tpl Articles.Show Tpl HTMLTemplate.PParse "main", False 'End Show Page 'Unload Page @1-CB210C62 UnloadPage Set Tpl = Nothing Set HTMLTemplate = Nothing 'End Unload Page 'UnloadPage Sub @1-775C40F7 Sub UnloadPage() CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeUnload", Nothing) If DBannals.State = adStateOpen Then _ DBannals.Close Set DBannals = Nothing Set Header = Nothing Set ArticlesSearch = Nothing Set Articles = Nothing End Sub 'End UnloadPage Sub 'Include Page Implementation @30-EB31621C %> <% 'End Include Page Implementation Class clsRecordArticlesSearch 'ArticlesSearch Class @2-4DE7F642 'ArticlesSearch Variables @2-2A1CEF80 ' Public variables Public ComponentName Public HTMLFormAction Public PressedButton Public Errors Public FormSubmitted Public EditMode Public Visible Public Recordset Public TemplateBlock Public CCSEvents Private CCSEventResult Public DataSource Public Command Public ValidatingControls Public Controls ' Class variables Dim s_Article_Type Dim s_Article_TypeDataSource Dim s_Article_Title Dim s_Article_Authors Dim Button_DoSearch 'End ArticlesSearch Variables 'ArticlesSearch Class_Initialize Event @2-C0F99514 Private Sub Class_Initialize() Visible = True Set Errors = New clsErrors Set CCSEvents = CreateObject("Scripting.Dictionary") Dim Method Dim OperationMode If Visible Then OperationMode = Split(Request.QueryString("ccsForm"), ":") If UBound(OperationMode) > -1 Then FormSubmitted = (OperationMode(0) = "ArticlesSearch") End If If UBound(OperationMode) > 0 Then EditMode = (OperationMode(1) = "Edit") End If ComponentName = "ArticlesSearch" Method = IIf(FormSubmitted, ccsPost, ccsGet) Set s_Article_TypeDataSource = CCCreateDataSource(dsListOfValues, Empty, Array( _ Array("Editorial", "Original"), _ Array("Editorial", "Original Articles"))) Set s_Article_Type = CCCreateList(ccsListBox, "s_Article_Type", "s_Article_Type", ccsText, CCGetRequestParam("s_Article_Type", Method), s_Article_TypeDataSource) Set s_Article_Title = CCCreateControl(ccsTextBox, "s_Article_Title", "s_Article_Title", ccsMemo, Empty, CCGetRequestParam("s_Article_Title", Method)) Set s_Article_Authors = CCCreateControl(ccsTextBox, "s_Article_Authors", "s_Article_Authors", ccsMemo, Empty, CCGetRequestParam("s_Article_Authors", Method)) Set Button_DoSearch = CCCreateButton("Button_DoSearch") Set ValidatingControls = new clsControls ValidatingControls.addControls Array(s_Article_Type, s_Article_Title, s_Article_Authors) End If End Sub 'End ArticlesSearch Class_Initialize Event 'ArticlesSearch Class_Terminate Event @2-32B847C9 Private Sub Class_Terminate() Set Errors = Nothing End Sub 'End ArticlesSearch Class_Terminate Event 'ArticlesSearch Validate Method @2-7AE5264D Function Validate() Dim Validation Validation = ValidatingControls.Validate CCSEventResult = CCRaiseEvent(CCSEvents, "OnValidate", Me) Validate = Validation And (Errors.Count = 0) End Function 'End ArticlesSearch Validate Method 'ArticlesSearch Operation Method @2-B9FF81CC Sub Operation() If NOT ( Visible AND FormSubmitted ) Then Exit Sub If FormSubmitted Then PressedButton = "Button_DoSearch" If Not IsEmpty(CCGetParam("Button_DoSearch", Empty)) Then PressedButton = "Button_DoSearch" End If End If Redirect = "Articles_list.asp?" & CCGetQueryString("Form", Array("ccsForm", "Button_DoSearch")) If Validate() Then If PressedButton = "Button_DoSearch" Then If NOT Button_DoSearch.OnClick() Then Redirect = "" Else Redirect = "Articles_list.asp?" & CCGetQueryString("Form", Array("Button_DoSearch")) End If End If Else Redirect = "" End If End Sub 'End ArticlesSearch Operation Method 'ArticlesSearch Show Method @2-04E80925 Sub Show(Tpl) If NOT Visible Then Exit Sub EditMode = False HTMLFormAction = FileName & "?" & CCAddParam(Request.ServerVariables("QUERY_STRING"), "ccsForm", "ArticlesSearch" & IIf(EditMode, ":Edit", "")) Set TemplateBlock = Tpl.Block("Record " & ComponentName) TemplateBlock.Variable("HTMLFormName") = ComponentName TemplateBlock.Variable("HTMLFormEnctype") ="application/x-www-form-urlencoded" Set Controls = CCCreateCollection(TemplateBlock, Null, ccsParseOverwrite, _ Array(s_Article_Type, s_Article_Title, s_Article_Authors, Button_DoSearch)) If Not FormSubmitted Then End If If FormSubmitted Then With TemplateBlock.Block("Error") .Variable("Error") = ValidatingControls.GetErrors & Errors.ToString .Parse False End With End If TemplateBlock.Variable("Action") = HTMLFormAction CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeShow", Me) If Visible Then Controls.Show End Sub 'End ArticlesSearch Show Method End Class 'End ArticlesSearch Class @2-A61BA892 Class clsGridArticles 'Articles Class @7-C8CCF77B 'Articles Variables @7-147A6B6A ' Public variables Public ComponentName, CCSEvents Public Visible, Errors Public DataSource, PageSize Public PageNumber Public Command Public TemplateBlock Public ActiveSorter, SortingDirection Public Recordset Private CCSEventResult ' Grid Controls Public StaticControls, RowControls Dim Sorter_Issue Dim Sorter_Article_Number Dim Sorter_Article_Type Dim Issue Dim Article_Number Dim Article_Type Dim Article_Title Dim Article_Authors Dim FileLink Dim Navigator 'End Articles Variables 'Articles Class_Initialize Event @7-CC3FCA12 Private Sub Class_Initialize() ComponentName = "Articles" Visible = True Set CCSEvents = CreateObject("Scripting.Dictionary") Set Errors = New clsErrors Set DataSource = New clsArticlesDataSource Set Command = New clsCommand PageSize = CCGetParam(ComponentName & "PageSize", Empty) If IsNumeric(PageSize) And Len(PageSize) > 0 Then If PageSize=0 Then Errors.AddError("(CCS06) Invalid page size.") End If If NOT IsNumeric(PageSize) OR IsEmpty(PageSize) Then _ PageSize = 20 _ Else _ PageSize = CInt(PageSize) PageNumber = CInt(CCGetParam(ComponentName & "Page", 1)) ActiveSorter = CCGetParam("ArticlesOrder", Empty) SortingDirection = CCGetParam("ArticlesDir", Empty) If NOT(SortingDirection = "ASC" OR SortingDirection = "DESC") Then _ SortingDirection = Empty Set Issue = CCCreateControl(ccsLabel, "Issue", "Issue", ccsText, Empty, CCGetRequestParam("Issue", ccsGet)) Set Article_Number = CCCreateControl(ccsLabel, "Article_Number", "Article_Number", ccsInteger, Empty, CCGetRequestParam("Article_Number", ccsGet)) Set Article_Type = CCCreateControl(ccsLabel, "Article_Type", "Article_Type", ccsText, Empty, CCGetRequestParam("Article_Type", ccsGet)) Set Article_Title = CCCreateControl(ccsLabel, "Article_Title", "Article_Title", ccsMemo, Empty, CCGetRequestParam("Article_Title", ccsGet)) Set Article_Authors = CCCreateControl(ccsLabel, "Article_Authors", "Article_Authors", ccsMemo, Empty, CCGetRequestParam("Article_Authors", ccsGet)) Set FileLink = CCCreateControl(ccsLabel, "FileLink", "FileLink", ccsMemo, Empty, CCGetRequestParam("FileLink", ccsGet)) Set Sorter_Issue = CCCreateSorter("Sorter_Issue", Me, FileName) Set Sorter_Article_Number = CCCreateSorter("Sorter_Article_Number", Me, FileName) Set Sorter_Article_Type = CCCreateSorter("Sorter_Article_Type", Me, FileName) Set Navigator = CCCreateNavigator(ComponentName, "Navigator", FileName, 10, tpSimple) End Sub 'End Articles Class_Initialize Event 'Articles Initialize Method @7-2AEA3975 Sub Initialize(objConnection) If NOT Visible Then Exit Sub Set DataSource.Connection = objConnection DataSource.PageSize = PageSize DataSource.SetOrder ActiveSorter, SortingDirection DataSource.AbsolutePage = PageNumber End Sub 'End Articles Initialize Method 'Articles Class_Terminate Event @7-E1528F98 Private Sub Class_Terminate() Set DataSource = Nothing Set Command = Nothing Set Errors = Nothing End Sub 'End Articles Class_Terminate Event 'Articles Show Method @7-F7B19A96 Sub Show(Tpl) If NOT Visible Then Exit Sub Dim RecordCounter, ShownRecords Dim RowBlock With DataSource .Parameters("urls_Article_Type") = CCGetRequestParam("s_Article_Type", ccsGET) .Parameters("urls_Article_Title") = CCGetRequestParam("s_Article_Title", ccsGET) .Parameters("urls_Article_Authors") = CCGetRequestParam("s_Article_Authors", ccsGET) End With CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeSelect", Me) Set Recordset = DataSource.Open(Command) Set TemplateBlock = Tpl.Block("Grid " & ComponentName) Set RowBlock = TemplateBlock.Block("Row") Set StaticControls = CCCreateCollection(TemplateBlock, Null, ccsParseOverwrite, _ Array(Sorter_Issue, Sorter_Article_Number, Sorter_Article_Type, Navigator)) Set RowControls = CCCreateCollection(RowBlock, Null, ccsParseAccumulate, _ Array(Issue, Article_Number, Article_Type, Article_Title, Article_Authors, FileLink)) CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeShow", Me) If NOT Visible Then Exit Sub Errors.AddErrors DataSource.Errors If Errors.Count > 0 Then TemplateBlock.HTML = CCFormatError("Grid Articles", Errors) Else ' Show NoRecords block if no records are found If Recordset.EOF Then TemplateBlock.Block("NoRecords").Parse ccsParseOverwrite End If While NOT Recordset.EOF AND ShownRecords < PageSize Issue.Value = Recordset.Fields("Issue") Article_Number.Value = Recordset.Fields("Article_Number") Article_Type.Value = Recordset.Fields("Article_Type") Article_Title.Value = Recordset.Fields("Article_Title") Article_Authors.Value = Recordset.Fields("Article_Authors") FileLink.Value = Recordset.Fields("FileLink") CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeShowRow", Me) RowControls.Show Recordset.MoveNext ShownRecords = ShownRecords + 1 Wend Navigator.SetDataSource Recordset StaticControls.Show End If End Sub 'End Articles Show Method End Class 'End Articles Class @7-A61BA892 Class clsArticlesDataSource 'ArticlesDataSource Class @7-D87E476D 'DataSource Variables @7-3820A49F Public Errors, Connection, Parameters, CCSEvents Public Recordset Public SQL, CountSQL, Order, Where, Orders Public RecordsCount Public PageSize Public PageCount Public AbsolutePage Public Fields Dim WhereParameters Public AllParamsSet Private CurrentOperation Private CCSEventResult ' Datasource fields Public Issue Public Article_Number Public Article_Type Public Article_Title Public Article_Authors Public FileLink 'End DataSource Variables 'DataSource Class_Initialize Event @7-AE298BD4 Private Sub Class_Initialize() Set CCSEvents = CreateObject("Scripting.Dictionary") Set Fields = New clsFields Set Recordset = New clsDataSource Set Errors = New clsErrors AllParamsSet = True Set Issue = CCCreateField("Issue", "Issue", ccsText, Empty, Recordset) Set Article_Number = CCCreateField("Article_Number", "Article_Number", ccsInteger, Empty, Recordset) Set Article_Type = CCCreateField("Article_Type", "Article_Type", ccsText, Empty, Recordset) Set Article_Title = CCCreateField("Article_Title", "Article_Title", ccsMemo, Empty, Recordset) Set Article_Authors = CCCreateField("Article_Authors", "Article_Authors", ccsMemo, Empty, Recordset) Set FileLink = CCCreateField("FileLink", "FileLink", ccsMemo, Empty, Recordset) Fields.AddFields Array(Issue, Article_Number, Article_Type, Article_Title, Article_Authors, FileLink) Set Parameters = Server.CreateObject("Scripting.Dictionary") Set WhereParameters = Nothing Orders = Array( _ Array("Sorter_Issue", "Issue", ""), _ Array("Sorter_Article_Number", "Article_Number", ""), _ Array("Sorter_Article_Type", "Article_Type", "")) SQL = "SELECT Issue, Article_Number, Article_Type, Article_Title, Article_Authors, FileLink " & _ "FROM Articles LEFT JOIN Volumes ON Articles.VolumeIssueID = Volumes.Id" CountSQL = "SELECT COUNT(*) " & _ "FROM Articles LEFT JOIN Volumes ON Articles.VolumeIssueID = Volumes.Id" Where = "" Order = "" End Sub 'End DataSource Class_Initialize Event 'SetOrder Method @7-68FC9576 Sub SetOrder(Column, Direction) Order = Recordset.GetOrder(Order, Column, Direction, Orders) End Sub 'End SetOrder Method 'BuildTableWhere Method @7-85E3E4D2 Public Sub BuildTableWhere() Dim WhereParams If Not WhereParameters Is Nothing Then _ Exit Sub Set WhereParameters = new clsSQLParameters With WhereParameters Set .Connection = Connection Set .ParameterSources = Parameters Set .DataSource = Me .AddParameter 1, "urls_Article_Type", ccsText, Empty, Empty, Empty, False .AddParameter 2, "urls_Article_Title", ccsMemo, Empty, Empty, Empty, False .AddParameter 3, "urls_Article_Authors", ccsMemo, Empty, Empty, Empty, False .Criterion(1) = .Operation(opContains, False, "Article_Type", .getParamByID(1)) .Criterion(2) = .Operation(opContains, False, "Article_Title", .getParamByID(2)) .Criterion(3) = .Operation(opContains, False, "Article_Authors", .getParamByID(3)) .AssembledWhere = .opAND(False, .opAND(False, .Criterion(1), .Criterion(2)), .Criterion(3)) WhereParams = .AssembledWhere If Len(Where) > 0 Then If Len(WhereParams) > 0 Then _ Where = Where & " AND " & WhereParams Else If Len(WhereParams) > 0 Then _ Where = WhereParams End If End With End Sub 'End BuildTableWhere Method 'Open Method @7-F1D016EC Function Open(Cmd) Errors.Clear Set Recordset.DataSource = Me Set Cmd.Connection = Connection Cmd.CommandOperation = cmdOpen Cmd.PageSize = PageSize Cmd.ActivePage = AbsolutePage Cmd.CommandType = dsTable CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeBuildSelect", Me) Cmd.SQL = SQL Cmd.CountSQL = CountSQL BuildTableWhere Cmd.Where = Where Cmd.OrderBy = Order CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeExecuteSelect", Me) If Errors.Count = 0 And CCSEventResult Then _ Set Recordset = Cmd.Exec(Errors) CCSEventResult = CCRaiseEvent(CCSEvents, "AfterExecuteSelect", Me) Set Recordset.FieldsCollection = Fields Set Open = Recordset End Function 'End Open Method 'DataSource Class_Terminate Event @7-41B4B08D Private Sub Class_Terminate() If Recordset.State = adStateOpen Then _ Recordset.Close Set Recordset = Nothing Set Parameters = Nothing Set Errors = Nothing End Sub 'End DataSource Class_Terminate Event End Class 'End ArticlesDataSource Class @7-A61BA892 %>