source: main/trunk/ibisph-view/src/main/webapp/WEB-INF/config/spring/indicator.xml @ 22683

Last change on this file since 22683 was 22683, checked in by GarthBraithwaite_STG, 2 months ago

view - Implemented normal content path and published path with updated comments. Removed report requests as not currently implemented in v3 with no signs of ever being. css tweaks.

File size: 20.0 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2
3<!--
4        IBIS-PH View System's "indicator profile" module related Spring properties.
5        These properties are all specific to the "indicator" type requests and
6        include indicator profile specific resources, controllers, and
7        views.
8-->
9
10<beans default-lazy-init="false" default-autowire="no"
11        xmlns="http://www.springframework.org/schema/beans"
12        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
13        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
14>
15
16        <!--  M O D E L   /   C O N T R O L L E R   R E S O R U C E S -->
17        <bean id="indicatorXMLBasePath" class="org.ibisph.model.StringHolder">
18                <description>
19                        Base IP XML file path.  This defaults to the common base XML value
20                        but is split out so that developers/test enviros can access production
21                        IP files from their enviro (so they don't have to copy or repub IPs).
22                </description>
23                <constructor-arg value="#{commonPublishedXMLBasePath.string}indicator/"/>
24        </bean>
25        <bean id="indicatorXMLBasePathURL" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
26                <description>
27                        Primary "xml/indicator" path URL used for ip sets and published xml files.
28                </description>
29                <property name="targetObject" ref="commonContextAndPathService"/>
30                <property name="targetMethod" value="getPathURL"/>
31                <property name="arguments"><list><value>#{indicatorXMLBasePath.string}</value></list></property>
32        </bean>
33
34        <bean id="indicatorProfileXMLFilePath" class="org.ibisph.model.StringHolder">
35                <description>
36                        This is NOT a base path - it is a sub directory path segment that
37                        localizes the more specific indicator "profile"s sub directory. This
38                        is the "filepath" that is passed into the get file from the last
39                        segment of the request.  It works because the "indicator" xml file
40                        service that the model map uses is set to use the indicatorXMLBasePathURL
41                        as it's base path.  This value will likely never change but it put
42                        here to localize as it's used in several places.
43                </description>
44                <constructor-arg value="profile/"/>
45        </bean>
46
47        <bean id="indicatorPublishedIndicatorsFilePathAndName" class="org.ibisph.model.StringHolder">
48                <constructor-arg value="#{indicatorXMLBasePath.string}published_indicators.xml"/>
49        </bean>
50        <bean id="indicatorIndicatorSetsFilePathAndName" class="org.ibisph.model.StringHolder">
51                <constructor-arg value="#{indicatorXMLBasePath.string}indicator_sets.xml"/>
52        </bean>
53        <bean id="indicatorCategorziedIndexFilePathAndName" class="org.ibisph.model.StringHolder">
54                <constructor-arg value="#{indicatorXMLBasePath.string}CategorizedSelection.xml"/>
55        </bean>
56
57        <bean id="indicatorPreviewFilePath" class="org.ibisph.model.StringHolder">
58                <description>
59                        Base admin app XML preview path that an xml service uses to build/
60                        locate the indicator XML file(s).   
61                </description>
62                <constructor-arg value="http://localhost/ibisph-admim/xml/preview/indicator/profile/"/>
63        </bean>
64
65
66        <!-- F I L E   S E R V I C E S -->
67        <bean id="indicatorXMLFilePathModelService" class="org.ibisph.model.URLPathGetModelService">
68                <description>
69                        Service that builds the fully specified, explicit URL path used by
70                        the transformation engine (or set as a parameter) to access an 
71                        indicator XML file.  The base path can be a string or URL (in this
72                        case is the indicator XML base path URL).  The model map code that
73                        use this service either grabs the last segment of the request to
74                        determine the full indicator XML filename or uses an injected value.
75                        This value is then passed to this service to build the actual full
76                        path and filename used to reference the XML file.  The Common
77                        "published" file service is very close to this service except it is
78                        a document service.
79                </description>
80                <property name="basePath" ref="indicatorXMLBasePathURL"/>
81        </bean>
82
83
84
85<!-- TODO REMOVE:
86        <bean id="indicatorDocumentDAOService" class="org.ibisph.xml.service.FileStoredDocumentDAO">
87                <description>
88                        Indicator base path XML document loader used to load an XML document
89                        that is then put into model map.  This is needed when an XML doc is
90                        needed but is not the primary XML e.g. is a secondary XML passed as
91                        a parameter.  Typical use is the published IPs for topic pages etc.
92                </description>
93                <property name="basePath"     ref="indicatorXMLBasePathURL"/>
94                <property name="escapeTextWhenSaving" value="true"/>
95                <property name="dateFormat"   ref="commonDateFormat"/>
96                <property name="outputFormat" ref="commonXMLOutputFormat"/>
97        </bean>
98-->
99
100        <!--  M O D E L   M A P S -->
101        <bean id="indicatorSelectedRelationNameModelMap" class="org.ibisph.indicatorprofile.modelmap.RelationNameFromHTTPRequest">
102                <property name="modelMapKey" value="RelationName"/>
103        </bean>
104
105
106        <bean id="indicatorXMLServiceModelMapProperties" abstract="true">
107                <description>
108                        Indicator base path primary XML model map properties used for most 
109                        indicator and IP modelmap based requests.
110                </description>
111                <property name="modelMapKey" value="#{commonXMLModelMapKey.string}"/>
112                <property name="getModelService" ref="indicatorXMLFilePathModelService"/>
113        </bean>
114
115        <bean id="indicatorProfileXMLFilePathAndNameModelMap" 
116                class="org.ibisph.web.modelmap.ModelFromHTTPRequestPathLastSegment" 
117                parent="indicatorXMLServiceModelMapProperties"
118        >
119                <description>
120                        Main IP path with filename URL model map used for all IP "file" XML
121                        requests where the actual IP XML file as the last segment in the
122                        request path.  This model map uses the indicatorXMLFilePathModelService
123                        which has the base path set as indicatorXMLBasePathURL (xml/indicator). 
124                        The path value is simply a sub path to the profiles" directory which is underneath
125                        the IP XML dir.  This model map then uses the request's filename to
126                        finish determining which IP XML file to use as the primary XML file
127                        for XSLT/XML trans.
128                </description>
129                <property name="filePath" value="#{indicatorProfileXMLFilePath.string}"/>
130        </bean>
131
132        <bean id="indicatorPublishedIndicatorsModelMap" class="org.ibisph.modelmap.ModelFromFilePathAndNameService">
133                <description>
134                        Document version of the published IPs XML - used as a 2ndary XML
135                        model for Community and Topic pages.
136                </description>
137                <property name="modelMapKey"     value="PublishedIndicators"/>
138                <property name="getModelService" ref="commonPublishedDocumentDAOService"/>
139                <property name="filePathAndName" value="#{indicatorPublishedIndicatorsFilePathAndName.string}"/>
140        </bean>
141        <bean id="indicatorPublishedIndicatorsXMLModelMap" 
142                class="org.ibisph.modelmap.ModelFromFilePathAndNameService" 
143                parent="indicatorXMLServiceModelMapProperties"
144        >
145                <description>
146                        File based published IPs XML model map where the complete file path
147                        and name are the primary XML model.  This model is typically used
148                        for IP Indexes. 
149                </description>
150                <property name="filePathAndName" value="#{indicatorPublishedIndicatorsFilePathAndName.string}"/>
151        </bean>
152
153        <bean id="indicatorIndicatorProfileXMLFilePathModelMap" class="org.ibisph.modelmap.ModelFromFilePathAndNameService">
154                <description>
155                        IP filepath that is passed as an XSLT param value that allows XSLT
156                        code to loop/access a bunch of IP XMLs.  Used for community IPs
157                        report and community Quick Facts demographic table etc.
158                </description>
159                <property name="getModelService" ref="indicatorXMLFilePathModelService"/>
160                <property name="modelMapKey"     value="IndicatorProfileXMLFilePath"/>
161                <property name="filePathAndName" value="#{indicatorProfileXMLFilePath.string}"/>
162        </bean>
163        <bean id="indicatorIndicatorSetsModelMap" class="org.ibisph.modelmap.ModelFromFilePathAndNameService">
164                <description>
165                        Document version of the indicator sets IPs XML which is a 2ndary
166                        XML model passed as a param to the XSLT.  This is typically used for
167                        all community controllers to allow show/change alternative IP sets.
168                </description>
169                <property name="modelMapKey"     value="IndicatorSets"/>
170                <property name="getModelService" ref="commonPublishedDocumentDAOService"/>
171                <property name="filePathAndName" value="#{indicatorIndicatorSetsFilePathAndName.string}"/>
172        </bean>
173
174
175        <!--  C O N T R O L L E R S  -->
176        <bean id="indicatorAlphabeticalIndexController" parent="commonModelMapListController">
177                <property name="modelMapList">
178                        <list>
179                                <ref bean="indicatorPublishedIndicatorsXMLModelMap"/>
180                        </list>
181                </property>
182                <property name="view" ref="indicatorAlphabeticalIndexView"/>
183        </bean>
184        <bean id="indicatorDemographicIndexController" parent="indicatorAlphabeticalIndexController">
185                <property name="view" ref="indicatorDemographicIndexView"/>
186        </bean>
187        <bean id="indicatorDataSourceIndexController" parent="commonModelMapListController">
188                <property name="modelMapList">
189                        <list>
190                                <ref bean="indicatorPublishedIndicatorsXMLModelMap"/>
191                                <ref bean="commonDataSourcesModelMap"/>
192                        </list>
193                </property>
194                <property name="view" ref="indicatorDataSourceIndexView"/>
195        </bean>
196        <bean id="indicatorOrgUnitIndexController" parent="commonModelMapListController">
197                <property name="modelMapList">
198                        <list>
199                                <ref bean="indicatorPublishedIndicatorsXMLModelMap"/>
200                                <ref bean="commonOrgUnitsModelMap"/>
201                        </list>
202                </property>
203                <property name="view" ref="indicatorOrgUnitIndexView"/>
204        </bean>
205
206        <bean id="indicatorTableIndexController" parent="commonModelMapListController">
207                <property name="modelMapList">
208                        <list>
209                                <ref bean="indicatorPublishedIndicatorsXMLModelMap"/>
210                                <ref bean="commonDataSourcesModelMap"/>
211                                <ref bean="commonOrgUnitsModelMap"/>
212                        </list>
213                </property>
214                <property name="view" ref="indicatorTableIndexView"/>
215        </bean>
216
217        <bean id="indicatorIndicatorSetIndexController" parent="commonModelMapListController">
218                <property name="modelMapList">
219                        <list>
220                                <bean class="org.ibisph.modelmap.ModelFromFilePathAndNameService" 
221                                        parent="indicatorXMLServiceModelMapProperties"
222                                >
223                                        <property name="filePathAndName" value="#{indicatorPublishedIndicatorsFilePathAndName.string}"/>
224                                </bean>
225                                <ref bean="indicatorIndicatorSetsModelMap"/>
226                        </list>
227                </property>
228                <property name="view" ref="indicatorIndicatorSetIndexView"/>
229        </bean>
230
231        <bean id="indicatorCategorizedIndexController" parent="commonModelMapListController">
232                <property name="modelMapList">
233                        <list>
234                                <bean class="org.ibisph.modelmap.ModelFromFilePathAndNameService" 
235                                        parent="commonXMLServiceModelMapProperties"
236                                >
237                                        <property name="getModelService" ref="indicatorXMLFilePathModelService"/>
238                                        <property name="filePathAndName" value="#{indicatorCategorziedIndexFilePathAndName.string}"/>
239                                </bean>
240                                <bean class="org.ibisph.modelmap.ModelFromFilePathAndNameService">
241                                        <property name="modelMapKey"     value="PublishedProfilesPathAndFilename"/>
242                                        <property name="getModelService" ref="indicatorXMLFilePathModelService"/>
243                                        <property name="filePathAndName" value="#{indicatorPublishedIndicatorsFilePathAndName.string}"/>
244                                </bean>
245                        </list>
246                </property>
247                <property name="view" ref="indicatorCategorizedIndexView"/>
248        </bean>
249
250
251        <!--
252                MODIFIED DATE NOTE: For IP's that are on a remote machine/accessed via
253                URL, the modelmap is a file path not a document so the XML date can't be
254                accessed.  For IPVs the IPV XML is loaded in later model map processing
255                because it needs to determine the view XSLT to be used.  As such the XML
256                date is returned for view XMLs - even if the file is on a remote server. 
257                If this is a problem in the future then similar code can be applied to
258                open the IP XML and put into the map.
259        -->
260        <bean id="indicatorProfileControllerProperties" abstract="true" parent="commonModelMapListController">
261                <property name="modelMapList">
262                        <list>
263                                <ref bean="commonAncillaryValuesModelMap"/>
264                                <ref bean="commonDataSourcesModelMap"/>
265                                <ref bean="commonDimensionsModelMap"/>
266                                <ref bean="commonMeasuresModelMap"/>
267                                <ref bean="commonOrgUnitsModelMap"/>
268                                <ref bean="commonValueAttributesModelMap"/>
269                                <ref bean="commonValueTypesModelMap"/>
270                                <ref bean="indicatorProfileXMLFilePathAndNameModelMap"/>
271                        </list>
272                </property>
273        </bean>
274        <bean id="indicatorImportantFactsController" parent="indicatorProfileControllerProperties">
275                <property name="view" ref="indicatorImportantFactsView"/>
276        </bean>
277        <bean id="indicatorServicesController" parent="indicatorProfileControllerProperties">
278                <property name="view" ref="indicatorServicesView"/>
279        </bean>
280        <bean id="indicatorResourcesController" parent="indicatorProfileControllerProperties">
281                <property name="view" ref="indicatorResourcesView"/>
282        </bean>
283
284        <bean id="indicatorSummaryViewController" parent="indicatorProfileControllerProperties">
285                <property name="view" ref="indicatorSummaryView"/>
286        </bean>
287
288        <bean id="indicatorCompleteViewController" parent="indicatorProfileControllerProperties">
289                <property name="view" ref="indicatorCompleteView"/>
290        </bean>
291<!--
292        <bean id="indicatorDefaultViewController" parent="indicatorProfileControllerProperties">
293                <property name="view" ref="indicatorDefaultView"/>
294        </bean>
295-->
296
297        <bean id="indicatorViewController" parent="commonModelMapListController">
298                <description>
299                        Loads the XML doc so view's view can be read from request.
300                </description>
301                <property name="modelMapList">
302                        <list>
303                                <ref bean="commonAncillaryValuesModelMap"/>
304                                <ref bean="commonDataSourcesModelMap"/>
305                                <ref bean="commonDimensionsModelMap"/>
306                                <ref bean="commonMeasuresModelMap"/>
307                                <ref bean="commonOrgUnitsModelMap"/>
308                                <ref bean="commonValueAttributesModelMap"/>
309                                <ref bean="commonValueTypesModelMap"/>
310                                <ref bean="indicatorProfileXMLFilePathAndNameModelMap"/>
311                                <bean class="org.ibisph.indicatorprofile.modelmap.IndicatorViewViewTemplate">
312                                        <property name="documentDAOService"     ref="commonPublishedDocumentDAOService"/>
313                                        <property name="XSLTURLGetModelService" ref="commonXSLTFilePathModelService"/> 
314                                </bean>
315                        </list>
316                </property>
317                <property name="view" ref="commonXSLTTransformationView"/>
318        </bean>
319
320        <bean id="indicatorRelatedIndicatorsController" parent="commonModelMapListController">
321                <property name="modelMapList">
322                        <list>
323                                <ref bean="indicatorSelectedRelationNameModelMap"/>
324                                <ref bean="indicatorProfileXMLFilePathAndNameModelMap"/>
325                                <ref bean="commonOrgUnitsModelMap"/>
326                        </list>
327                </property>
328                <property name="view" ref="indicatorRelatedIndicatorsView"/>
329        </bean>
330
331        <bean id="indicatorPreviewController" parent="commonModelMapListController">
332                <property name="modelMapList">
333                        <list>
334                                <bean class="org.ibisph.web.modelmap.ModelFromHTTPRequestPathLastSegment" 
335                                        parent="indicatorXMLServiceModelMapProperties"
336                                >
337                                        <property name="getModelService">
338                                                <bean class="org.ibisph.model.URLPathGetModelService">
339                                                        <description>
340                                                                Used for the admin app's preview request.  The admin app creates
341                                                                the XML file then makes this request which is of the same form
342                                                                as the normal IP view request.  This controller is the same as
343                                                                the normal view controller othen than it uses a different XML
344                                                                path.
345                                                        </description>
346                                                        <property name="basePath">
347                                                                <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
348                                                                        <property name="targetObject" ref="commonContextAndPathService"/>
349                                                                        <property name="targetMethod" value="getPathURL"/>
350                                                                        <property name="arguments"><list><value>#{indicatorPreviewFilePath.string}</value></list></property>
351                                                                </bean>
352                                                        </property>
353                                                </bean>
354                                        </property>
355                                </bean>
356                                <ref bean="commonAncillaryValuesModelMap"/>
357                                <ref bean="commonDataSourcesModelMap"/>
358                                <ref bean="commonDimensionsModelMap"/>
359                                <ref bean="commonMeasuresModelMap"/>
360                                <ref bean="commonOrgUnitsModelMap"/>
361                                <ref bean="commonValueAttributesModelMap"/>
362                                <ref bean="commonValueTypesModelMap"/>
363                        </list>
364                </property>
365                <property name="view" ref="indicatorCompleteView"/>
366        </bean>
367
368
369        <bean id="indicatorViewPreviewController" parent="indicatorPreviewController">
370                <property name="view" ref="indicatorViewView"/>
371        </bean>
372
373
374        <bean id="indicatorContentBlocksController" parent="indicatorProfileControllerProperties">
375                <property name="view" ref="indicatorContentBlocksView"/>
376        </bean>
377        <bean id="indicatorViewJSONController" parent="indicatorProfileControllerProperties">
378                <property name="view" ref="indicatorViewJSONView"/>
379        </bean>
380        <bean id="indicatorJSONController" parent="indicatorProfileControllerProperties">
381                <property name="view" ref="indicatorJSONView"/>
382        </bean>
383
384
385        <!--  V I E W S  -->
386        <bean id="indicatorAlphabeticalIndexView" parent="commonXSLTTransformationView">
387                <property name="XSLTPathAndFilename" value="html/indicator/index/alphabetical/AlphabeticalPage.xslt"/>
388        </bean>
389        <bean id="indicatorDataSourceIndexView" parent="commonXSLTTransformationView">
390                <property name="XSLTPathAndFilename" value="html/indicator/index/data_source/DataSourcePage.xslt"/>
391        </bean>
392        <bean id="indicatorOrgUnitIndexView" parent="commonXSLTTransformationView">
393                <property name="XSLTPathAndFilename" value="html/indicator/index/org_unit/OrgUnitPage.xslt"/>
394        </bean>
395        <bean id="indicatorDemographicIndexView" parent="commonXSLTTransformationView">
396                <property name="XSLTPathAndFilename" value="html/indicator/index/demographic/DemographicPage.xslt"/>
397        </bean>
398        <bean id="indicatorIndicatorSetIndexView" parent="commonXSLTTransformationView">
399                <property name="XSLTPathAndFilename" value="html/indicator/index/indicator_set/IndicatorSetPage.xslt"/>
400        </bean>
401        <bean id="indicatorTableIndexView" parent="commonXSLTTransformationView">
402                <property name="XSLTPathAndFilename" value="html/indicator/index/table/TablePage.xslt"/>
403        </bean>
404        <bean id="indicatorCategorizedIndexView" parent="commonXSLTTransformationView">
405                <property name="XSLTPathAndFilename" value="html/indicator/index/categorized/CategorizedPage.xslt"/>
406        </bean>
407
408        <bean id="indicatorSummaryView" parent="commonXSLTTransformationView">
409                <property name="XSLTPathAndFilename" value="html/indicator/profile/summary/SummaryPage.xslt"/>
410        </bean>
411        <bean id="indicatorCompleteView" parent="commonXSLTTransformationView">
412                <property name="XSLTPathAndFilename" value="html/indicator/profile/complete_profile/CompleteProfilePage.xslt"/>
413        </bean>
414<!--
415        <bean id="indicatorDefaultView" parent="commonXSLTTransformationView">
416                <property name="XSLTPathAndFilename" value="html/indicator/profile/default/DefaultPage.xslt"/>
417        </bean>
418-->
419        <bean id="indicatorViewView" parent="commonXSLTTransformationView">
420                <property name="XSLTPathAndFilename" value="html/indicator/profile/view/ViewPage.xslt"/>
421        </bean>
422        <bean id="indicatorImportantFactsView" parent="commonXSLTTransformationView">
423                <property name="XSLTPathAndFilename" value="html/indicator/profile/important_facts/ImportantFactsPage.xslt"/>
424        </bean>
425        <bean id="indicatorServicesView" parent="commonXSLTTransformationView">
426                <property name="XSLTPathAndFilename" value="html/indicator/profile/available_services/AvailableServicesPage.xslt"/>
427        </bean>
428        <bean id="indicatorResourcesView" parent="commonXSLTTransformationView">
429                <property name="XSLTPathAndFilename" value="html/indicator/profile/more_resources/MoreResourcesPage.xslt"/>
430        </bean>
431        <bean id="indicatorRelatedIndicatorsView" parent="commonXSLTTransformationView">
432                <property name="XSLTPathAndFilename" value="html/indicator/profile/related_indicators/RelatedIndicatorsPage.xslt"/>
433        </bean>
434
435        <bean id="indicatorContentBlocksView" parent="commonXSLTTransformationView">
436                <property name="XSLTPathAndFilename" value="html/indicator/profile/ContentBlocks.xslt"/>
437        </bean>
438        <bean id="indicatorViewJSONView" parent="commonXSLTTransformationView">
439                <property name="XSLTPathAndFilename" value="json/IndicatorViewDataset.xslt"/>
440        </bean>
441        <bean id="indicatorJSONView" parent="commonXSLTTransformationView">
442                <description>Generic conversion from https://github.com/bramstein/xsltjson</description>
443                <property name="XSLTPathAndFilename" value="json/xml-to-json.xslt"/>
444        </bean>
445</beans>
Note: See TracBrowser for help on using the repository browser.