source: trunk/grails-app/conf/Config.groovy @ 477

Last change on this file since 477 was 471, checked in by gav, 15 years ago

Svn move personGroup and personGroupType controllers and views to detailed.
Add links from person edit view to groups.

File size: 20.8 KB
Line 
1// locations to search for config files that get merged into the main config
2// config files can either be Java properties files or ConfigSlurper scripts
3
4// grails.config.locations = [ "classpath:${appName}-config.properties",
5//                             "classpath:${appName}-config.groovy",
6//                             "file:${userHome}/.grails/${appName}-config.properties",
7//                             "file:${userHome}/.grails/${appName}-config.groovy"]
8
9// if(System.properties["${appName}.config.location"]) {
10//    grails.config.locations << "file:" + System.properties["${appName}.config.location"]
11// }
12grails.mime.file.extensions = true // enables the parsing of file extensions from URLs into the request format
13grails.mime.types = [ html: ['text/html','application/xhtml+xml'],
14                      xml: ['text/xml', 'application/xml'],
15                      text: 'text-plain',
16                      js: 'text/javascript',
17                      rss: 'application/rss+xml',
18                      atom: 'application/atom+xml',
19                      css: 'text/css',
20                      csv: 'text/csv',
21                      pdf: 'application/pdf',
22                      rtf: 'application/rtf',
23                      excel: 'application/vnd.ms-excel',
24                      ods: 'application/vnd.oasis.opendocument.spreadsheet',
25                      all: '*/*',
26                      json: ['application/json','text/json'],
27                      form: 'application/x-www-form-urlencoded',
28                      multipartForm: 'multipart/form-data'
29                    ]
30// The default codec used to encode data with ${}
31grails.views.default.codec="none" // none, html, base64
32grails.views.gsp.encoding="UTF-8"
33grails.converters.encoding="UTF-8"
34
35// enable Sitemesh preprocessing of GSP pages
36grails.views.gsp.sitemesh.preprocess = true
37// scaffolding templates configuration
38grails.scaffolding.templates.domainSuffix = 'Instance'
39
40// Set to false to use the new Grails 1.2 JSONBuilder in the render method
41grails.json.legacy.builder=false
42
43// enabled native2ascii conversion of i18n properties files
44grails.enable.native2ascii = true
45
46// whether to install the java.util.logging bridge for sl4j. Disable fo AppEngine!
47grails.logging.jul.usebridge = true
48// packages to include in Spring bean scanning
49grails.spring.bean.packages = []
50
51
52/**
53 * Log4j configuration.
54 * Causing this file to reload (e.g. edit+save) may break the appLog destination
55 * and further logs will be written to files or directories like "[:]".
56 * For more info see http://logging.apache.org/log4j/1.2/manual.html
57 * For log levels see http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html
58 * Basic log levels are ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
59 */
60// Pickup the Tomcat/Catalina logDirectory else use the current dir.
61def catalinaBase = System.properties.getProperty('catalina.base')
62def logDirectory = catalinaBase ? "${catalinaBase}/logs" : '.'
63
64log4j = {
65    appenders {
66        // Use if we want to prevent creation of a stacktrace.log file.
67        'null' name:'stacktrace'
68
69        // Use this if we want to modify the default appender called 'stdout'.
70        console name:'stdout', layout:pattern(conversionPattern: '[%t] %-5p %c{2} %x - %m%n')
71
72        // Custom log file.
73        rollingFile name:"appLog",
74                        file:"${logDirectory}/${appName}.log".toString(),
75                        maxFileSize:'300kB',
76                        maxBackupIndex:0,
77                        layout:pattern(conversionPattern: '%d{[EEE, dd-MMM-yyyy @ HH:mm:ss.SSS]} [%t] %-5p %c %x - %m%n')
78    }
79
80    // Configure the root logger to output to stdout and appLog appenders.
81    root {
82        error 'stdout','appLog'
83        additivity = true
84    }
85
86    // This is for the built-in stuff and from the default Grails-1.2.1 config.
87    error 'org.codehaus.groovy.grails.web.servlet',  //  controllers
88            'org.codehaus.groovy.grails.web.pages', //  GSP
89            'org.codehaus.groovy.grails.web.sitemesh', //  layouts
90            'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
91            'org.codehaus.groovy.grails.web.mapping', // URL mapping
92            'org.codehaus.groovy.grails.commons', // core / classloading
93            'org.codehaus.groovy.grails.plugins', // plugins
94            'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
95            'org.springframework',
96            'org.hibernate',
97            'net.sf.ehcache.hibernate'
98
99    warn   'org.mortbay.log' // Jetty
100
101    error "grails.app" // Set the default log level for our app code.
102    info "grails.app.bootstrap" // Set the log level per type and per type.class
103    error "grails.app.service.AuthService"
104    error "grails.app.service.NavigationService"
105    error "grails.app.service.com.zeddware.grails.plugins.filterpane.FilterService"
106
107    // Move anything that should behave differently into this section.
108    switch(environment) {
109        case 'development':
110            debug "grails.app.service"
111            debug "grails.app.controller"
112            break
113        case 'test':
114            debug "grails.app.service"
115            debug "grails.app.controller"
116            break
117        case 'production':
118            warn "grails.app.service"
119            warn "grails.app.controller"
120            debug "grails.app.service.AssetCsvService"
121            debug "grails.app.service.PersonCsvService"
122            debug "grails.app.service.InventoryCsvService"
123            debug "grails.app.service.AssetTreeService" /// @todo: remove after testing.
124            break
125    }
126}
127
128/**
129 * Environment specific configuration.
130 */
131environments {
132
133    production {
134        grails.serverURL = "http://www.changeme.com" // Set serverURL stem for creating absolute links.
135    }
136
137    development {
138        grails.serverURL = "http://localhost:8080/${appName}" // Set serverURL stem for creating absolute links.
139    }
140
141    test {
142        grails.serverURL = "http://localhost:8080/${appName}" // Set serverURL stem for creating absolute links.
143    }
144
145} // end environments
146
147/**
148 * Navigation plugin menu.
149 * The top level titles are taken from i18n message bundles.
150 * Subitems i18n message bundles are not currently resolving with this plugin.
151 */
152navigation.nav = [
153    [order:10, controller:'appCore', title:'home', action:'start',
154        subItems: [
155            [order:10, controller:'appCore', title:'Start', action:'start', isVisible: { true }],
156            [order:20, controller:'appCore', title:'Manager', action:'manager', isVisible: { authenticateService.ifAnyGranted('ROLE_Manager,ROLE_AppAdmin') }],
157            [order:30, controller:'appCore', title:'Admin', action:'appAdmin', isVisible: { authenticateService.ifAllGranted('ROLE_AppAdmin') }],
158            [order:90, controller:'appCore', title:'Timeout', action:'changeSessionTimeout', isVisible: { params.action == 'changeSessionTimeout' }],
159            [order:91, controller:'appCore', title:'Password', action:'changePassword', isVisible: { params.action == 'changePassword' }],
160        ]
161    ],
162    [order:20, controller:'taskDetailed', title:'tasks', action:'search',
163        subItems: [
164            [order:10, controller:'taskDetailed', title:'Search', action:'search', isVisible: { true }],
165            [order:11, controller:'taskDetailed', title:'Calendar', action:'searchCalendar', isVisible: { true }],
166            [order:20, controller:'taskDetailed', title:'+Scheduled', action:'create', isVisible: { true }],
167            [order:30, controller:'taskDetailed', title:'+Unsheduled', action:'createUnscheduled', isVisible: { true }],
168            [order:40, controller:'taskDetailed', title:'+Callout', action:'createImmediateCallout', isVisible: { true }],
169            [order:90, controller:'taskDetailed', title:'Show', action:'show', id:'nav', isVisible: { params.action == 'show' }],
170            [order:91, controller:'taskDetailed', title:'Edit', action:'edit', id:'nav', isVisible: { params.action == 'edit' }]
171        ]
172    ],
173    [order:30, controller:'inventoryItemDetailed', title:'inventory', action:'search',
174        subItems: [
175            [order:10, controller:'inventoryItemDetailed', title:'Search', action:'search', isVisible: { true }],
176            [order:20, controller:'inventoryItemDetailed', title:'Create', action:'create', isVisible: { true }],
177            [order:90, controller:'inventoryItemDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
178            [order:91, controller:'inventoryItemDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
179        ]
180    ],
181    [order:40, controller:'assetDetailed', title:'assets', action:'search',
182        subItems: [
183            [order:10, controller:'assetDetailed', title:'Search', action:'search', isVisible: { true }],
184            [order:20, controller:'assetDetailed', title:'Create', action:'create', isVisible: { true }],
185            [order:90, controller:'assetDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
186            [order:91, controller:'assetDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }],
187            [order:99, controller:'assetSubItemDetailed', title:'Sub Items', action:'search', isVisible: { true }]
188        ]
189    ]
190]
191
192/**
193 * Navigation plugin alternate menu.
194 * The alternate menu top level titles are not displayed anywhere.
195 * Subitems i18n message bundles are not currently resolving with this plugin.
196 */
197navigation.navAlt = [
198    [order:10, controller:'person', title:'person', action:'list',
199        subItems: [
200            [order:10, controller:'person', title:'Person List', action:'list', isVisible: { true }],
201            [order:20, controller:'person', title:'Create', action:'create', isVisible: { true }],
202            [order:90, controller:'person', title:'Show', action:'show', isVisible: { params.action == 'show' }],
203            [order:91, controller:'person', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
204        ]
205    ],
206    [order:20, controller:'taskProcedureDetailed', title:'taskProcedure', action:'list',
207        subItems: [
208            [order:10, controller:'taskProcedureDetailed', title:'Task Procedure List', action:'list', isVisible: { true }],
209            [order:20, controller:'taskProcedureDetailed', title:'Create', action:'create', isVisible: { true }],
210            [order:90, controller:'taskProcedureDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
211            [order:91, controller:'taskProcedureDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
212        ]
213    ],
214    [order:30, controller:'assetSubItemDetailed', title:'assetSubItem', action:'search',
215        subItems: [
216            [order:10, controller:'assetSubItemDetailed', title:'Sub Item Search', action:'search', isVisible: { true }],
217            [order:20, controller:'assetSubItemDetailed', title:'Create', action:'create', isVisible: { true }],
218            [order:90, controller:'assetSubItemDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
219            [order:91, controller:'assetSubItemDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
220        ]
221    ],
222    [order:40, controller:'maintenancePolicyDetailed', title:'maintenancePolicy', action:'list',
223        subItems: [
224            [order:10, controller:'maintenancePolicyDetailed', title:'Maintenance Policy List', action:'list', isVisible: { true }],
225            [order:20, controller:'maintenancePolicyDetailed', title:'Create', action:'create', isVisible: { true }],
226            [order:90, controller:'maintenancePolicyDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
227            [order:91, controller:'maintenancePolicyDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
228        ]
229    ],
230    [order:50, controller:'supplierDetailed', title:'supplier', action:'list',
231        subItems: [
232            [order:10, controller:'supplierDetailed', title:'Supplier List', action:'list', isVisible: { true }],
233            [order:20, controller:'supplierDetailed', title:'Create', action:'create', isVisible: { true }],
234            [order:90, controller:'supplierDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
235            [order:91, controller:'supplierDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
236        ]
237    ],
238    [order:60, controller:'manufacturerDetailed', title:'manufacturer', action:'list',
239        subItems: [
240            [order:10, controller:'manufacturerDetailed', title:'Manufacturer List', action:'list', isVisible: { true }],
241            [order:20, controller:'manufacturerDetailed', title:'Create', action:'create', isVisible: { true }],
242            [order:90, controller:'manufacturerDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
243            [order:91, controller:'manufacturerDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
244        ]
245    ],
246    [order:70, controller:'inventoryStoreDetailed', title:'inventoryStore', action:'list',
247        subItems: [
248            [order:10, controller:'inventoryStoreDetailed', title:'Inventory Store List', action:'list', isVisible: { true }],
249            [order:20, controller:'inventoryStoreDetailed', title:'Create', action:'create', isVisible: { true }],
250            [order:90, controller:'inventoryStoreDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
251            [order:91, controller:'inventoryStoreDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
252        ]
253    ],
254    [order:80, controller:'inventoryLocationDetailed', title:'inventoryLocation', action:'list',
255        subItems: [
256            [order:10, controller:'inventoryLocationDetailed', title:'Inventory Location List', action:'list', isVisible: { true }],
257            [order:20, controller:'inventoryLocationDetailed', title:'Create', action:'create', isVisible: { true }],
258            [order:90, controller:'inventoryLocationDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
259            [order:91, controller:'inventoryLocationDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
260        ]
261    ],
262    [order:90, controller:'inventoryGroupDetailed', title:'inventoryGroup', action:'list',
263        subItems: [
264            [order:10, controller:'inventoryGroupDetailed', title:'Inventory Group List', action:'list', isVisible: { true }],
265            [order:20, controller:'inventoryGroupDetailed', title:'Create', action:'create', isVisible: { true }],
266            [order:90, controller:'inventoryGroupDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
267            [order:91, controller:'inventoryGroupDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
268        ]
269    ],
270    [order:100, controller:'manufacturerTypeDetailed', title:'manufacturerType', action:'list',
271        subItems: [
272            [order:10, controller:'manufacturerTypeDetailed', title:'Manufacturer Type List', action:'list', isVisible: { true }],
273            [order:20, controller:'manufacturerTypeDetailed', title:'Create', action:'create', isVisible: { true }],
274            [order:90, controller:'manufacturerTypeDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
275            [order:91, controller:'manufacturerTypeDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
276        ]
277    ],
278    [order:110, controller:'supplierTypeDetailed', title:'supplierType', action:'list',
279        subItems: [
280            [order:10, controller:'supplierTypeDetailed', title:'Supplier Type List', action:'list', isVisible: { true }],
281            [order:20, controller:'supplierTypeDetailed', title:'Create', action:'create', isVisible: { true }],
282            [order:90, controller:'supplierTypeDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
283            [order:91, controller:'supplierTypeDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
284        ]
285    ],
286    [order:120, controller:'siteDetailed', title:'site', action:'list',
287        subItems: [
288            [order:10, controller:'siteDetailed', title:'Site List', action:'list', isVisible: { true }],
289            [order:20, controller:'siteDetailed', title:'Create', action:'create', isVisible: { true }],
290            [order:90, controller:'siteDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
291            [order:91, controller:'siteDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
292        ]
293    ],
294    [order:130, controller:'sectionDetailed', title:'section', action:'list',
295        subItems: [
296            [order:10, controller:'sectionDetailed', title:'Section List', action:'list', isVisible: { true }],
297            [order:20, controller:'sectionDetailed', title:'Create', action:'create', isVisible: { true }],
298            [order:90, controller:'sectionDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
299            [order:91, controller:'sectionDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
300        ]
301    ],
302    [order:140, controller:'extendedAttributeTypeDetailed', title:'extendedAttributeType', action:'list',
303        subItems: [
304            [order:10, controller:'extendedAttributeTypeDetailed', title:'Attribute Type List', action:'list', isVisible: { true }],
305            [order:20, controller:'extendedAttributeTypeDetailed', title:'Create', action:'create', isVisible: { true }],
306            [order:90, controller:'extendedAttributeTypeDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
307            [order:91, controller:'extendedAttributeTypeDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
308        ]
309    ],
310    [order:150, controller:'departmentDetailed', title:'department', action:'list',
311        subItems: [
312            [order:10, controller:'departmentDetailed', title:'Department List', action:'list', isVisible: { true }],
313            [order:20, controller:'departmentDetailed', title:'Create', action:'create', isVisible: { true }],
314            [order:90, controller:'departmentDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
315            [order:91, controller:'departmentDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
316        ]
317    ],
318    [order:160, controller:'productionReferenceDetailed', title:'productionReference', action:'list',
319        subItems: [
320            [order:10, controller:'productionReferenceDetailed', title:'Production Reference List', action:'list', isVisible: { true }],
321            [order:20, controller:'productionReferenceDetailed', title:'Create', action:'create', isVisible: { true }],
322            [order:90, controller:'productionReferenceDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
323            [order:91, controller:'productionReferenceDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
324        ]
325    ],
326    [order:170, controller:'costCodeDetailed', title:'costCode', action:'list',
327        subItems: [
328            [order:10, controller:'costCodeDetailed', title:'Cost Code List', action:'list', isVisible: { true }],
329            [order:20, controller:'costCodeDetailed', title:'Create', action:'create', isVisible: { true }],
330            [order:90, controller:'costCodeDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
331            [order:91, controller:'costCodeDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
332        ]
333    ],
334    [order:180, controller:'personGroupDetailed', title:'personGroup', action:'list',
335        subItems: [
336            [order:10, controller:'personGroupDetailed', title:'Person Group List', action:'list', isVisible: { true }],
337            [order:20, controller:'personGroupDetailed', title:'Create', action:'create', isVisible: { true }],
338            [order:90, controller:'personGroupDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
339            [order:91, controller:'personGroupDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
340        ]
341    ],
342    [order:190, controller:'personGroupTypeDetailed', title:'personGroupType', action:'list',
343        subItems: [
344            [order:10, controller:'personGroupTypeDetailed', title:'Person Group Type List', action:'list', isVisible: { true }],
345            [order:20, controller:'personGroupTypeDetailed', title:'Create', action:'create', isVisible: { true }],
346            [order:90, controller:'personGroupTypeDetailed', title:'Show', action:'show', isVisible: { params.action == 'show' }],
347            [order:91, controller:'personGroupTypeDetailed', title:'Edit', action:'edit', isVisible: { params.action == 'edit' }]
348        ]
349    ]
350]
351
352/**
353 * Some custom globals.
354 */
355taskRecurringScheduleJob.repeatInterval=10
Note: See TracBrowser for help on using the repository browser.