abstract class %iKnow.UI.AbstractPortal
extends %ZEN.Component.page
This is the base class for the sample iKnow Portal pages, which is available to be subclassed
by custom Zen pages exposing iKnow content and/or functionality. Some of the convenience services
provided by this page include:
- methods and widgets to select and manage a 'current' domain, source and term for the session, which can be used by queries and operations on this page.
- a pane featuring a modalGroup widget for the user to specify a filter based on metadata criteria (showing all visible metadat fields for the current domain).
- utility methods to page through results from iKnow queries.
This is a Zen Page class.
parameter APPLICATION;
This is the class name of this application this page belongs to.
If not defined, this page does not belong to an application.
parameter AUTONS = 1;
If true, auto-switch namespace to whatever $NAMESPACE is passed in.
parameter DOMAIN = "iKnow";
Localization domain
method %OnAfterCreatePage()
as %Status
Initializes some of the panes and session variables used by this page, fetching domain,
source and term variables from the request (if present).
method AddFilter(pGroup As %String = 0)
as %String
[ ZenMethod ]
final method BuildInfoPane()
as %Status
Builds infoPane.
method ChangeFilterMDField(pFieldId As %Integer)
as %Status
[ ZenMethod ]
method ChangeFilterMDOp(pOperator As %Integer)
as %Status
[ ZenMethod ]
method ChangeFilterType(pFilterType As %String)
as %Status
[ ZenMethod ]
method ClearFilter()
as %Status
[ ZenMethod ]
method DrawFilter(pSeed As %String)
as %Status
This method draws the filter in the filter popup screen
final method EndSession()
as %Status
[ ZenMethod ]
Utility method to end the session from the client.
method ExecuteQuery(pRS As %Library.ResultSet, ByRef tSC As %Status, pInfo As %ZEN.Auxiliary.QueryInfo)
as %Boolean
Utility method to force queries to be executed using the latest version of referenced session
variables (might disregard these by default). Also, as every iKnow query this is used for requires
a domain ID as the first argument, the query execution is skipped if this isn't present.
classmethod GetCurrentFilterMode()
as %Integer
Returns the current filter mode, if any
classmethod GetCurrentFilterObject()
as %iKnow.Filters.Filter
Returns the current filter object, if any
classmethod GetCurrentFilterString()
as %String
Returns the current filter string, if any
final classmethod GetDomain()
as %Integer
[ ZenMethod ]
Returns the currently selected domain ID.
method GetInfoPaneText()
as %String
Returns the text to be displayed in infoPane. To be overridden by the subclass using it.
final method GetPage(componentName As %String)
as %Integer
Utility method to return the "current page" stored in the session for the supplied component
name, or 1 if no page was registered so far.
final classmethod GetSource()
as %Integer
[ ZenMethod ]
Returns the currently selected source ID.
final method GetSourceObject()
as %iKnow.Objects.Source
Returns the currently selected source as a %iKnow.Objects.Source or
%iKnow.Objects.VirtualSource object.
final classmethod GetTerm()
as %String
[ ZenMethod ]
Returns the currently selected term.
final classmethod GetUrlForDomain(domainId As %Integer)
as %String
[ ZenMethod ]
Returns the URL to this Zen page for the supplied domain ID (in the right namespace).
method InitPages()
as %Status
This method should to be implemented by subclasses using the paging functions, giving all paged
components a meaningful initial page value (usually 1).
method InputTerm(pBase As %String)
as %String
[ ZenMethod ]
final method NextPage(componentName As %String)
as %Integer
[ ZenMethod ]
Updates the current page for the supplied component to the next integer value.
method OnUpdateDomain(domainId As %Integer)
as %Status
This method can be overridden at the subclass level to take any additional server-side
actions when the domain is changed.
method OnUpdateFilter()
as %Status
[ ZenMethod ]
method OnUpdateSource(sourceId As %Integer)
as %Status
Server-side method subclasses can override to take additional actions upon a change in the
current source.
method OnUpdateTerm(term As %String)
as %Status
Server-side methods subclasses can override to take additional actions when the user selects
a new term.
final method PreviousPage(componentName As %String)
as %Integer
[ ZenMethod ]
Updates the current page for the supplied component to the previous integer value (minimum value is 1).
method RemoveFilterAt(pGroup)
as %Status
[ ZenMethod ]
method ResetPages()
as %Integer
[ ZenMethod ]
Resets all page information in the session.
method SetBlacklists(blackListIds As %String)
[ ZenMethod ]
method ToggleGroupLogic(pGroup As %String)
as %Status
[ ZenMethod ]
final method UpdateDomain(domainId As %Integer)
as %Status
[ ZenMethod ]
ZenMethod to take appropriate cleanup action if the domain is updated. Will in turn call
OnUpdateDomain, which can be overridden by subclasses.
final method UpdateSource(sourceId As %Integer)
as %Status
[ ZenMethod ]
Server-side method updating the source pointers and taking any other appropriate actions. Invokes
OnUpdateSource afterwards.
final method UpdateTerm(term As %String)
as %Status
[ ZenMethod ]
ZenMethod taking appropriate server-side cleanup and update actions when a new term is selected.
Calls OnUpdateTerm afterwards.
method addFilterClient()
[ Language = javascript ]
method changeFilterMDFieldClient()
[ Language = javascript ]
method changeFilterMDOpClient()
[ Language = javascript ]
method changeFilterTypeClient()
[ Language = javascript ]
method clearFilterClient()
[ Language = javascript ]
method inputTermClient(text)
[ Language = javascript ]
final method nextPageClient(componentName)
as %Status
[ Language = javascript ]
Client-side method to trigger a components query to be re-executed for the next page of results.
method onTermKeyUp()
[ Language = javascript ]
Key capture method to trigger updateTermClient when the enter key is pressed.
method onUpdateFilterClient()
[ Language = javascript ]
Client-side method subclasses can override to execute additional logic when the user has changed
filter criteria.
method onUpdateSourceClient(source)
[ Language = javascript ]
Client-side method subclasses can override to take additional actions upon a change in the
current source.
method onUpdateTermClient(term)
[ Language = javascript ]
Client-side method subclasses can override to take additional actions when the user selects
a new term.
final method previousPageClient(componentName)
as %Status
[ Language = javascript ]
Client-side method to trigger a components query to be re-executed for the previous page of results.
method refreshMDFilterFields()
[ Language = javascript ]
method removeFilterClient(depth)
[ Language = javascript ]
method setBlacklistsClient()
[ Language = javascript ]
method setCurrentGroupClient(depth)
[ Language = javascript ]
method showBlacklists()
[ Language = javascript ]
final method showFilterForm()
[ Language = javascript ]
Display the filter popup window.
method toggleGroupLogicClient(depth)
[ Language = javascript ]
final method updateDomainClient(domain)
[ Language = javascript ]
Method called on the client side when another domain is selected. This method will invoke
UpdateDomain and then reload the page using the outcome of
GetUrlForDomain.
final method updateFilterClient()
[ Language = javascript ]
Client-side method called when the user commits his filter criteria in the filter popup window.
This will call OnUpdateFilter on the server, close the popup and call
onUpdateFilterClient afterwards.
final method updateSourceClient(source)
[ Language = javascript ]
Client-side method updating the source pointers and taking any other appropriate actions. In turn
invokes Updatesource and onUpdateSourceClient.
final method updateTermClient(term)
[ Language = javascript ]
Client-side method to be called when the user selects a new term, which will call
UpdateTerm and onUpdateTermClient.
final method useTermClient(term)
[ Language = javascript ]
Client-side method which will explicitly select a certain term, updating the txtTerm input field in
txtTermPane and then call updateTermClient.