· 10 years ago · May 19, 2016, 08:06 AM
1<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
2<!DOCTYPE PrivateLabels SYSTEM "private.dtd" >
3
4<PrivateLabels i18nPackage="org.opengts.db">
5
6<!--
7 =======================================================================================
8 Project: OpenGTS - Open GPS Tracking System
9 URL : http://www.opengts.org
10 File : private.xml
11 =======================================================================================
12 Notes:
13 - The data format of this XML file is subject to change.
14 - A general tutorial on XML syntax can be found at "http://en.wikipedia.org/wiki/Xml"
15 - Value substitution variables are now in use in some values defined in this file.
16 They appear in the form "${Variable=defaultValue}", where "Variable" is a runtime
17 variable defined in one of the runtime property files ("default.conf","webapp.conf",
18 or "common.conf", etc), and "defaultValue" is the value to use for the substitution
19 if the named "Variable" is not found in the loaded runtime configuration files.
20 In all cases where you find "${Variable=defaultValue}", you can replace this sequence
21 with your own customized value "myValue". For instance, the "locale" attribute
22 on the "Domain" tag currently specifies the following:
23 locale="en"
24 If you wanted to set the current locale to Spanish, you replace this value with
25 locale="es"
26 - For "Property" tag specifications (parent tags "Properties", "MapProvider", and
27 "ReverseGeocodeProvider"), the key/value may be overidden in the 'config.conf' file.
28 The parent for the specified "Property" tag will contain an attribute "rtPropPrefix"
29 The value of this attribute indicates the property key prefix that can be used to
30 identify a specific property override in the 'config.conf' file. For instance,
31 the following property specification exists below:
32 <Properties rtPropPrefix="Domain.Properties.">
33 ...
34 <Property key="topMenu.showMenuHelp">true</Property>
35 ...
36 </Properties>
37 This means that the property value can be overidden in a 'config.conf' as follows:
38 Domain.Properties.topMenu.showMenuHelp=false
39 =======================================================================================
40 Change History:
41 2008/02/07 Martin D. Flynn
42 -Added 'i18n' attributes to displayable text to allow Localization.
43 2008/02/21 Martin D. Flynn
44 -Under the 'Domain' tag, replaced 'dateFormat' attribute with 'DateFormat' tag.
45 -Under the 'Domain' tag, replaced 'timeFormat' attribute with 'TimeFormat' tag.
46 -Added a few Europian timezones.
47 2008/04/11 Martin D. Flynn
48 -Modified MapProvider to allow specifying property key/values in separate tags.
49 2008/05/14 Martin D. Flynn
50 -Modified ReverseGeocodeProvider to allow specifying property key/val in separate tags.
51 -Added parent 'EMailAddresses' tag to 'EMailAddress' tags.
52 2008/06/20 Martin D. Flynn
53 -Added MapProvider section for Mapstraction support.
54 2008/07/08 Martin D. Flynn
55 -Additional changes to mapping support (Mapstraction, OpenLayers, etc).
56 2008/07/21 Martin D. Flynn
57 -The PageDecorations tag is now obsolete and has been removed from this 'private.xml'.
58 Page decorations are now handled by the JSP file at "war/track/jsp/loginSession.jsp".
59 -The attribute 'jsp' has been added to 'WebPages' and 'Pages' tags to allow specifying
60 a JSP to control the page look-and-feel.
61 2008/07/27 Martin D. Flynn
62 -Added 'Pushpins' tag section to parent 'MapProvider' tag.
63 2008/08/15 Martin D. Flynn
64 -Added Acl tag 'maximum' (was 'access') and 'default' attirbutes.
65 2008/09/12 Martin D. Flynn
66 -Added Domain properties "trackMap.showTimezoneSelection", "trackMap.showLastLocation"
67 2008/09/19 Martin D. Flynn
68 -Added "map.view" property support to MapProvider properties.
69 -Replaced property "trackMap.showLastLocation" with "trackMap.showUpdateLast".
70 2008/10/16 Martin D. Flynn
71 -Simplified ACL usage (attribute "maximum" changed to "values", reduced number of ACLs).
72 -Added additional Domain Properties
73 2008/12/01 Martin D. Flynn
74 -Global Domain Property tags have now been placed in a "Properties" parent tag.
75 2009/01/01 Martin D. Flynn
76 -Added Calendar property "calendar.firstDayOfWeek".
77 2009/02/01 Martin D. Flynn
78 -Added "<I18N>" tag section.
79 2009/02/20 Martin D. Flynn
80 -Various tag attribute and body-values may now have a value specification that resembles
81 something like "${Domain.key=defaultValue}". This means that when the value for this
82 attribute or tag body is evaluated, it will first attempt to obtain the value from
83 the runtime property definition file (ie. default.conf, webapp.conf, or common.conf).
84 If the specified key is not found in the runtime property files, then the value
85 specified for 'default' will be returned.
86 2009/05/01 Martin D. Flynn
87 -Added "StatusCodes" section for overriding the default status code descriptions.
88 2009/08/23 Martin D. Flynn
89 -Added "Legend" and "IconSelector" tags to MapProvider
90 2009/09/23 Martin D. Flynn
91 -Removed "${Domain....=}" variable substitution (to simplify configuration of open-source version)
92 2010/01/28 Martin D. Flynn
93 -Move Pushpins to common global area
94 2010/10/13 Martin D. Flynn
95 -Added SupportedLocales
96 =======================================================================================
97-->
98
99<!-- ==================================================================================== -->
100<!-- Supported Locales ================================================================= -->
101<!-- This list is used to populate the language selection pull-down menu on the login page.
102 === To display the language selection pull-down menu on the login page, make sure that the
103 === property "accountLogin.showLocaleSelection" is set to true.
104 -->
105<SupportedLocales>
106<!-- Locale id="ar" i18n="PrivateXML.locale.arabic" >Arabic</Locale -->
107 <Locale id="en" i18n="PrivateXML.locale.english" >English</Locale>
108 <Locale id="fr" i18n="PrivateXML.locale.french" >French</Locale>
109 <Locale id="de" i18n="PrivateXML.locale.german" >German</Locale>
110 <Locale id="el" i18n="PrivateXML.locale.greek" >Greek</Locale>
111 <Locale id="hu" i18n="PrivateXML.locale.hungarian" >Hungarian</Locale>
112 <Locale id="it" i18n="PrivateXML.locale.italian" >Italian</Locale>
113<!-- Locale id="lo" i18n="PrivateXML.locale.lao" >Lao</Locale -->
114 <Locale id="nl" i18n="PrivateXML.locale.dutch" >Dutch</Locale>
115 <Locale id="pl" i18n="PrivateXML.locale.polish" >Polish</Locale>
116 <Locale id="pt" i18n="PrivateXML.locale.portuguese">Portuguese</Locale>
117 <Locale id="ro" i18n="PrivateXML.locale.romanian" >Romanian</Locale>
118 <Locale id="ru" i18n="PrivateXML.locale.russian" >Russian</Locale>
119 <Locale id="sk" i18n="PrivateXML.locale.slovak" >Slovak</Locale>
120 <Locale id="sr" i18n="PrivateXML.locale.serbian" >Serbian</Locale>
121 <Locale id="es" i18n="PrivateXML.locale.spanish" >Spanish</Locale>
122 <Locale id="tr" i18n="PrivateXML.locale.turkish" >Turkish</Locale>
123</SupportedLocales>
124
125<!-- TimeZones ========================================================================= -->
126<!-- References:
127==== http://wwp.greenwichmeantime.com/info/timezone.htm
128==== http://www.worldtimezone.com
129==== A list of available timezones can be found in the file 'timezones.conf'
130==== These TimeZones will be shared among all of the specified PrivateLabel Domains
131-->
132<TimeZones>
133 US/Hawaii US/Alaska US/Pacific US/Arizona US/Mountain US/Central US/Eastern
134 Canada/Pacific Canada/Mountain Canada/Central Canada/Eastern Canada/Atlantic
135 Mexico/BajaNorte Mexico/BajaSur Mexico/General
136 Europe/Athens Europe/Berlin Europe/Dublin Europe/Helsinki Europe/Kiev Europe/Lisbon
137 Europe/London Europe/Madrid Europe/Moscow Europe/Oslo Europe/Paris Europe/Rome
138 Europe/Stockholm Europe/Zurich
139 GMT GMT+00:00
140 GMT+01:00 GMT+02:00 GMT+03:00 GMT+04:00 GMT+05:00 GMT+05:30 GMT+06:00 GMT+06:30 GMT+07:00
141 GMT+08:00 GMT+09:00 GMT+10:00 GMT+11:00 GMT+12:00 GMT+13:00 GMT+14:00
142 GMT-01:00 GMT-02:00 GMT-03:00 GMT-04:00 GMT-05:00 GMT-06:00 GMT-07:00
143 GMT-08:00 GMT-09:00 GMT-10:00 GMT-11:00 GMT-12:00
144</TimeZones>
145
146<!-- ================================================================================= -->
147<!-- localhost ============================================================== -->
148<!--
149Notes:
150* Make sure you replace all occurances of "example.com" below with your own domain name.
151* The 'host' attribute on the 'Domain' tag specifies to which webserver domain name the 'Domain'
152 definition refers. Specifying 'host="*"' indicates that this 'Domain' tag should be considered
153 the default PrivateLabel Domain definition for all connections made to the server. You may create
154 multiple 'Domain' definitions, each with their own set of attributes and features.
155* The OpenGTS system has the ability to bind Account records to a specific PrivateLabel domain
156 (defined by a "Domain" tag below). This is done to provide specific access control to certain
157 services such as mapping and reverse-geocoding. (ie. when a device connects to the server to send
158 data, the PrivateLabel defined for the account is used to determine which reverse-geocoding service
159 to use to create an address from the latitude/longitude). To bind an account record to a specific
160 PrivateLabel 'Domain', set the 'privateLabelName' column in the specific account record to the
161 specified 'name' of the Domain (ie. the value of the 'name' attribute). If an account record
162 'privateLabelName' has not been specified (ie. is blank), then the services defined in the default
163 PrivateLabel will be used.
164* If no default PrivateLabel domain has been specified (ie. no 'Domain' tag exists with attribute
165 'host="*"'), then all Account records must have a valid 'privateLabelName' specified. Otherwise,
166 no PrivateLabel domain can be associated with the account, and some services (reverse-geocoding,
167 etc) may not be available.
168* To remove the "Demo" button from the login pages, specify 'demo="false"' below.
169* Supported languages now include:
170 "de" (German)
171 "el" (Greek)
172 "en" (English)
173 "es" (Spanish)
174 "fr" (French)
175 "hu" (Hungarian)
176 "it" (Italian)
177 "nl" (Netherlands/Dutch)
178 "pl" (Polish)
179 "pt" (Portuguese)
180 "ro" (Romanian)
181 "ru" (Russian)
182 "sk" (Slovak)
183 "sr" (Serbian)
184 "tr" (Turkish)
185 To change the locale to a different language, look for the locale="en" on the Domain tag below and
186 replace "en" with the desired supported language code from the above list.
187-->
188<Domain
189 name="${Domain.name=default}"
190 host="${Domain.host=*}"
191 allowLogin="${Domain.allowLogin=true}"
192 accountLogin="${Domain.accountLogin=true}"
193 userLogin="${Domain.userLogin=true}"
194 emailLogin="${Domain.emailLogin=false}"
195 showPassword="${Domain.showPassword=true}"
196 restricted="${Domain.restricted=false}"
197 demo="${Domain.demo=false}"
198 locale="${Domain.locale=ru}">
199
200 <!-- Default Base URL -->
201 <!-- - ->
202 <BaseURL><![CDATA[http://localhost:8080/track/Track]]></BaseURL>
203 <!- - -->
204
205 <!-- Alias hosts (specifies other alias domains) -->
206 <Alias host="${Domain.Alias=localhost}"/> <!-- this should match the server host domain name -->
207 <Alias host="${Domain.Alias.1=}"/>
208 <Alias host="${Domain.Alias.2=}"/>
209
210 <!-- Default login account/user (when no AcountID/UserID is specified)
211 === DefaultLoginAccount:
212 === The default accout id will be used if the account id is left blank, or if the account login
213 === field is not included on the login screen based on the Domain attribute 'accountLogin' value.
214 === Default LoginUser:
215 === "admin" is the default username and does not need to be explicitly specified. The "admin"
216 === user need not exist as the default information from the 'Account' record will be used to
217 === identify the 'admin' user (if the 'admin' user does exist, then it will override the user
218 === identifying information in the Account record).
219 === If the specified user is anything other than "admin", then the user MUST exist in the
220 === User table otherwise login will always be denied when the user field is blank.
221 === (Note: The 'defaultUser' column in the login "Account" table can override this value.)
222 -->
223 <DefaultLoginAccount>${Domain.DefaultLoginAccount=}</DefaultLoginAccount>
224 <DefaultLoginUser>${Domain.DefaultLoginUser=admin}</DefaultLoginUser>
225
226 <!-- ========================================================================================== -->
227
228 <!-- "Domain" level I18N Strings
229 === Specify localizable strings here which can be referenced elsewhere in this XML file, or in
230 === the "loginSession.jsp" file referenced in the "WebPages" tag.
231 === - These strings can be referenced within property and string values by surrounding the key
232 === with ${...}, such as "${i18n.MyLocalizableText}".
233 === - Like other Localizable text, these strings will appear the in the various
234 === "LocalStrings_XX.properties" files.
235 === - The <I18N> tag section must appear before the refererence to the specific string key
236 === elsewhere in this XML file.
237 -->
238 <I18N>
239 <!-- Legend -->
240 <String key="i18n.PushPin_Legend" i18n="PrivateXML.legend.title" >Pushpin Legend</String>
241 <String key="i18n.More_than_20mph" i18n="PrivateXML.legend.gt20mph" >More than %{mph:20}</String>
242 <String key="i18n.More_than_15mph" i18n="PrivateXML.legend.gt15mph" >More than %{mph:15}</String>
243 <String key="i18n.More_than_5mph" i18n="PrivateXML.legend.gt5mph" >More than %{mph:5}</String>
244 <String key="i18n.Less_than_5mph" i18n="PrivateXML.legend.lt5mph" >Less than %{mph:5}</String>
245 <String key="i18n.Last_Location" i18n="PrivateXML.legend.lastLocation" >Last Location</String>
246 <String key="i18n.Page_Title" i18n="PrivateXML.pageTitle" >GPS Tracking</String>
247 <!-- MenuGroup -->
248 <String key="i18n.Last_Location_Map" i18n="PrivateXML.menugroup.maps.lastLocMap">Last Location Map</String>
249 </I18N>
250
251 <!-- ========================================================================================== -->
252
253 <!-- Copyright used in html head 'meta' tag -->
254 <Copyright>${Domain.Copyright=Copyright(C) 2007-2015 GeoTelematic Solutions, Inc.}</Copyright>
255
256 <!-- Title used in html head 'title' tag -->
257 <PageTitle i18n="PrivateXML.pageTitle">${Domain.PageTitle=${ServiceAccount.Name=OpenGTS} GPS Tracking}</PageTitle>
258
259 <!-- Date/Time format (Note: These date/time format values are CASE SENSITIVE!!)
260 === Formatting options:
261 === yyyy - year
262 === MM - month
263 === dd - day
264 === HH - 24 hour
265 === hh - 12 hour
266 === mm - minute
267 === ss - second
268 === aa - AM/PM
269 === "DateFormat" below should be one of the following:
270 === - yyyy/MM/dd
271 === - MM/dd/yyyy
272 === - dd/MM/yyyy
273 -->
274 <DateFormat>${Domain.DateFormat=yyyy/MM/dd}</DateFormat> <!-- see "java.text.SimpleDateFormat" -->
275 <TimeFormat>${Domain.TimeFormat=HH:mm:ss}</TimeFormat> <!-- see "java.text.SimpleDateFormat" -->
276
277 <!-- EMail addresses -->
278 <EMailAddresses domainName="${Domain.EMailAddresses.domainName=example.com}"> <!-- should match your own email domain name -->
279 <EMailAddress>${Domain.EMailAddress=gpstracking@example.com}</EMailAddress> <!-- default email address -->
280 <!-- <EMailAddress type="password">password</EMailAddress> --> <!-- "ReplyTo" for password requests -->
281 <!-- <EMailAddress type="accounts">accounts</EMailAddress> --> <!-- "ReplyTo" for new accounts -->
282 <!-- <EMailAddress type="support" >support</EMailAddress> --> <!-- General support -->
283 <!-- <EMailAddress type="notify" >notify</EMailAddress> --> <!-- Event Notification -->
284 </EMailAddresses>
285
286 <!-- ========================================================================================== -->
287 <!-- Properties =============================================================================== -->
288
289 <!-- "Domain" level Properties -->
290 <!-- internal property references must be immediately resolvable. IE. no forward references. -->
291 <Properties rtPropPrefix="Domain.Properties.">
292 <!-- the "rtPropPrefix" value above can be used to override these properties in one of the
293 === runtime '.conf' files. The property name can be constructed by concatenating the prefix
294 === value with the property name below. For instance:
295 === Domain.Properties.trackMap.calendarAction=fixed
296 -->
297
298 <!-- Default Enabled MapProvider -->
299 <!--
300 <Property key="MapProvider.active">googleMaps</Property>
301 <Property key="zoneInfo.showShapeColor">true</Property>
302 -->
303
304 <!-- Override HTMLTools "http.userAgent" (see RTKey.HTTP_USER_AGENT) -->
305 <Property key="http.userAgent">GTS/${%version} [${session.locale=EN}] ${session.name=}</Property>
306
307 <!-- Track properties -->
308 <Property key="track.validateIDs">true</Property> <!-- [true|false] validate all IDs (MUST BE TRUE) -->
309 <Property key="track.enableAuthenticationService">false</Property> <!-- [true|false] enable "page=AUTHENTICATE" -->
310 <Property key="track.forwardToSecureAccess">false</Property> <!-- [true|false] forward 'http' to 'https' -->
311 <Property key="track.firstLoginPageID">menu.top</Property> <!-- [menu.top|map.device|map.fleet] first page after login -->
312
313 <!-- AccountLogin properties -->
314 <Property key="accountLogin.showLoginLink">true</Property> <!-- [true|false] show "Login" link on login page -->
315 <Property key="accountLogin.legacyLAF">false</Property> <!-- [true|false] show "Login" legacy look-and-feel -->
316 <Property key="accountLogin.showLocaleSelection">false</Property> <!-- [true|false] (EXPERIMENTAL) show "Language" selection on login page -->
317
318 <!-- MenuBar properties -->
319 <Property key="menuBar.openOnMouseOver">true</Property> <!-- [true|false] popup menu on mouseover -->
320 <Property key="menuBar.includeTextAnchor">false</Property> <!-- [true|false] include text anchor tag (link) -->
321
322 <!-- TopMenu menu type -->
323 <Property key="topMenu.menuType">expand</Property> <!-- [fixed|expand|button] menu type -->
324 <!--
325 === fixed : Fixed (non-expandable) text menu items
326 === fixed-icon : Fixed text menu items with icon representation (set by "IconImage" tag)
327 === expand : Expandable text menu items
328 === expand-icon : Expandable icon menu items (set by "IconImage" tag)
329 === button : "ButtonImage" button menu items (set by "ButtonImage" tag)
330 === button-icon : "ButtonImage" button ("ButtonImage" tag), with icon ("IconImage" tag) overlay, menu items
331 -->
332
333 <!-- TopMenu properties -->
334 <Property key="topMenu.maximumIconsPerRow">9</Property> <!-- [#] (for 'menuType=icon') max icons per row -->
335 <Property key="topMenu.showHeader">default</Property> <!-- [true|false|default] show header -->
336 <Property key="topMenu.showMenuDescription">long</Property> <!-- [none|short|long] show menu description -->
337 <Property key="topMenu.showMenuHelp">true</Property> <!-- [true|false] show menu help -->
338
339 <!-- TrackMap properties -->
340 <Property key="trackMap.fleetDeviceEventCount">1</Property> <!-- [#] limit of points per device on "fleet" map -->
341 <Property key="trackMap.showFleetMapDevicePushpin">default</Property> <!-- [default|true|false] display device pushpin on fleet map -->
342 <Property key="trackMap.calendarAction">fade</Property> <!-- [fixed|fade|popup] calendar action -->
343 <Property key="trackMap.calendarDateOnLoad">last</Property> <!-- [last|current] set calendar date OnLoad -->
344 <Property key="trackMap.showTimezoneSelection">true</Property> <!-- [true|false] show timezone selection pulldown -->
345 <Property key="trackMap.showPushpinReplay">true</Property> <!-- [true|false] show "Replay" button (device map only) -->
346 <Property key="trackMap.showCursorLocation">true</Property> <!-- [true|false] show cursor location lat/lon -->
347 <Property key="trackMap.showDistanceRuler">true</Property> <!-- [true|false] show distance ruler (if supported by map) -->
348 <Property key="trackMap.showLegend">true</Property> <!-- [true|false] show legend -->
349 <Property key="trackMap.mapUpdateOnLoad">all</Property> <!-- [all|last] Update Map -->
350 <Property key="trackMap.autoUpdateRecenter">zoom</Property> <!-- [no|last|zoom] recenter map on auto-update -->
351 <Property key="trackMap.detailCenterPushpin">false</Property> <!-- [true|false] center pushpin when selecting a detail row -->
352 <Property key="trackMap.showLocationDetails">true</Property> <!-- [true|false] show "Location Details" report -->
353 <Property key="trackMap.detailAscending">true</Property> <!-- [true|false] sort detail events in ascending/descending order -->
354 <Property key="trackMap.showUpdateAll">true</Property> <!-- [true|false] show "Update All" location button -->
355 <Property key="trackMap.showUpdateLast">false</Property> <!-- [true|false] show Update "Last" location button -->
356 <Property key="trackMap.mapControlLocation">right</Property> <!-- [right|left] show controls to the left|right of the map -->
357 <Property key="trackMap.mapControlCollapsible">true</Property> <!-- [true|false] show collapsible controls -->
358 <Property key="trackMap.showLocateNow">false</Property> <!-- [true|false] show "Locate Now" button -->
359 <Property key="trackMap.showGoogleKML">false</Property> <!-- [true|false|last] show "Google KML" link -->
360 <Property key="trackMap.limitType">last</Property> <!-- [first|last] overflow limit type -->
361 <Property key="trackMap.enableGeocode">false</Property> <!-- [true|false] (EXPERIMENTAL) show "Find Address" -->
362 <Property key="trackMap.showDeviceLink">false</Property> <!-- [true|false] show Device Link (requires Device support) -->
363 <Property key="trackMap.showBatteryLevel">false</Property> <!-- [false|icon|percent|default] show last Battery Level (requires Device support) -->
364 <Property key="trackMap.useRouteDisplayColor">true</Property> <!-- [true|false] use Device 'displayColor' for route-line color -->
365 <Property key="trackMap.showAllContainedGeozones">false</Property> <!-- [true|false] (EXPERIMENTAL) show all contained Geozones ('false' shows only 'inner' Geozone) -->
366 <Property key="trackMap.lastDevicePushpin.fleet">true</Property> <!-- [true|false] show device pushpin for last pushpin on fleet map -->
367 <Property key="trackMap.lastDevicePushpin.device">false</Property> <!-- [true|false] show device pushpin for last pushpin on device map -->
368
369 <!-- GoogleKML properties -->
370 <Property key="googleKML.lastPushpinID">blue</Property> <!-- Color ID of the last event pushpin -->
371
372 <!-- ReportMenu properties -->
373 <Property key="reportMenu.useMapDates">true</Property> <!-- [true|false] use 'Map' Calendar dates (else use private dates) -->
374 <Property key="reportMenu.showTimezoneSelection">true</Property> <!-- [true|false] show timezone selection pulldown -->
375 <Property key="reportMenu.enableReportEmail">false</Property> <!-- [true|false] enable 'EMail' format option for reports -->
376 <Property key="reportMenu.customFormatURL"></Property> <!-- [URL] (EXPERIMENTAL) -->
377
378 <!-- ReportDisplay properties -->
379 <Property key="reportDisplay.showGoogleKML">false</Property> <!-- [true|false] show "KML" link (supported reports only) -->
380
381 <!-- DeviceInfo properties -->
382 <Property key="deviceInfo.allowEditServerID">false</Property> <!-- [true|false] Allow editing "Server ID" -->
383 <Property key="deviceInfo.allowEditFirmwareVersion">false</Property> <!-- [true|false] Allow editing "Firmware Version" -->
384 <Property key="deviceInfo.showNotificationFields">default</Property> <!-- [true|false|default] show notification fields -->
385 <Property key="deviceInfo.showWorkOrderField">default</Property> <!-- [true|false|default] show WorkOrder ID field -->
386 <Property key="deviceInfo.showPropertiesButton">false</Property> <!-- [true|false] show "Properties" button -->
387 <Property key="deviceInfo.showSmsButton">false</Property> <!-- [true|false] show "SMS" button -->
388 <Property key="deviceInfo.showFixedLocation">false</Property> <!-- [true|false] show Device 'fixed' location (required fixe loc fields) -->
389 <Property key="deviceInfo.showNotes">false</Property> <!-- [true|false] show "Notes" field -->
390 <Property key="deviceInfo.showExpectedAcks">false</Property> <!-- [true|false] show "Expect Ack" column -->
391 <Property key="deviceInfo.showIgnitionIndex">false</Property> <!-- [true|false] show Ignition Index -->
392 <Property key="deviceInfo.maximumIgnitionIndex">7</Property> <!-- [0..15] maximum Ignition Index -->
393 <Property key="deviceInfo.showPushpinID">false</Property> <!-- [true|false] show Pushpin ID -->
394 <Property key="deviceInfo.showPushpinChooser">true</Property> <!-- [true|false] show Pushpin Chooser -->
395 <Property key="deviceInfo.showDisplayColor">true</Property> <!-- [true|false] show Display Color ("Route-Line") -->
396 <Property key="deviceInfo.showDataKey">false</Property> <!-- [true|false] (EXPERIMENTAL) show Data Key -->
397 <Property key="deviceInfo.allowNewDevice">true</Property> <!-- [true|false|sysadmin] allow new device creation -->
398 <Property key="deviceInfo.allowDeleteDevice">true</Property> <!-- [true|false|sysadmin] allow delete device -->
399 <Property key="deviceInfo.showFaultCodes">false</Property> <!-- [true|false] show last fault codes (requires Device/EventData table support) -->
400 <Property key="deviceInfo.sms.useDeviceSMSCommands">true</Property> <!-- [true|false] Use Device "deviceCode" SMS commands -->
401
402 <!-- GroupInfo properties -->
403 <Property key="groupInfo.showPropertiesButton">false</Property> <!-- [true|false] show "Properties" button -->
404 <Property key="groupInfo.deviceListSortBy">desc</Property> <!-- [id|desc] sort device member list by -->
405
406 <!-- UserInfo properties -->
407 <Property key="userInfo.showPreferredDeviceID">false</Property> <!-- [true|false|admin] show preferred device ID field -->
408 <Property key="userInfo.showPassword">false</Property> <!-- [true|false] Show passwords on User admin -->
409 <Property key="userInfo.authorizedGroupCount">0</Property> <!-- [Integer] (EXPERIMENTAL) Number of authorized group pull-downs to show -->
410
411 <!-- DriverInfo properties -->
412 <Property key="driverInfo.showDeviceID">false</Property> <!-- [true|false] Show "Device ID" field -->
413
414 <!-- ZoneInfo properties -->
415 <Property key="zoneInfo.mapControlLocation">right</Property> <!-- [right|left] show controls to the left|right of the map -->
416 <Property key="zoneInfo.enableGeocode">false</Property> <!-- [true|false] (Experimental) show "Center on ZipCode" -->
417 <Property key="zoneInfo.showOverlapPriority">false</Property> <!-- [true|false] show "Overlap Priority" pull-down -->
418 <Property key="zoneInfo.showArriveDepartZone">true</Property> <!-- [true|false] show "Arrival/Departure Zone" checkbox -->
419 <Property key="zoneInfo.showAutoNotify">false</Property> <!-- [true|false] show "Auto Notify" checkbox (also requires email setup) -->
420 <Property key="zoneInfo.showClientUploadZone">false</Property> <!-- [true|false|id] show "Client Upload" checkbox/ID -->
421 <Property key="zoneInfo.showShapeColor">true</Property> <!-- [true|false] show zone shape color -->
422 <Property key="zoneInfo.showSpeedLimit">false</Property> <!-- [true|false] show speed limit -->
423 <Property key="zoneInfo.maximumDisplayedVertices">-1</Property> <!-- [1..8] maximum number of point/vertices to display -->
424
425 <!-- StatusCodeInfo properties (module may not be present) -->
426 <Property key="statusCodeInfo.showIconSelector">true</Property> <!-- [true|false] Show Icon 'Rule' Selector? -->
427 <Property key="statusCodeInfo.showPushpinChooser">true</Property> <!-- [true|false] show Pushpin Chooser -->
428
429 <!-- SysAdminAccounts properties (module may not be present) -->
430 <Property key="sysAdminAccounts.allowDeleteAccount">true</Property> <!-- [true|false] allow delete account -->
431 <Property key="sysAdminAccounts.showPasswords">false</Property> <!-- [true|false] show passwords (possible security risk) -->
432 <Property key="sysAdminAccounts.showAccountManager">false</Property> <!-- [true|false] show account manager, if supported -->
433 <Property key="sysAdminAccounts.showNotes">false</Property> <!-- [true|false] show "Notes" -->
434
435 <!-- Account-Login properties (if available) -->
436 <Property key="accountLogin.enableLogin">false</Property> <!-- [true|false] allow login to other accounts (possible security risk) -->
437 <Property key="accountLogin.passcode">relogin</Property> <!-- [String] (EXPERIMENTAL) relogin passcode (possible security risk) -->
438 <Property key="accountLogin.enableReturn">false</Property> <!-- [true|false] allow return to originator on logout -->
439
440 <!-- CorridorInfo properties (module may not be present) -->
441 <Property key="corridorInfo.mapControlLocation">right</Property> <!-- [right|left] show controls to the left|right of the map -->
442 <Property key="corridorInfo.showShapeColor">true</Property> <!-- [true|false|id] show corridor shape color -->
443 <Property key="corridorInfo.enableGeocode">false</Property> <!-- [true|false] (Experimental) show "Center on ZipCode" -->
444 <Property key="corridorInfo.pointCount">15</Property> <!-- [Integer] show number of corridor points -->
445
446 <!-- RuleInfo properties (module may not be present) -->
447 <Property key="ruleInfo.showEMailWrapper">false</Property> <!-- [true|false] Show "Use EMail Wrapper" -->
448 <Property key="ruleInfo.showSysAdminRules">yes</Property> <!-- [no|yes|only] SysAdmin rules only? -->
449 <Property key="ruleInfo.showCronRules">true</Property> <!-- [no|yes|only] SysAdmin rules only? -->
450 <Property key="ruleInfo.ruleTagList">hourly,daily,weekly</Property> <!-- [String,String,...] Displayed Rule Tags -->
451 <Property key="ruleInfo.showPredefinedActions">false</Property> <!-- [true|false] Display predefined (canned) actions -->
452
453 <!-- SysAdminInfo properties (module may not be present) -->
454 <Property key="sysAdminInfo.showEventsPerSecond">false</Property> <!-- [true|false] show Events-Per-Second -->
455
456 <!-- DeviceChooser properties -->
457 <Property key="deviceChooser.sortBy">description</Property> <!-- [id|name|description] sort by -->
458 <Property key="deviceChooser.useTable">true</Property> <!-- [true|false] use DeviceChooser table selection -->
459 <Property key="deviceChooser.idPosition">last</Property> <!-- [none|first|last] ID column position -->
460 <Property key="deviceChooser.search">false</Property> <!-- [true|false] enable description search -->
461 <Property key="deviceChooser.matchContains">true</Property> <!-- [true|false] match on 'contains' (otherwise 'startsWith') -->
462 <Property key="deviceChooser.singleItemTextField">false</Property> <!-- [true|false] text field for single selections (non-table only) -->
463 <Property key="deviceChooser.includeListHtml">false</Property> <!-- [true|false] EXPERIMENTAL -->
464 <Property key="deviceChooser.extraDebugEntries">0</Property> <!-- DEBUG TESTING PURPOSES ONLY! -->
465
466 <!-- Calendar properties -->
467 <Property key="calendar.firstDayOfWeek">0</Property> <!-- [0=Sun,1=Mon,...6=Sat] calendar first day of week -->
468 <Property key="calendar.timeTextField">true</Property> <!-- [true|false] allow entering hour:minute via a text field -->
469
470 <!-- DeviceAlerts properties (module may not be present) -->
471 <Property key="deviceAlerts.refreshInterval">120</Property> <!-- [#sec] refresh interval in seconds -->
472 <!-- <Property key="deviceAlerts.mapPageName">map.fleet</Property> --> <!-- [<pageName>] forwarded page name -->
473 <!-- <Property key="deviceAlerts.mapPageName">map.device</Property> --> <!-- [<pageName>] forwarded page name -->
474 <Property key="deviceAlerts.showAllDevices">false</Property> <!-- [true|false] show all devices (incl those without alerts) -->
475 <Property key="deviceAlerts.maxActiveAlertAge">21600</Property> <!-- [#sec] maximum 'active' alert (21600 == 6 hrs)-->
476
477 <!-- Obsolete properties -->
478 <!--
479 <Property key="groupInfo.validateNewIDs">true</Property>
480 <Property key="userInfo.validateNewIDs">true</Property>
481 <Property key="driverInfo.validateNewIDs">true</Property>
482 <Property key="zoneInfo.validateNewIDs">true</Property>
483 <Property key="sysAdminAccounts.validateNewIDs">true</Property>
484 <Property key="roleInfo.validateNewIDs">true</Property>
485 <Property key="ruleInfo.validateNewIDs">true</Property>
486 <Property key="deviceInfo.validateNewIDs">true</Property>
487 -->
488
489 </Properties>
490
491 <!-- ========================================================================================== -->
492 <!-- Default Pushpins =========================================================================
493 === Pushpins creation options:
494 === http://www.powerhut.co.uk/googlemaps/custom_markers.php
495 -->
496
497 <!-- The "Pushpins" tag section allows overriding the pushpins displayed on the map.
498 === These are the standard Google icons
499 === IE. http://labs.google.com/ridefinder/images/mm_20_red.png
500 -->
501 <!--
502 <Pushpins baseURL="http://labs.google.com/ridefinder/images/">
503 <Pushpin key="black" icon="mm_20_black.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
504 <Pushpin key="brown" icon="mm_20_brown.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
505 <Pushpin key="red" icon="mm_20_red.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
506 <Pushpin key="orange" icon="mm_20_orange.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
507 <Pushpin key="yellow" icon="mm_20_yellow.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
508 <Pushpin key="green" icon="mm_20_green.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
509 <Pushpin key="blue" icon="mm_20_blue.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
510 <Pushpin key="purple" icon="mm_20_purple.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
511 <Pushpin key="gray" icon="mm_20_gray.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
512 <Pushpin key="white" icon="mm_20_white.png" shadow="mm_20_shadow.png" iconSize="12,20" iconOffset="6,20" shadowSize="22,20"/>
513 </Pushpins>
514 <!- - -->
515
516 <!-- The "Pushpins" tag section allows overriding the default pushpins displayed on the map. -->
517 <!-- (these icons created using "Marker Maker") -->
518 <Pushpins baseURL="images/pp/">
519 <!-- override standard color pushpins -->
520 <Pushpin key="black" icon="pin30_black.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
521 <Pushpin key="brown" icon="pin30_brown.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
522 <Pushpin key="red" icon="pin30_red.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
523 <Pushpin key="orange" icon="pin30_orange.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
524 <Pushpin key="yellow" icon="pin30_yellow.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
525 <Pushpin key="green" icon="pin30_green.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
526 <Pushpin key="blue" icon="pin30_blue.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
527 <Pushpin key="purple" icon="pin30_purple.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
528 <Pushpin key="gray" icon="pin30_gray.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
529 <Pushpin key="white" icon="pin30_white.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
530 <!-- other solid colors -->
531 <Pushpin key="darkred" icon="pin30_darkred.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
532 <Pushpin key="darkgreen" icon="pin30_darkgreen.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
533 <Pushpin key="darkblue" icon="pin30_darkblue.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
534 <Pushpin key="darkpurple" icon="pin30_darkpurple.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
535 <Pushpin key="teal" icon="pin30_teal.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
536 <Pushpin key="salmon" icon="pin30_salmon.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
537 <Pushpin key="gold" icon="pin30_gold.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
538 <Pushpin key="pink" icon="pin30_pink.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
539 <Pushpin key="lime" icon="pin30_lime.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
540 <Pushpin key="bluegray" icon="pin30_bluegray.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
541 <Pushpin key="magenta" icon="pin30_magenta.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
542 <!-- some additional pushpins -->
543 <Pushpin key="reddot" icon="pin30_red_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
544 <Pushpin key="greendot" icon="pin30_green_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
545 <Pushpin key="bluedot" icon="pin30_blue_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
546 </Pushpins>
547
548 <!-- Multiple 'Pushpins' tags may be specified -->
549 <Pushpins baseURL="images/pp/">
550 <!--
551 === This example shows how a custom pushpin marker can be generated from within Javascript itself.
552 === The Javascript function argument 'e' below, is a pointer to a 'MapEventRecord' object which
553 === contains the following properties relative to the current event:
554 === device : The Device ID
555 === timestamp : The Epoch timestamp
556 === date : The date (formatted per the Domain/Account specifications)
557 === time : The time (formatted per the Domain/Account specifications)
558 === code : The StatusCode description
559 === iconNdx : The icon index
560 === latitude : The Latitude
561 === longitude : The Longitude
562 === speedKPH : The speed in km/h
563 === speedMPH : The speed in mph
564 === heading : The heading (in drgrees)
565 === compass : The compas heading (N,NE,E,SE,S,SW,W,NW)
566 === altitude : The altitude in meters
567 === address : The street address (may be blank if address is not available)
568 === =======================
569 === The example Javascript functions 'evHeadingYellowURL', 'evHeadingGreenURL', and 'evHeadingMarkerURL',
570 === can be found in the 'jsmap.js' file and analyzes the event 'heading' and returns a URL reference that
571 === indicates the direction of travel.
572 === =======================
573 === The Pushpin keys "all", "fleet", "stop", "slow", "moving", "last" below are used by the default icon
574 === selector "<EventData>.getDefaultMapIconIndex(...)" to select a pushpin icon for the map.
575 -->
576 <!-- If uncommented, the "all" key will control ALL icon selections for the map - ->
577 <Pushpin key="all" eval="evHeadingMarkerURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_green_h1.png"/>
578 <!- - -->
579 <Pushpin key="fleet" icon="pin30_blue_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
580 <Pushpin key="stop" icon="pin30_red_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
581 <Pushpin key="slow" eval="evHeadingYellowURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_yellow_h1.png"/>
582 <Pushpin key="moving" eval="evHeadingGreenURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_green_h1.png"/>
583 <!-- If uncommented, the "last" key will control the icon selected for the last pushpin on the map within the date range - ->
584 <Pushpin key="last" icon="pin30_blue_dot.png" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30"/>
585 <!- - -->
586 </Pushpins>
587 <Pushpins baseURL="images/pp/">
588 <Pushpin key="greenh" eval="evHeadingGreenURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_green_h1.png"/>
589 <Pushpin key="yellowh" eval="evHeadingYellowURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_yellow_h1.png"/>
590 <Pushpin key="heading" eval="evHeadingMarkerURL(e)" shadow="pin30_shadow.png" iconSize="18,30" iconOffset="9,30" shadowSize="30,30" image="pin30_green_h1.png"/>
591 </Pushpins>
592
593 <!-- Text Label pushpin -->
594 <Pushpins baseURL="">
595 <!--
596 === - This uses image "label47_fill.png" and calls back to 'Track.java' (see PAGE_MARKER)
597 === to write the device short name into the png image. "label47_fill.png" can handle
598 === text up to 6 or 7 characters long (using 9pt font).
599 === - To use this feature, edit the Device information (using the Device Admin page), add
600 === a 'Short Name', and select "label" for the 'Group Pushpin ID'. The icon will show
601 === on the fleet map with the embedded short-name text (if a short name has not been
602 === entered, the DeviceID will be used).
603 -->
604 <Pushpin key="devlabel" eval="evDeviceNameIconURL(e)" iconSize="47,24" iconOffset="9,24" image="images/pp/label47_fill.png"/>
605 <!-- "evDeviceNameIconURL" is defined in 'jsmap.js' -->
606 </Pushpins>
607
608 <!-- ========================================================================================== -->
609
610 <Legend type="device" includeDefault="true">
611 <Title>${i18n.PushPin_Legend}:</Title>
612 <!-- If the text field contains any of the following key replacement vars, the value
613 === will be replaced with the speed units of the current account:
614 === %{kph:XX} : XX, specified in km/h, will be converted to the account speed units
615 === %{mph:XX} : XX, specified in mph, will be converted to the account speed units
616 === IE. "%{mph:20}" is replaced with "32 km/h" if the current account speed units is km/h
617 -->
618 <Icon name="greendot" scale="0.7">${i18n.More_than_20mph}</Icon>
619 <Icon name="yellow" scale="0.7">${i18n.More_than_5mph}</Icon>
620 <Icon name="stop" scale="0.7">${i18n.Less_than_5mph}</Icon>
621 </Legend>
622
623 <Legend type="fleet" includeDefault="true">
624 <Title>${i18n.PushPin_Legend}:</Title>
625 <Icon name="bluedot" scale="0.7">${i18n.Last_Location}</Icon>
626 </Legend>
627
628 <!-- ========================================================================================== -->
629
630 <!-- MapProvider notes:
631 === - All MapProvider classes listed here must implement "org.opengts.war.tools.MapProvider"
632 === - Only the first "active" MapProvider will be used.
633 === - Remove the XML comment characters from around any Property you wish to change.
634 === Most map providers should support the following properties:
635 === <Property key="javascript.src"><![CDATA[
636 === http://js.example.com/js/MyCustomJavaScript.js
637 === ]]></Property> - include additional Javascript
638 === <Property key="zone.map.width">630</Property> - Geozone map width
639 === <Property key="zone.map.height">530</Property> - Geozone map height
640 === <Property key="map.width">680</Property> - width of the map in pixels
641 === <Property key="map.height">470</Property> - height of the map in pixels
642 === <Property key="map.maxPushpins">500</Property> - maximum number of displayed pushpins
643 === <Property key="map.maxPushpins.device">500</Property> - maximum number of displayed pushpins for device map only
644 === <Property key="map.maxPushpins.fleet">500</Property> - maximum number of displayed pushpins for fleet map only
645 === <Property key="map.maxPushpins.report">500</Property> - maximum number of displayed pushpins for report map only
646 === <Property key="map.routeLine">true</Property> - include travel route line
647 === <Property key="map.routeLine.color">#FF2222</Property> - include travel route line color
648 === <Property key="map.routeLine.arrows">false</Property> - include travel route line (GoogleMaps only - blue)
649 === <Property key="map.minProximity">0.0</Property> - minimum meters between adjacent events
650 === <Property key="default.zoom">4</Property> - default zoom when no pushpins are displayed
651 === <Property key="default.lat">39.0000</Property> - default latitude when no pushpins are displayed
652 === <Property key="default.lon">-100.0000</Property> - default longitude when no pushpins are displayed
653 === <Property key="auto.enable">true</Property> - enable/disable auto-update
654 === <Property key="auto.interval">30</Property> - auto-update interval (in seconds)
655 === <Property key="auto.count">10</Property> - maximum number of auto-updates
656 === <Property key="auto.skipRadius">15</Property> - skip nearby points radius (meters) [OpenLayers/Google only]
657 === Most map providers will support the following properties (but possible not all):
658 === <Property key="replay.enable">true</Property> - enable/disable replay
659 === <Property key="replay.interval">1700</Property> - milliseconds replay interval (values < 30 are interpreted as seconds)
660 === <Property key="replay.singlePushpin">false</Property> - show only single pushpin during replay
661 -->
662
663 <!-- =============================================
664 === OpenLayers [http://www.openlayers.org] using OpenStreetMaps [http://www.openstreetmap.org]
665 -->
666 <MapProvider name="openLayers"
667 active="${Domain.MapProvider.active=true}"
668 class="org.opengts.war.maps.jsmap.OpenLayers"
669 rtPropPrefix="Domain.MapProvider.">
670
671 <!-- override location of OpenLayers client-side JavaScript
672 === If you wish to keep your own local cache of the OpenLayers.js JavaScript
673 === Copy the OpenLayers.js module to a local server, then change this link
674 === to point to your local cached version.
675 -->
676 <!-- Property key="openlayers.js">./js/openlayers/OpenLayers.js</Property -->
677 <Property key="openlayers.js">http://openlayers.org/api/OpenLayers.js</Property>
678
679 <!-- MapQuest layers -->
680 <Property key="mapQuest.enableLayer.osm">false</Property> <!-- show MapQuest OSM map layer -->
681 <Property key="mapQuest.enableLayer.arial">false</Property> <!-- show MapQuest Arial map layer -->
682
683 <!-- miscellaneous -->
684 <Property key="map.fillFrame">false</Property> <!-- expand map to fill page frame -->
685 <!-- <Property key="map.width">-1</Property> -->
686 <!-- <Property key="map.height">-1</Property> -->
687 <Property key="info.showAltitude">true</Property> <!-- show altitude in info-balloon -->
688 <Property key="info.showSpeed">true</Property> <!-- show speed in info-balloon -->
689 <Property key="jsmap.showMapLoading">true</Property> <!-- show "Loading Map Points" when loading data -->
690 <!-- <Property key="jsmap.showMapLoading.image">./images/MapLoading.gif</Property> -->
691 <Property key="details.combineSpeedHeading">false</Property> <!-- combine speed/heading into single column -->
692
693 <!-- default zoom/location -->
694 <Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
695 <Property key="default.lat">39.0000</Property> <!-- default latitude when no pushpins are displayed -->
696 <Property key="default.lon">-96.5000</Property> <!-- default longitude when no pushpins are displayed -->
697
698 <!-- Geozone map size/config -->
699 <!-- <Property key="zone.map.width">630</Property> -->
700 <!-- <Property key="zone.map.height">540</Property> -->
701 <Property key="zone.map.multipoint">false</Property> <!-- [true|false] false==1 point, true=6 points -->
702 <Property key="zone.map.polygon">true</Property> <!-- [true|false] display polygon option -->
703 <Property key="zone.map.corridor">false</Property> <!-- [true|false] display corridor option (not supported) -->
704
705 <!-- include target geozones on map (a pushpin must be in the Geozone for it to be displayed) -->
706 <Property key="map.includeGeozones">false</Property>
707
708 <!-- route line -->
709 <Property key="map.routeLine">true</Property> <!-- include travel route line -->
710 <Property key="map.routeLine.color">#FF2222</Property> <!-- include travel route line color -->
711 <Property key="map.routeLine.arrows">false</Property> <!-- NOT SUPPORTED -->
712
713 <!-- replay -->
714 <Property key="replay.enable">true</Property> <!-- enable/disable replay -->
715 <Property key="replay.interval">1200</Property> <!-- replay interval (in milliseconds, values < 30 are interpreted as seconds) -->
716 <Property key="replay.singlePushpin">false</Property> <!-- show only single pushpin during replay -->
717
718 <!-- enable auto-update -->
719 <Property key="auto.enable">true</Property> <!-- enable/disable auto-update -->
720 <Property key="auto.interval">20</Property> <!-- auto-update interval (in seconds) -->
721 <Property key="auto.count">10</Property> <!-- maximum number of auto-updates -->
722 <Property key="auto.skipRadius">10</Property> <!-- skip nearby points radius (meters) -->
723
724 <!-- use default pushpins -->
725 <Pushpins includeDefault="true"/>
726
727 <!-- legend -->
728 <Legend type="device" includeDefault="true"/>
729 <Legend type="fleet" includeDefault="true"/>
730
731 <!--
732 === The IconSelector tag provdes an ability to select what icon to display for specific types of
733 === events. An enabled "RuleFactory" implementation is required to evaluate the icon selector value.
734 === The "RuleFactory" 'interface' may be viewed in the source module "org.opengts.db.RuleFactory.java", from
735 === which an 'implementation' will need to be created and installed into "Device.setRuleFactory(ruleFactory)".
736 ===
737 === A commercial "RuleFactory" implementation is available which can evaluate 'selectors' like the following:
738 === - ((mph<5.0)?"red":(mph<20.0)?"yellow":(mph<=65.0)?"green":"arrow")
739 === If the vehicle speed is < 5mph, display the RED pushpin, else if < 20mph, display the YELLOW pushpin,
740 === else if <= 65mph, display the GREEN pushpin, otherwise display the "arrow" icon (when over 65mph).
741 === - ($INZONE?"white":(mph<5.0)?"red":"green")
742 === If in any defined GeoZone, display the WHITE pushpin, else if < 5mph, display the RED pushpin,
743 === otherwise display the GREEN pushpin.
744 === - (($DORMANT>=3600)?"red":"green")
745 === If vehicle has not moved for 3600 seconds, display the RED pushpin, otherwise display the GREEN pushpin.
746 === - (($WEEKDAY&&!$INZONE("home"))?"red":"green")
747 === If it is a weekday and the vehicle is outside defined GeoZone "home", display the RED pushpin,
748 === otherwise display the GREEN pushpin.
749 === - ($BIT(input,1)?"purple":"white")
750 === If digital input 1 is 'ON' ('input' is a bitmask, and '1' represents the second bit), display
751 === the PURPLE pushpin, otherwise display the WHITE pushpin.
752 === This RuleFactory can also be used to analyze incoming events and send notification, such as an email,
753 === when installed as an Event analysis rule. Rule functions, such as $ARRIVE, $DEPART, etc, are available
754 === for this purpose. For more information, please contact us for details.
755 ===
756 === The default icon selector (when no RuleFactory is available, or the 'iconSelector' has not been
757 === specified) is implemented in Java, and is equivalent to the following:
758 === - ($DIN?"orange":(speed<8)?"red":(speed<32)?"yellow":"green")
759 === If the StatusCode is any digital input, display the ORANGE pushpin, else if the speed is less
760 === than 8 km/h, display the RED pushpin, else if the speed is less than 32 km/h, display the
761 === YELLOW pushpin, otherwise display the GREEN pushpin".
762 === This default 'selector' is implemented in the method "getDefaultMapIconIndex(...)" in the EventData class.
763 === -->
764 <!-- example icon selectors below (a valid 'RuleFactory' implementaion/installation required):
765 <IconSelector type="device" ruleFactoryName="GTSRulesEngine,SecureENRE,ENRE"><![CDATA[
766 ((mph<5.0)?"red":(mph<20.0)?"yellow":(mph<70.0)?"green":"greendot")
767 ]]></IconSelector>
768 <IconSelector type="fleet" ruleFactoryName="GTSRulesEngine,SecureENRE,ENRE"><![CDATA[
769 (isLast?$DEVICON("bluedot"):(mph<5)?"stop":(mph<20)?"yellowh":"greenh")
770 ]]></IconSelector>
771 -->
772
773 </MapProvider>
774
775 <!-- =============================================
776 === OpenLayers [http://www.openlayers.org] using GeoServer
777 -->
778 <MapProvider name="geoServer"
779 active="${Domain.MapProvider.active=false}"
780 class="org.opengts.war.maps.jsmap.OpenLayers"
781 rtPropPrefix="Domain.MapProvider.">
782 <Property key="map.fillFrame">false</Property> <!-- expand map to fill page frame -->
783 <Property key="geoServer.enable">true</Property> <!-- must be "true" for GeoServer support -->
784 <Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
785 <Property key="default.lat">40.7000</Property> <!-- default latitude when no pushpins are displayed -->
786 <Property key="default.lon">-74.5000</Property> <!-- default longitude when no pushpins are displayed -->
787
788 <!-- GeoServer vars:
789 === Set these values to match your GeoServer mapping service
790 === (The JavaScript module "war/track/js/maps/OpenLayers.js" may also need some customization to support your map files)
791 -->
792 <Property key="geoServer.url">http://localhost:8085/geoserver/wms</Property> <!-- point this to your GeoServer service -->
793 <Property key="geoServer.maxResolution">0.0007907421875</Property> <!-- Maximum resolution -->
794 <Property key="geoServer.size">{ width:431, height:550 }</Property> <!-- Image width/height -->
795 <Property key="geoServer.projection">EPSG:4326</Property> <!-- Projection -->
796 <Property key="geoServer.layers">tiger-ny</Property> <!-- Map dataset -->
797 <Property key="geoServer.bounds">{ left:-74.047185, bottom:40.679648, right:-73.907005, top:40.882078 }</Property>
798
799 <!-- use default pushpins -->
800 <Pushpins includeDefault="true"/>
801
802 <!-- legend -->
803 <Legend type="device" includeDefault="true"/>
804 <Legend type="fleet" includeDefault="true"/>
805
806 </MapProvider>
807
808 <!-- =============================================
809 === Microsoft Virtual Earth [http://dev.live.com]
810 === Note: When using the Microsoft Virtual Earth mapping service, it is your responsibility
811 === to make sure you comply with all of the Microsoft terms of use for this service.
812 === Microsoft Virtual Earth Service API Terms of Use:
813 === http://www.microsoft.com/maps/product/licensing_for_nonprofit.aspx
814 === http://www.microsoft.com/maps/product/terms.html
815 === Microsoft Windows Live Terms of Use:
816 === http://tou.live.com/
817 === Microsoft Online Privacy Statement:
818 === http://privacy.microsoft.com/
819 -->
820 <MapProvider name="virtualEarth"
821 active="${Domain.MapProvider.active=false}"
822 class="org.opengts.war.maps.jsmap.VirtualEarth"
823 rtPropPrefix="Domain.MapProvider.">
824 <Property key="map.fillFrame">false</Property> <!-- expand map to fill page frame -->
825 <!-- <Property key="map.width">-1</Property> -->
826 <!-- <Property key="map.height">-1</Property> -->
827 <!-- <Property key="scrollWheelZoom">false</Property> --> <!-- enable/disable scroll wheel zoom -->
828 <!-- <Property key="map.maxPushpins">10</Property> -->
829 <Property key="map.view">road</Property> <!-- [road|aerial|hybrid] map view/style -->
830 <Property key="info.showAltitude">false</Property> <!-- show altitude in info balloon -->
831 <Property key="info.showSpeed">true</Property> <!-- show speed in info-balloon -->
832 <Property key="jsmap.showMapLoading">true</Property>
833 <Property key="details.combineSpeedHeading">false</Property> <!-- combine speed/heading into single column -->
834 <!-- <Property key="ve.mapcontrol">http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1</Property> -->
835 <!-- <Property key="jsmap.showMapLoading.image">./images/MapLoading.gif</Property> -->
836
837 <!-- default zoom/location -->
838 <Property key="pushpin.zoom">14</Property> <!-- default zoom when pushpins are displayed -->
839 <Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
840 <Property key="default.lat">39.0000</Property> <!-- default latitude when no pushpins are displayed -->
841 <Property key="default.lon">-96.5000</Property> <!-- default longitude when no pushpins are displayed -->
842
843 <!-- Geozone map size/config -->
844 <Property key="zone.map.width">630</Property>
845 <Property key="zone.map.height">540</Property>
846 <Property key="zone.map.multipoint">false</Property> <!-- [true|false] false==1 point, true=6 points -->
847 <Property key="zone.map.polygon">true</Property> <!-- [true|false] display polygon option -->
848 <Property key="zone.map.corridor">false</Property> <!-- [true|false] display corridor option (not supported) -->
849
850 <!-- include target geozones on map (a pushpin must be in the Geozone for it to be displayed) -->
851 <Property key="map.includeGeozones">false</Property>
852
853 <!-- route line -->
854 <Property key="map.routeLine">true</Property> <!-- include travel route line -->
855 <Property key="map.routeLine.color">#FF2222</Property> <!-- include travel route line color -->
856 <Property key="map.routeLine.arrows">false</Property> <!-- NOT SUPPORTED -->
857
858 <!-- replay -->
859 <Property key="replay.enable">true</Property> <!-- enable/disable replay -->
860 <Property key="replay.interval">1200</Property> <!-- replay interval (in milliseconds) -->
861 <Property key="replay.singlePushpin">false</Property> <!-- show only single pushpin during replay -->
862
863 <!-- auto update -->
864 <Property key="auto.enable">false</Property> <!-- enable/disable auto-update -->
865 <Property key="auto.interval">30</Property> <!-- auto-update interval (in seconds) -->
866 <Property key="auto.count">10</Property> <!-- maximum number of auto-updates -->
867
868 <!-- use default pushpins -->
869 <Pushpins includeDefault="true"/>
870
871 <!-- legend -->
872 <Legend type="device" includeDefault="true"/>
873 <Legend type="fleet" includeDefault="true"/>
874
875 </MapProvider>
876
877 <!-- =============================================
878 === Mapstraction [http://www.mapstraction.com]
879 -->
880 <MapProvider name="mapstraction"
881 active="${Domain.MapProvider.active=false}"
882 class="org.opengts.war.maps.jsmap.Mapstraction"
883 rtPropPrefix="Domain.MapProvider.">
884 <!-- <Property key="map.width">680</Property> --> <!-- map width -->
885 <!-- <Property key="map.height">470</Property> --> <!-- map width -->
886 <Property key="provider">openlayers</Property> <!-- the Mapstraction map provider -->
887 <Property key="localMapstractionJS">true</Property> <!-- true to load local 'mapstraction.js' -->
888 <Property key="pushpin.zoom">9</Property> <!-- default zoom when pushpins are displayed -->
889 <Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
890 <Property key="default.lat">39.0000</Property> <!-- default latitude when no pushpins are displayed -->
891 <Property key="default.lon">-96.5000</Property> <!-- default longitude when no pushpins are displayed -->
892 <Property key="auto.enable">false</Property> <!-- enable/disable auto-update -->
893 <Property key="auto.interval">30</Property> <!-- auto-update interval (in seconds) -->
894 <Property key="auto.count">10</Property> <!-- maximum number of auto-updates -->
895
896 <!-- use default pushpins -->
897 <Pushpins includeDefault="true"/>
898
899 <!-- legend -->
900 <Legend type="device" includeDefault="true"/>
901 <Legend type="fleet" includeDefault="true"/>
902
903 </MapProvider>
904
905 <!-- =============================================
906 === GoogleMaps
907 === Google may require you to register for a key, check with the following link to see
908 === about the Google map version availability and whether a registered key is required:
909 === https://developers.google.com/maps/signup
910 === Note: When using the Google Map mapping service, it is your responsibility to make
911 === sure you comply with all of the Google terms of use for this service.
912 === https://developers.google.com/maps/terms
913 -->
914 <MapProvider name="googleMaps"
915 active="${Domain.MapProvider.active=false}"
916 class="org.opengts.war.maps.jsmap.GoogleMaps"
917 key="${Domain.MapProvider.key=***PLACE_AUTHORIZATION_KEY_HERE***}"
918 rtPropPrefix="Domain.MapProvider.">
919
920 <!-- Google Maps configuration -->
921 <!-- <Property key="google.mapcontrol">http://maps.google.com/maps?file=api&v=3&sensor=true&key=...</Property> -->
922 <Property key="google.version">3</Property>
923 <Property key="google.sensor">true</Property>
924 <Property key="google.channel"></Property>
925 <Property key="google.useSSL">false</Property>
926 <Property key="google.addTrafficOverlay">false</Property>
927 <Property key="google.addWeatherOverlay">false</Property>
928 <Property key="google.addCloudOverlay">false</Property>
929 <Property key="google.addPlacesSearch">false</Property>
930 <Property key="google.addPlacesNearby">false</Property>
931 <Property key="google.addOpenStreetMap">false</Property>
932 <Property key="google.addBingMap">false</Property>
933
934 <Property key="map.view">road</Property> <!-- [road|aerial|hybrid] map view/style -->
935 <Property key="map.fillFrame">false</Property>
936 <Property key="scrollWheelZoom">false</Property> <!-- enable/disable scroll wheel zoom -->
937 <!-- <Property key="map.width">680</Property> --> <!-- map width -->
938 <!-- <Property key="map.height">470</Property> --> <!-- map width -->
939
940 <!-- default zoom/location -->
941 <Property key="default.zoom">4</Property> <!-- default zoom when no pushpins are displayed -->
942 <Property key="default.lat">39.0000</Property> <!-- default latitude when no pushpins are displayed -->
943 <Property key="default.lon">-96.5000</Property> <!-- default longitude when no pushpins are displayed -->
944
945 <!-- Geozone map size/config -->
946 <!-- <Property key="zone.map.width">630</Property> -->
947 <!-- <Property key="zone.map.height">540</Property> -->
948 <Property key="zone.map.multipoint">false</Property> <!-- [true|false] false==1 point, true=6 points -->
949 <Property key="zone.map.polygon">true</Property> <!-- [true|false] display polygon option -->
950 <Property key="zone.map.corridor">false</Property> <!-- [true|false] display corridor option (not supported) -->
951
952 <!-- include target geozones on map (a pushpin must be in the Geozone for it to be displayed) -->
953 <Property key="map.includeGeozones">false</Property>
954
955 <!-- route line -->
956 <Property key="map.routeLine">true</Property> <!-- include travel route line -->
957 <Property key="map.routeLine.color">#FF2222</Property> <!-- include travel route line color -->
958 <Property key="map.routeLine.arrows">false</Property> <!-- include travel route line arrows (GoogleMaps only - always blue) -->
959
960 <!-- replay -->
961 <Property key="replay.enable">true</Property> <!-- enable/disable replay -->
962 <Property key="replay.interval">1200</Property> <!-- replay interval (in milliseconds) -->
963 <Property key="replay.singlePushpin">false</Property> <!-- show only single pushpin during replay -->
964
965 <!-- auto update -->
966 <Property key="auto.enable">false</Property> <!-- enable/disable auto-update -->
967 <Property key="auto.interval">20</Property> <!-- auto-update interval (in seconds) -->
968 <Property key="auto.count">10</Property> <!-- maximum number of auto-updates -->
969 <Property key="auto.skipRadius">10</Property> <!-- skip nearby points radius (meters) -->
970
971 <!-- use default pushpins -->
972 <Pushpins includeDefault="true"/>
973
974 <!-- legend -->
975 <Legend type="device" includeDefault="true"/>
976 <Legend type="fleet" includeDefault="true"/>
977
978 </MapProvider>
979
980 <!-- ========================================================================================== -->
981 <!-- ReverseGeocodeProvider
982 === To enable reverse-geocoding, set the chosen ReverseGeocodeProvider 'active' attribute
983 === to "true" and set the following Account column values for each account that is to
984 === have reverse-geocoding enabled:
985 === - Set 'geocoderMode' to either 2 (partial), or 3 (full).
986 === - Set 'privateLabelName' to the 'name' or 'host' of this Domain (Edit the Account
987 === record and change the 'name' of this Domain - "default" is the default name).
988 === When an event arrives, these Account values are used to determine if, or how,
989 === reverse-geocoding is to be performed.
990 === Note: You should also confim that your chosen reverse-geocode provider can perform
991 === proper reverse-geocoding for the area your vehicles will be travelling.
992 -->
993
994 <!-- =============================================
995 === Geonames Reverse-Geocode Provider (default disabled)
996 === - This reverse-geocoding uses the services provided by 'GeoNames.org' [http://www.geonames.org]
997 === - Geonames also provides a commercial-use reverse-geocoding service that guarantees a faster and
998 === more reliable response time. More information is available at the following link:
999 === http://www.geonames.org/commercial-webservices.html
1000 === Or contact them at the following email address:
1001 === services@geonames.org
1002 === (Make sure you let them know you are using it with 'OpenGTS'!)
1003 -->
1004 <ReverseGeocodeProvider name="geonames"
1005 active="${Domain.ReverseGeocodeProvider.active=false}"
1006 class="org.opengts.geocoder.geonames.GeoNames"
1007 key=""
1008 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1009 <Property key="radiusKM">1.0</Property>
1010 <Property key="host">ws.geonames.org</Property>
1011 <Property key="postalFailover">false</Property> <!-- findNearbyPostalCodes -->
1012 <Property key="streetFailover">false</Property> <!-- findNearbyStreetsOSM -->
1013 <!--
1014 === - Set the following properties to appropriate values when purchasing the
1015 === Geonames Commercial reverse-geocoding service.
1016 === - Geonames may also require a "username" for the free service as well.
1017 -->
1018 <Property key="failoverHost"></Property>
1019 <Property key="username"></Property>
1020 <Property key="token"></Property>
1021 <Property key="alwaysFast">false</Property>
1022 </ReverseGeocodeProvider>
1023 <ReverseGeocodeProvider name="geonames_navteq"
1024 active="${Domain.ReverseGeocodeProvider.active=false}"
1025 class="org.opengts.geocoder.geonames.GeoNames"
1026 key=""
1027 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1028 <!--
1029 === Set the following properties to appropriate values when purchasing the
1030 === Locally hosted Geonames Commercial reverse-geocoding service using NavTeq:
1031 -->
1032 <Property key="host">localhost:8080</Property>
1033 <Property key="postalFailover">false</Property> <!-- findNearbyPostalCodes -->
1034 <Property key="streetFailover">false</Property> <!-- findNearbyStreetsOSM -->
1035 <Property key="service.findNearestAddress">geonames/findAddress</Property>
1036 <Property key="failoverHost"></Property>
1037 <Property key="username">geonames</Property>
1038 <Property key="token"></Property>
1039 <Property key="alwaysFast">true</Property>
1040 </ReverseGeocodeProvider>
1041
1042 <!-- =============================================
1043 === OpenCageData Reverse-Geocode Provider (default disabled)
1044 === - This reverse-geocoding uses the services provided by 'OpenCageData.com' [http://www.opencagedata.com/]
1045 === - Properties:
1046 === Domain.ReverseGeocodeProvider.active=opencage
1047 === Domain.ReverseGeocodeProvider.key=*PLACE_AUTHORIZATION_KEY_HERE*
1048 -->
1049 <ReverseGeocodeProvider name="opencage"
1050 active="${Domain.ReverseGeocodeProvider.active=false}"
1051 class="org.opengts.geocoder.opencage.OpenCageData"
1052 key="${Domain.ReverseGeocodeProvider.key=*PLACE_AUTHORIZATION_KEY_HERE*}"
1053 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1054 <Property key="alwaysFast">false</Property>
1055 </ReverseGeocodeProvider>
1056
1057 <!-- =============================================
1058 === GISGraphy Reverse-Geocode Provider (default disabled)
1059 === - http://www.gisgraphy.com
1060 === - Must be installed on your servers
1061 -->
1062 <ReverseGeocodeProvider name="gisgraphy"
1063 active="${Domain.ReverseGeocodeProvider.active=false}"
1064 class="org.opengts.geocoder.gisgraphy.GisGraphy"
1065 key=""
1066 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1067 <Property key="host">localhost</Property> <!-- services.gisgraphy.com -->
1068 <Property key="streetURL"></Property> <!-- http://localhost:8081/street/streetsearch? -->
1069 <Property key="geolocURL"></Property> <!-- http://localhost:8081/geoloc/findnearbylocation? -->
1070 <!-- <Property key="radiusKM">1.1</Property> -->
1071 </ReverseGeocodeProvider>
1072
1073 <!-- =============================================
1074 === GISGraphy Reverse-Geocode Provider V4 (default disabled)
1075 === - http://www.gisgraphy.com
1076 === - Must be installed on your servers
1077 -->
1078 <ReverseGeocodeProvider name="gisgraphy4"
1079 active="${Domain.ReverseGeocodeProvider.active=false}"
1080 class="org.opengts.geocoder.gisgraphy4.GisGraphy"
1081 key=""
1082 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1083 <Property key="host">localhost</Property> <!-- services.gisgraphy.com -->
1084 <Property key="streetURL"></Property> <!-- http://free.gisgraphy.com/reversegeocoding/reversegeocode? -->
1085 </ReverseGeocodeProvider>
1086
1087 <!-- =============================================
1088 === Nominatim OpenStreetMap/Mapquest Reverse-Geocode Provider
1089 === - Mapquest ==> http://open.mapquestapi.com/nominatim/
1090 === - OpenStreetMap ==> http://nominatim.openstreetmap.org
1091 === The OpenStreetMap "Nominatim Usage Policy" can be found at the following link:
1092 === http://wiki.openstreetmap.org/wiki/Nominatim_usage_policy
1093 === - Register for Mapquest Nominatim AppKey at the following link:
1094 === https://developer.mapquest.com/
1095 -->
1096 <ReverseGeocodeProvider name="nominatim"
1097 active="${Domain.ReverseGeocodeProvider.active=false}"
1098 class="org.opengts.geocoder.nominatim.Nominatim"
1099 key=""
1100 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1101 <!-- Property key="reverseURL"><![CDATA[http://nominatim.openstreetmap.org/reverse?]]></Property -->
1102 <Property key="reverseURL"><![CDATA[http://open.mapquestapi.com/nominatim/v1/reverse?]]></Property>
1103 <Property key="host"></Property>
1104 <Property key="mapquestAppKey"></Property> <!-- Mapquest "Consumer key" -->
1105 <Property key="addressdetails">1</Property>
1106 <Property key="zoom">18</Property>
1107 <Property key="email"></Property> <!-- per usage policy, this must be specified -->
1108 <Property key="useResultAddress">false</Property>
1109 <Property key="alwaysFast">false</Property>
1110 </ReverseGeocodeProvider>
1111
1112 <!-- =============================================
1113 === TineGeocoder Reverse-Geocode Provider (default disabled)
1114 === - This reverse-geocoding uses the services provided by 'TinyGeocoder.com' [http://www.TinyGeocoder.com]
1115 -->
1116 <ReverseGeocodeProvider name="tinygeocoder"
1117 active="${Domain.ReverseGeocodeProvider.active=false}"
1118 class="org.opengts.geocoder.tinygeocoder.TinyGeocoder"
1119 key=""
1120 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1121 </ReverseGeocodeProvider>
1122 <GeocodeProvider name="tinygeocoder"
1123 active="${Domain.GeocodeProvider.active=false}"
1124 class="org.opengts.geocoder.tinygeocoder.TinyGeocoder"
1125 key=""
1126 rtPropPrefix="Domain.GeocodeProvider.">
1127 </GeocodeProvider>
1128
1129 <!-- =============================================
1130 === GoogleGeocodeV2 Reverse-Geocode Provider (default disabled) [OBSOLETE as of 2013/09/08]
1131 === - Register for Google Map keys at: http://www.google.com/apis/maps/signup.html
1132 === - NOTE: When using the Google reverse-geocoding service, it is your responsibility
1133 === to make sure you comply with all of the Google terms of use for this service.
1134 === - NOTE: Google may limit he number of reverse-geocodes allowed in any 24-hour period.
1135 -->
1136 <ReverseGeocodeProvider name="google"
1137 active="${Domain.ReverseGeocodeProvider.active=false}"
1138 class="org.opengts.geocoder.google.GoogleGeocodeV2"
1139 key="${Domain.ReverseGeocodeProvider.key=***PLACE_AUTHORIZATION_KEY_HERE ***}"
1140 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1141 <Property key="sensor">true</Property>
1142 <Property key="alwaysFast">false</Property>
1143 </ReverseGeocodeProvider>
1144 <GeocodeProvider name="googleV2"
1145 active="${Domain.GeocodeProvider.active=false}"
1146 class="org.opengts.geocoder.google.GoogleGeocodeV2"
1147 key="${Domain.GeocodeProvider.key=}"
1148 rtPropPrefix="Domain.GeocodeProvider.">
1149 <Property key="sensor">false</Property>
1150 </GeocodeProvider>
1151
1152 <!-- =============================================
1153 === GoogleGeocodeV3 Reverse-Geocode Provider (default disabled)
1154 === - NOTE: When using the Google reverse-geocoding service, it is your responsibility
1155 === to make sure you comply with all of the Google terms of use for this service.
1156 === - NOTE: Google may limit he number of reverse-geocodes allowed in any 24-hour period.
1157 -->
1158 <ReverseGeocodeProvider name="googleV3"
1159 active="${Domain.ReverseGeocodeProvider.active=false}"
1160 class="org.opengts.geocoder.google.GoogleGeocodeV3"
1161 key="${Domain.ReverseGeocodeProvider.key=}"
1162 rtPropPrefix="Domain.ReverseGeocodeProvider.">
1163 <Property key="sensor">true</Property>
1164 <Property key="alwaysFast">false</Property>
1165 <Property key="signatureKey"></Property>
1166 </ReverseGeocodeProvider>
1167 <GeocodeProvider name="googleV3"
1168 active="${Domain.GeocodeProvider.active=false}"
1169 class="org.opengts.geocoder.google.GoogleGeocodeV3"
1170 key="${Domain.GeocodeProvider.key=}"
1171 rtPropPrefix="Domain.GeocodeProvider.">
1172 <Property key="sensor">false</Property>
1173 <Property key="signatureKey"></Property>
1174 </GeocodeProvider>
1175
1176 <!-- ========================================================================================== -->
1177
1178 <!-- =============================================
1179 === OpenCellID
1180 === Note: A "key" may be required to access this service.
1181 === Please see the following link for more info:
1182 === http://www.opencellid.org/
1183 -->
1184 <MobileLocationProvider name="openCellID"
1185 active="${Domain.MobileLocationProvider.active=false}"
1186 class="org.opengts.cellid.opencellid.OpenCellID"
1187 key="${Domain.MobileLocationProvider.key=}"
1188 rtPropPrefix="Domain.MobileLocationProvider.">
1189 <Property key="timeoutMS">5000</Property>
1190 </MobileLocationProvider>
1191
1192 <!-- =============================================
1193 === UnwiredLabs (not yet tested - may not yet be fully supported)
1194 === Note: A "key" (token) may be required to access this service.
1195 === Please see the following link for more info:
1196 === http://www.unwiredlabs.com/
1197 -->
1198 <MobileLocationProvider name="unwiredLabs"
1199 active="${Domain.MobileLocationProvider.active=false}"
1200 class="org.opengts.cellid.unwiredlabs.UnwiredLabs"
1201 key="${Domain.MobileLocationProvider.key=}"
1202 rtPropPrefix="Domain.MobileLocationProvider.">
1203 <Property key="timeoutMS">5000</Property>
1204 </MobileLocationProvider>
1205
1206 <!-- ========================================================================================== -->
1207
1208 <!-- ACL definition
1209 === Access levels:
1210 === 0 = no access
1211 === 1 = read(view) access
1212 === 2 = write(edit) access
1213 === 3 = all(create/delete) access
1214 -->
1215 <Acls default="1">
1216 <!-- admin -->
1217 <Acl name="acl.admin.account" values="0,1,2" default="1" i18n="PrivateXML.acl.accountAdmin" >Account Administration</Acl>
1218 <Acl name="acl.admin.user" values="0,1,2" default="1" i18n="PrivateXML.acl.userAdminSelf" >User Administration (Current user)</Acl>
1219 <Acl name="acl.admin.user:all" values="0,1,2,3" default="0" i18n="PrivateXML.acl.userAdminAll" >User Administration (All users)</Acl>
1220 <Acl name="acl.admin.user:acls" values="0,1,2" default="0" i18n="PrivateXML.acl.userAdminACL" >User Administration (ACL access)</Acl>
1221 <Acl name="acl.admin.user:groups" values="0,1,2" default="1" i18n="PrivateXML.acl.userAdminGroups" >User Administration (Group)</Acl>
1222 <Acl name="acl.admin.user:role" values="0,1,2" default="1" i18n="PrivateXML.acl.userAdminRole" >User Administration (Role)</Acl>
1223 <Acl name="acl.admin.user:deviceID" values="0,1,2" default="1" i18n="PrivateXML.acl.userAdminDeviceID" >User Administration (Preferred DeviceID)</Acl>
1224 <Acl name="acl.admin.role" values="0,1,2,3" default="0" i18n="PrivateXML.acl.roleAdmin" >Role Administration</Acl>
1225 <Acl name="acl.admin.device" values="0,1,2,3" default="1" i18n="PrivateXML.acl.deviceAdmin" >Device Administration</Acl>
1226 <Acl name="acl.admin.device:uniqueID" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminUniqID" >Device Administration (Device UniqueID)</Acl>
1227 <Acl name="acl.admin.device:active" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminActive" >Device Administration (Device Active)</Acl>
1228 <Acl name="acl.admin.device:serverID" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminServID" >Device Administration (Server ID)</Acl>
1229 <Acl name="acl.admin.device:firmware" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminFirmware" >Device Administration (Firmware)</Acl>
1230 <Acl name="acl.admin.device:rules" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminRules" >Device Administration (Notification Rules)</Acl>
1231 <Acl name="acl.admin.device:commands" values="0,2" default="2" i18n="PrivateXML.acl.deviceAdminCommands" >Device Administration (Commands)</Acl>
1232 <Acl name="acl.admin.device:sms" values="0,2" default="2" i18n="PrivateXML.acl.deviceAdminSms" >Device Administration (SMS Commands)</Acl>
1233 <Acl name="acl.admin.device:editSMS" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminEditSms" >Device Administration (Edit SMS)</Acl>
1234 <Acl name="acl.admin.device:editSIM" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminEditSIM" >Device Administration (Edit SIM)</Acl>
1235 <Acl name="acl.admin.device:editEquipStat" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminEditEqStat">Device Administration (Edit Equip Status)</Acl>
1236 <Acl name="acl.admin.device:editIMEI" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminEditIMEI" >Device Administration (Edit IMEI)</Acl>
1237 <Acl name="acl.admin.device:editSerial" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminEditSerial">Device Administration (Edit Serial#)</Acl>
1238 <Acl name="acl.admin.device:editDatKey" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminEditDatKey">Device Administration (Edit DataKey)</Acl>
1239 <Acl name="acl.admin.device:fuelCapacity" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminFuelEconom">Device Administration (Fuel Economy)</Acl>
1240 <Acl name="acl.admin.device:fuelProfile" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminFuelProfil">Device Administration (Fuel Profile)</Acl>
1241 <Acl name="acl.admin.device:fuelEconomy" values="0,1,2" default="1" i18n="PrivateXML.acl.deviceAdminFuelCapac" >Device Administration (Fuel Capacity)</Acl>
1242 <Acl name="acl.admin.group" values="0,1,2,3" default="1" i18n="PrivateXML.acl.groupAdmin" >Group Administration</Acl>
1243 <Acl name="acl.admin.driver" values="0,1,2,3" default="1" i18n="PrivateXML.acl.driverAdmin" >Driver Administration</Acl>
1244 <Acl name="acl.admin.zone" values="0,1,2,3" default="1" i18n="PrivateXML.acl.zoneAdmin" >Geozone Administration</Acl>
1245 <Acl name="acl.admin.statusCode" values="0,1,2,3" default="1" i18n="PrivateXML.acl.statusCodeAdmin" >StatusCode Administration</Acl>
1246 <Acl name="acl.admin.rule" values="0,1,2,3" default="1" i18n="PrivateXML.acl.ruleAdmin" >Rule Administration</Acl>
1247 <Acl name="acl.admin.password" values="0,2" default="2" i18n="PrivateXML.acl.changePassword" >Change Password</Acl>
1248 <!-- HTML Wrapper -->
1249 <Acl name="acl.admin.htmlWrapper" values="0,1,2,3" default="3" i18n="PrivateXML.acl.htmlWrapper" >Generic HTML Wrapper</Acl>
1250 <!-- system admin -->
1251 <Acl name="acl.admin.sysAdmin" values="0,1,2,3" default="0" i18n="PrivateXML.acl.systemAdmin" >System Administration</Acl>
1252 <!-- maps -->
1253 <Acl name="acl.map.device" values="0,1" default="1" i18n="PrivateXML.acl.deviceMap" >Device Map Display</Acl>
1254 <Acl name="acl.map.device:auto" values="0,1" default="1" i18n="PrivateXML.acl.deviceMapAuto" >Device Map (Auto Update)</Acl>
1255 <Acl name="acl.map.fleet" values="0,1" default="1" i18n="PrivateXML.acl.fleetMap" >Fleet/Group Map Display</Acl>
1256 <Acl name="acl.map.fleet:auto" values="0,1" default="1" i18n="PrivateXML.acl.fleetMapAuto" >Fleet/Group Map (Auto Update)</Acl>
1257 <!-- report groups -->
1258 <Acl name="acl.reportGroup.detail" values="0,1" default="1" i18n="PrivateXML.acl.reportDetail" >Report Group (Detail)</Acl>
1259 <Acl name="acl.reportGroup.summary" values="0,1" default="1" i18n="PrivateXML.acl.reportSummary" >Report Group (Summary)</Acl>
1260 <Acl name="acl.reportGroup.performance" values="0,1" default="1" i18n="PrivateXML.acl.reportPerformance" >Report Group (Performance)</Acl>
1261 <Acl name="acl.reportGroup.ifta" values="0,1" default="1" i18n="PrivateXML.acl.reportOther" >Report Group (I.F.T.A.)</Acl>
1262 <Acl name="acl.reportGroup.sysadmin" values="0,1" default="1" i18n="PrivateXML.acl.reportSysAdmin" >Report Group (SystemAdmin)</Acl>
1263 <!-- report access -->
1264 <Acl name="acl.report.eventDetail" values="0,1" default="1" i18n="PrivateXML.acl.report.eventDetail" >Report (Event Detail)</Acl>
1265 <Acl name="acl.report.eventSummary" values="0,1" default="1" i18n="PrivateXML.acl.report.fleetSummary" >Report (Fleet/Group Summary)</Acl>
1266 <Acl name="acl.report.eventCount" values="0,1" default="1" i18n="PrivateXML.acl.report.eventCount" >Report (Event Count)</Acl>
1267 <Acl name="acl.report.speedOption" values="0,1" default="1" i18n="PrivateXML.acl.report.speedOption" >Report (Speeds over Selected Value)</Acl>
1268 <Acl name="acl.report.speedPosted" values="0,1" default="1" i18n="PrivateXML.acl.report.speedPosted" >Report (Speeds over Posted Limit)</Acl>
1269 <Acl name="acl.report.excessSpeed" values="0,1" default="1" i18n="PrivateXML.acl.report.excessSpeed" >Report (Excess Speed Status Code)</Acl>
1270 <Acl name="acl.report.motionSummary" values="0,1" default="1" i18n="PrivateXML.acl.report.motionSummary" >Report (Driving/Idle Time Device Summary)</Acl>
1271 <Acl name="acl.report.thermo" values="0,1" default="1" i18n="PrivateXML.acl.report.temperature" >Report (Temperature)</Acl>
1272 <Acl name="acl.report.j1708fault" values="0,1" default="1" i18n="PrivateXML.acl.report.j1708Fault" >Report (J1708 Fault)</Acl>
1273 <Acl name="acl.report.propertyValue" values="0,1" default="1" i18n="PrivateXML.acl.report.propertyValue" >Report (Property Value)</Acl>
1274 <Acl name="acl.report.diagnosticValue" values="0,1" default="1" i18n="PrivateXML.acl.report.diagValue" >Report (Error/Diagnostic Value)</Acl>
1275 <Acl name="acl.report.unassignedDevices" values="0,1" default="0" i18n="PrivateXML.acl.report.unassignedDev" >Report (Unassigned Devices)</Acl>
1276 <Acl name="acl.report.periodicMaint" values="0,1" default="1" i18n="PrivateXML.acl.report.periodicMain" >Report (Periodic Maintenance)</Acl>
1277 <Acl name="acl.report.distanceTravel" values="0,1" default="1" i18n="PrivateXML.acl.report.distTravel" >Report (Distance Traveled)</Acl>
1278 <Acl name="acl.report.ignitionDetail" values="0,1" default="1" i18n="PrivateXML.acl.report.ignitionDetail">Report (Ignition Detail)</Acl>
1279 <Acl name="acl.report.geozone" values="0,1" default="1" i18n="PrivateXML.acl.report.geozone" >Report (Geozone)</Acl>
1280 <!-- not supported
1281 <Acl name="acl.report.tripReport" values="0,1" default="1" i18n="PrivateXML.acl.report.tripReport" >Report (Trip Report Detail)</Acl>
1282 <Acl name="acl.report.bcrossDetail" values="0,1" default="1" i18n="PrivateXML.acl.report.bCrossDetail" >Report (Border-Crossing Detail)</Acl>
1283 <Acl name="acl.report.bcrossSummary" values="0,1" default="1" i18n="PrivateXML.acl.report.bCrossSummary" >Report (Border-Crossing Summary)</Acl>
1284 -->
1285 </Acls>
1286
1287 <!-- Defined JSP Entries (this section is optional)
1288 === Notes:
1289 === - This can be used to dynamically control which JSP file is used based on the current
1290 === login environment
1291 === - JSP file paths are relative to the servlet base directory
1292 === - At least one entry must define the JSP name "default"
1293 === - The "rtPropPrefix" value can be used to override the JSP "file" for a given name.
1294 === For instance "Domain.JSPEntries.defailt=/jsp/myLoginSession.jsp"
1295 -->
1296 <JSPEntries rtPropPrefix="Domain.JSPEntries.">
1297 <JSP name="default" file="/jsp/loginSession_banner.jsp"/>
1298 <JSP name="banner" file="/jsp/loginSession_banner.jsp"/>
1299 <JSP name="frame" file="/jsp/loginSession_frame.jsp"/>
1300 <JSP name="emailReport" file="/jsp/emailReport.jsp"/>
1301 <JSP name="oldjsp" file="/jsp/loginSession.jsp"/>
1302 </JSPEntries>
1303
1304 <!-- Defined pages
1305 === Notes:
1306 === - All classes listed here must implement "org.opengts.war.tools.WebPage"
1307 === - Remove/Comment any of the following "Page" tags to disable the corresponding feature
1308 === - Comment/Remove the 'NewAccount' line below to disable the ability to create new accounts
1309 === - The components of these webpages are displayed as taglib entries within the JSP file
1310 === "war/track/jsp/loginSession.jsp" (which is copied into the 'track.war' file at built-time).
1311 === The page decorations (look-and-feel) can be changed by modifying this JSP file.
1312 === - A complete custom JSP file can also be created and used for the web-interface display.
1313 === The new JSP file should be specified on the "jsp=" attribute on the "WebPages" tag below.
1314 === This file should be specified relative to the servlet base "track/" directory.
1315 === - The Color and Fonts for the various pages can also be modified by changing the various
1316 === CSS files in the directory "war/track/css/".
1317 === - The "rtPropPrefix" value can be used to disable a given Page to omit it from the menu.
1318 === For instance "Domain.WebPages.defailt=/jsp/myLoginSession.jsp"
1319 === - The "ButtonImage" tag specifies a background button image file. To reference the file
1320 === relative to the specified "buttonDir" attribute (on the "WebPages" tag), do not prefix
1321 === the "ButtonImage" file reference with "/". To specify an image relative to the servlet
1322 === URL, prefix the image reference with a single "/". To use this feature, the property
1323 === "topMenu.menuType" must be set to "button" or "button-icon".
1324 === - The "IconImage" tag specifies a foreground button image file. To reference the file
1325 === relative to the specified "iconDir" attribute (on the "WebPages" tag), do not prefix
1326 === the "IconImage" file reference with "/". To specify an image relative to the servlet
1327 === URL, prefix the image reference with a single "/". To use this feature, the property
1328 === "topMenu.menuType" must be set to "button-icon".
1329 -->
1330 <WebPages rtPropPrefix="Domain.WebPages."
1331 jsp="default"
1332 cssDir="/css"
1333 iconDir=""
1334 buttonDir=""
1335 >
1336 <!-- NewAccount: Uncomment to enable "New Account" button on login page - ->
1337 <Page class="org.opengts.war.track.page.NewAccount">
1338 </Page>
1339 <!- - -->
1340 <Page rtKey="ForgotPassword" class="org.opengts.war.track.page.ForgotPassword">
1341 </Page>
1342 <Page rtKey="ReportDisplay" class="org.opengts.war.track.page.ReportDisplay">
1343 </Page>
1344 <!-- Login/Menu -->
1345 <MenuGroup name="menuGroup.main" topMenu="false" menuBar="true">
1346 <Title i18n="PrivateXML.menugroup.main">Main</Title>
1347 <Page rtKey="TopMenu" class="org.opengts.war.track.page.TopMenu">
1348 </Page>
1349 <Page rtKey="AccountLogin" class="org.opengts.war.track.page.AccountLogin">
1350 <Property key="customLoginUrl"></Property>
1351 <Property key="VSeparatorImage.path"></Property>
1352 <Property key="VSeparatorImage.width"></Property>
1353 <Property key="VSeparatorImage.height"></Property>
1354 </Page>
1355 </MenuGroup>
1356 <!-- Maps -->
1357 <MenuGroup name="menuGroup.maps" topMenu="true" menuBar="true">
1358 <Title i18n="PrivateXML.menugroup.maps">Mapping</Title>
1359 <Page rtKey="TrackMapDevice" class="org.opengts.war.track.page.TrackMapDevice">
1360 <AclName>acl.map.device</AclName>
1361 <!-- <ButtonImage> Place_Button_Cap_Image_URL_Here </ButtonImage> -->
1362 <!-- <ButtonImageAlt> Place_Rollover_Button_Cap_Image_URL_Here </ButtonImageAlt> -->
1363 <!-- <IconImage> Place_Button_Icon_Overlay_Image_URL_Here </IconImage> -->
1364 </Page>
1365 <Page rtKey="TrackMapFleet" class="org.opengts.war.track.page.TrackMapFleet">
1366 <AclName>acl.map.fleet</AclName>
1367 <!-- <ButtonImage> Place_Button_Cap_Image_URL_Here </ButtonImage> -->
1368 <!-- <ButtonImageAlt> Place_Rollover_Button_Cap_Image_URL_Here </ButtonImageAlt> -->
1369 <!-- <IconImage> Place_Button_Icon_Overlay_Image_URL_Here </IconImage> -->
1370 <Property key="showFleetFromCalendar">false</Property>
1371 <!-- <Property key="fleetDeviceEventCount">1</Property> -->
1372 </Page>
1373 </MenuGroup>
1374 <!-- Reports -->
1375 <MenuGroup name="menuGroup.reports" topMenu="true" menuBar="true">
1376 <Title i18n="PrivateXML.menugroup.reports">Reports</Title>
1377 <Page rtKey="ReportMenuDeviceDetail" class="org.opengts.war.track.page.ReportMenuDeviceDetail">
1378 <AclName>acl.reportGroup.detail</AclName>
1379 </Page>
1380 <Page rtKey="ReportMenuFleetDetail" class="org.opengts.war.track.page.ReportMenuFleetDetail">
1381 <AclName>acl.reportGroup.detail</AclName>
1382 </Page>
1383 <Page rtKey="ReportMenuFleetSummary" class="org.opengts.war.track.page.ReportMenuFleetSummary">
1384 <AclName>acl.reportGroup.summary</AclName>
1385 </Page>
1386 <Page rtKey="ReportMenuDriverPerformance" class="org.opengts.war.track.page.ReportMenuDriverPerformance">
1387 <AclName>acl.reportGroup.performance</AclName>
1388 </Page>
1389 <!-- <Page class="org.opengts.war.track.page.ReportMenuIFTA">
1390 <AclName>acl.reportGroup.ifta</AclName>
1391 </Page> -->
1392 </MenuGroup>
1393 <!-- Admin -->
1394 <MenuGroup name="menuGroup.admin" topMenu="true" menuBar="true">
1395 <Title i18n="PrivateXML.menugroup.administration">Administration</Title>
1396 <Page rtKey="AccountInfo" class="org.opengts.war.track.page.AccountInfo">
1397 <AclName>acl.admin.account</AclName>
1398 </Page>
1399 <Page rtKey="UserInfo" class="org.opengts.war.track.page.UserInfo">
1400 <AclName>acl.admin.user</AclName>
1401 </Page>
1402 <Page rtKey="DeviceInfo" class="org.opengts.war.track.page.DeviceInfo">
1403 <AclName>acl.admin.device</AclName>
1404 </Page>
1405 <Page rtKey="GroupInfo" class="org.opengts.war.track.page.GroupInfo">
1406 <AclName>acl.admin.group</AclName>
1407 </Page>
1408 <!-- DriverInfo: uncomment this section to enable the "Driver Admin" page
1409 <Page rtKey="DriverInfo" class="org.opengts.war.track.page.DriverInfo">
1410 <AclName>acl.admin.driver</AclName>
1411 </Page>
1412 -->
1413 <Page rtKey="ZoneInfo" class="org.opengts.war.track.page.ZoneInfo">
1414 <AclName>acl.admin.zone</AclName>
1415 </Page>
1416 <Page rtKey="ChangePassword" class="org.opengts.war.track.page.ChangePassword">
1417 <AclName>acl.admin.password</AclName>
1418 </Page>
1419 </MenuGroup>
1420 <!-- Remove/Comment this group to remove the "Links" menu bar tab -->
1421 <!-- Links - ->
1422 <MenuGroup name="menuGroup.links" topMenu="false" menuBar="true">
1423 <Title i18n="PrivateXML.menugroup.links">Links</Title>
1424 <Link url="http://www.opengts.org" target="_blank">
1425 <NavigationDescription>OpenGTS</NavigationDescription>
1426 <MenuDescription>OpenGTS home</MenuDescription>
1427 <MenuHelp>OpenGTS project home page</MenuHelp>
1428 </Link>
1429 <Link url="http://www.opendmtp.org" target="_blank">
1430 <NavigationDescription>OpenDMTP</NavigationDescription>
1431 <MenuDescription>OpenDMTP home</MenuDescription>
1432 <MenuHelp>OpenDMTP project home page</MenuHelp>
1433 </Link>
1434 <Link url="http://www.example.com?l=${locale}&a=${accountID}&u=${userID}" target="_blank">
1435 <NavigationDescription>Example link</NavigationDescription>
1436 <MenuDescription>Account/User example</MenuDescription>
1437 <MenuHelp>Example Account/User link</MenuHelp>
1438 </Link>
1439 </MenuGroup>
1440 -->
1441 <!-- SysAdmin -->
1442 <MenuGroup name="menuGroup.sysAdmin" topMenu="true" menuBar="true">
1443 <!-- These web-pages may not be available in this release -->
1444 <Title i18n="PrivateXML.menugroup.systemAdmin">System Admin</Title>
1445 <Page rtKey="SysAdminAccounts" class="org.opengts.war.track.page.SysAdminAccounts"
1446 optional="true">
1447 <AclName>acl.admin.sysAdmin</AclName>
1448 </Page>
1449 <!--
1450 <Page rtKey="ReportMenuSysAdmin" class="org.opengts.war.track.page.ReportMenuSysAdmin"
1451 optional="true">
1452 <AclName>acl.reportGroup.sysadmin</AclName>
1453 </Page>
1454 -->
1455 </MenuGroup>
1456 </WebPages>
1457
1458 <!-- Defined reports
1459 === All reports referenced here must be predefined in 'reports.xml'
1460 === Those with the attribute optional="true" may not be present in this release
1461 -->
1462 <Reports rtPropPrefix="Domain.Reports.">
1463
1464 <!-- device.detail -->
1465 <Report name="EventDetail">
1466 <AclName>acl.report.eventDetail</AclName>
1467 </Report>
1468 <Report name="DriverMessageDetail">
1469 <AclName>acl.report.eventDetail</AclName>
1470 </Report>
1471 <Report name="EventCountByDay"
1472 optional="true">
1473 <AclName>acl.report.eventCount</AclName>
1474 </Report>
1475 <Report name="MotionSummary">
1476 <AclName>acl.report.motionSummary</AclName>
1477 </Report>
1478 <Report name="PropertyValue">
1479 <AclName>acl.report.propertyValue</AclName>
1480 </Report>
1481 <Report name="DiagnosticValue">
1482 <AclName>acl.report.diagnosticValue</AclName>
1483 </Report>
1484
1485 <!-- fleet.detail -->
1486 <Report name="EventDetail_Group">
1487 <AclName>acl.report.eventDetail</AclName>
1488 </Report>
1489 <Report name="EventSpeedOption_Group">
1490 <AclName>acl.report.speedOption</AclName>
1491 </Report>
1492
1493 <!-- fleet.summary -->
1494 <Report name="EventSummary">
1495 <AclName>acl.report.eventSummary</AclName>
1496 </Report>
1497 <Report name="EventCount">
1498 <AclName>acl.report.eventCount</AclName>
1499 </Report>
1500
1501 <!-- device.performance -->
1502 <Report name="EventSpeedOption">
1503 <AclName>acl.report.speedOption</AclName>
1504 </Report>
1505 <Report name="EventExcessSpeed">
1506 <AclName>acl.report.excessSpeed</AclName>
1507 </Report>
1508
1509 </Reports>
1510
1511 <!-- ========================================================================================== -->
1512
1513</Domain>
1514<!-- ================================================================================= -->
1515
1516</PrivateLabels>