Application.properties

# The Apereo Foundation licenses this file to you under the Apache License,

# Version 2.0 (the "License"); you may not use this file except in

# compliance with the License. You may obtain a copy of the License at:

#

# http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

#

# See the License for the specific language governing permissions and

# limitations under the License.

#

#############################################################################


# Application settings


# Use the following property to set the login page when user types '/UniTime'

tmtbl.login_url=login.jsp


# Use the following property to configure maximum number of failed login attempts

# before the user is locked out of the system for a period of time

# defaults to 7 if not set

#tmtbl.login.max.failed.attempts=7


# Use the following property to configure the number of minutes a user will be locked

# out of the system if they exceed the maximum number of failed login attempts

# defaults to 15 if not set

#tmtbl.login.failed.lockout.minutes=15


# Use the following property to configure the number of milliseconds to delay responding

# to a user with an unable to log in error if they have exceeded their maximum number

# of failed login attempts by more than 3

# defaults to 15000

#tmtbl.login.failed.delay.milliseconds=15000


# Headers and Footers

#tmtbl.header.external=custom/header.jsp

#tmtbl.footer.external=custom/footer.jsp


# System message displayed to all users when the log on

tmtbl.system_message=


# Reload this file on the fly if modified when deployed to the app server

# Should probably be set to false in production but useful during development

tmtbl.properties.dynamic_reload=false


# Set the periodicity (in milliseconds) for checking if property files have changed

tmtbl.properties.dynamic_reload_interval=15000


#Enable "local" option in the solver host selection

tmtbl.solver.local.enabled=true


#Minimum amount of available memory (in megabytes) needed to be able to start additional solver instance

#If there is not enough memory on any of the registered solver servers, the following exception is thrown:

# "Not enough resources to create a solver instance, please try again later."

tmtbl.solver.mem_limit=200


# Logging properties

log4j.logger.org.hibernate.cfg=WARN

log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=WARN

log4j.logger.org.hibernate.util.JDBCExceptionReporter=ERROR

log4j.logger.org.hibernate.cache.EhCacheProvider=ERROR

log4j.logger.org.hibernate.cache.CacheFactory=ERROR

log4j.logger.org.hibernate.engine.internal.StatefulPersistenceContext=ERROR

log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN

log4j.logger.org.hibernate.engine.transaction.internal.jta.JtaTransaction=ERROR

log4j.logger.net.sf.ehcache.distribution.jgroups.JGroupsCacheReceiver=ERROR

log4j.logger.net.sf.ehcache.distribution.jgroups.JGroupsBootstrapManager=WARN

log4j.logger.org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory=ERROR

log4j.logger.org.infinispan.jmx=WARN


log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[%-d{MM/dd/yy HH:mm:ss}] %-6p %c{1} -> %m%n


log4j.appender.unitime=org.apache.log4j.DailyRollingFileAppender

log4j.appender.unitime.File=${catalina.base}/logs/unitime.log

log4j.appender.unitime.DatePattern='.'yyyy-MM-dd

log4j.appender.unitime.Append=true

log4j.appender.unitime.layout=org.apache.log4j.PatternLayout

log4j.appender.unitime.layout.ConversionPattern=[%-d{MM/dd/yy HH:mm:ss}] %-6p %c{1} -> %m%n


log4j.rootLogger=INFO, stdout, unitime


#Show SQL commands

#log4j.logger.org.hibernate.SQL=DEBUG


#Hide warnings by ActionMapping

log4j.logger.org.apache.struts.action.ActionMapping=ERROR


# Email settings (UniTime 3.2+)

# Common settings

mail.smtp.host=127.0.0.1

mail.smtp.port=25

# If SMTP authentication is needed

# mail.smtp.user=

# mail.smtp.password=

# Enable SSL if needed. Other mail.smtp.ssl properties may need to be set

# (see http://java.sun.com/products/javamail/javadocs/com/sun/mail/smtp/package-summary.html)

# mail.smtp.ssl.enable=true

# Sender address

unitime.email.sender=noreply@unitime.org

unitime.email.sender.name=UniTime Application

# Reply to address

unitime.email.replyto=support@unitime.org

unitime.email.replyto.name=UniTime Support


# Email notifications

unitime.email.notif=demo@unitime.org

unitime.email.notif.name=UniTime Demo

# Send solution commit / uncommit notifications

unitime.email.notif.commit=false

# Send error reports

unitime.email.notif.error=false

# Data import/export emails

unitime.email.notif.data=false


# Email inquires (Contact us page)

# If not defined, unitime.email.notif is used instead.admin

unitime.email.inquiry=demo@unitime.org

unitime.email.inquiry.name=UniTime Demo

# For users without email, an email is constructed as login name + the following suffix

unitime.email.inquiry.suffix=@unitime.org

# Also send an autoreply message back to the user (if false, the user is CC-ed in the original message)

# This is handy when sending emails to users can fail (e.g., because of an invalid email address)

unitime.email.inquiry.autoreply=false


# Email confirmations

# Enable event confirmations

unitime.email.confirm.event=true


#Integration with Wiki

tmtbl.wiki.help=true

#tmtbl.wiki.url=http://help45.unitime.org/

#tmtbl.help.root=http://help45.unitime.org/Timetabling

tmtbl.help.manual.events=https://docs.google.com/document/d/1bDzKBMEKOFYN_aBwzA6E4PAsBOGV7Tx-A3i_kuMae6U

tmtbl.help.manual.events_admin=https://docs.google.com/document/d/1Aye5LrLiAcTBR7aNOJO6laYg7-eEDlkfd5s0EW3jFZ4

tmtbl.help.manual.input_data=https://docs.google.com/document/d/1rjS_6ebwegSTcN5Iw57qui5CHG8_6TWnk8MCwBwAt58

tmtbl.help.manual.solver=https://docs.google.com/document/d/1NZmKnmrjM2Tqg7dO18cWcMIe_GrtilQtKw6d1WGWBtY

tmtbl.help.manual.instructorScheduling=https://docs.google.com/document/d/1JksFtB9ecIoKpuyY0SDdl3dKnATe8UQAPKlGfBWi2JU

tmtbl.help.manual.administration=https://docs.google.com/document/d/1iuj9NwrqkiVeJvKn1Sd41qqaVEJGwO79y1KZo1mtwuw

tmtbl.help.manual.schedulingAssistant=https://docs.google.com/document/d/1QTCKwLhU62yGtr6XlW_XM68q3hgohxLpwWXdyajr30g

tmtbl.help.manual.schedulingDashboard=https://docs.google.com/document/d/1ap13URaw7UVT0FN9NZtgSROEKoS-V7S1uq0214Sh43M

tmtbl.help.manual.other=https://docs.google.com/document/d/1OoCI2GZ7-2R_HSuW7slNfN9sp-_guHxRCJaB2asOH7Y

#tmtbl.help.faq=http://help45.unitime.org/Frequently_Asked_Questions

#tmtbl.help.tricks=http://help45.unitime.org/Tips_and_Tricks

tmtbl.help.release_notes=help/Release-Notes.xml

#HTTPS version of help pages

# Enable when UniTime is access via https to prevent mixed content warnings in IE.

tmtbl.wiki.url=https://help46.unitime.org/

tmtbl.help.root=https://help46.unitime.org/timetabling

tmtbl.help.faq=https://help46.unitime.org/frequently-asked-questions

tmtbl.help.tricks=https://help46.unitime.org/tips-and-tricks


#Override default Scheduling Subpart Editing Preference

tmtbl.subpart.credit.editable=true


#Enable these properties on a test server

#tmtbl.global.warn=This is a test version of the Timetabling application, no data entered here will be used in production.

#tmtbl.custom.css=styles/test.css

#tmtbl.title=Timetabling TEST


#Course Number pattern (3 numbers followed by an optional letter)

tmtbl.courseNumber.pattern=^[0-9][0-9][0-9]([A-Za-z]){0,1}$

tmtbl.courseNumber.patternInfo=Course Number must have 3 numbers followed by an optional letter (e.g. 214, 342X)

# If true, course numbers are automatically converted to upper case

tmtbl.courseNumber.upperCase=true


#Non University Location name pattern

#tmtbl.nonUniversityLocation.pattern=^[A-Za-z0-9][A-Za-z0-9 &/-]{0,19}$

#tmtbl.nonUniversityLocation.patternInfo=Non University Location name must start with a letter or number followed by up to 19 other letters, numbers, dashes, ampersands or spaces.


# Default decimal format of the room area

unitime.room.area.units.format=#,##0.##


#Course Number must be unique within a subject area

# If you set this to false you must removed the unique key UK_COURSE_OFFERING_SUBJ_CRS and its corresponding index

# If this value is not set it defaults to true

tmtbl.courseNumber.unique=true


#Manager External Id Lookup

#Must implement the interface org.unitime.timetable.interfaces.ExternalUidLookup

tmtbl.manager.external_id.lookup.enabled=false

tmtbl.manager.external_id.lookup.class=


#Instructor External Id Lookup

#Must implement the interface org.unitime.timetable.interfaces.ExternalUidLookup

tmtbl.instructor.external_id.lookup.enabled=false

tmtbl.instructor.external_id.lookup.class=


#Contact information (Contact Us page)

tmtbl.contact.address=

tmtbl.contact.phone=

tmtbl.contact.office_hours=

tmtbl.contact.email=timetabling@universty.edu

tmtbl.contact.email_mailto=timetabling@universty.edu?subject=TIMETABLING: <add subject here&gt


#Custom properties (loaded on top of application properties)

tmtbl.custom.properties=custom.properties


#Enable export of PDF Worksheet files on Instructional Offerings page

tmtbl.pdf.worksheet=true

#tmtbl.pdf.worksheet.author=UniTime 3.1

#tmtbl.pdf.worksheet.title=PDF WORKSHEET


#If the following property is defined and set to true, last used academic session is

#automatically selected for an authenticated user (if it is still available for the user).

tmtbl.keeplastused.session=false


#Generated exam name

# Basic codes

# s ... subject area

# c ... course number

# i ... itype abbv

# n ... section number

# x ... configuration name

# Additional codes

# d ... department abbv

# D ... department code

# a ... class suffix (div-sec number)

# y ... itype suffix (a, b etc.)

# e ... class extended id

# f ... course extended id

# o ... offering extended id

# t ... exam type suffix (tmtbl.exam.name.type.Final and tmtbl.exam.name.type.Midterm)

# I ... itype code

# p ... itype parent abbv

# P ... itype parent code

# _ ... space

tmtbl.exam.name.maxLength=100

tmtbl.exam.name.Course=%s %c

tmtbl.exam.name.Offering=%s %c

tmtbl.exam.name.Config=%s %c [%x]

tmtbl.exam.name.Class=%s %c %i %n

tmtbl.exam.name.suffix=

tmtbl.exam.name.sameSubject.Course=; %c

tmtbl.exam.name.sameSubject.Offering=; %c

tmtbl.exam.name.sameSubject.Config=; %c [%x]

tmtbl.exam.name.sameSubject.Class=; %c %i %n

tmtbl.exam.name.sameCourse.Config=, [%x]

tmtbl.exam.name.sameCourse.Class=, %i %n

tmtbl.exam.name.sameSubpart.Class=, %n

tmtbl.exam.name.diffSubject.separator=;%_

tmtbl.exam.name.type.Final=Final

tmtbl.exam.name.type.Midterm=Midterm


#Room availability -- by default, use the included event management system

tmtbl.room.availability.class=org.unitime.timetable.util.DefaultRoomAvailabilityService


# Examination Timetabling: Consider direct student and instructor conflicts with other events

# (that is class events, course events with required attendance)

# for final examination problem

tmtbl.exam.eventConflicts.final=true

# final midterm examination problem

tmtbl.exam.eventConflicts.midterm=true

# Required minimal travel time between class event and an exam (in the number of 5-minute long time slots)

tmtbl.exam.eventConflicts.travelTime.classEvent=6

# Required minimal travel time between course event and an exam (in the number of 5-minute long time slots)

tmtbl.exam.eventConflicts.travelTime.courseEvent=0


# Examination Timetabling: Automatically create strongly preferred same room constraint between exams of the same owner(s)

# (while examination data are loaded into the solver)

# for final examination problem

tmtbl.exam.sameRoom.final=false

# final midterm examination problem

tmtbl.exam.sameRoom.midterm=true


# Examnation Timetabling: Automatically create following preferences

# (while an exam is being saved into the database)

#

# For an exam that is attached to an evening class -> put period preference on a period that overlaps

# in time and day of week with the class (if not preference is set by the user)

#

# Final exams --> require appropriate period (overlapping day of week and time) for an evening class

# (evening class is a class that takes place after 6pm, defined by firstEveningPeriod -- number of 5-minute long time slots from midnight)

# (preference: R for required, -2 strongly preferred, -1 preferred, 0 rule disabled, 1 discouraged, 2 strongly discouraged, P prohibited)

#tmtbl.exam.defaultPrefs.final.eveningClasses.pref=R

#tmtbl.exam.defaultPrefs.final.eveningClasses.firstEveningPeriod=216

#

# Final exams --> rule disabled

tmtbl.exam.defaultPrefs.final.eveningClasses.pref=0

tmtbl.exam.defaultPrefs.final.eveningClasses.firstEveningPeriod=216

#

# Evening exams --> rule disabled

tmtbl.exam.defaultPrefs.midterm.eveningClasses.pref=0

tmtbl.exam.defaultPrefs.midterm.eveningClasses.firstEveningPeriod=216

#

# For an exam that is attached to a class -> put room preference on a room (if it allows exams) of the class

# Final exams -> strongly prefer original room (room where the class is placed)

#tmtbl.exam.defaultPrefs.final.originalRoom.pref=-2

# Final exams -> rule disabled

tmtbl.exam.defaultPrefs.final.originalRoom.pref=0

# Midterm exams -> rule disabled

tmtbl.exam.defaultPrefs.midterm.originalRoom.pref=0

#

# For an exam that is attached to a class -> put building preference on a room of the class

# Final exams -> prefer original building (of the room where the class is placed)

#tmtbl.exam.defaultPrefs.final.originalBuilding.pref=-1

# Final exams -> rule disabled

tmtbl.exam.defaultPrefs.final.originalBuilding.pref=0

# Midterm exams -> rule disabled

tmtbl.exam.defaultPrefs.midterm.originalBuilding.pref=0

# If the rule is enabled, set whether it is to be applied only when a class is in a room that allows exams.

#tmtbl.exam.defaultPrefs.final.originalBuilding.onlyForExaminationRooms=false

#tmtbl.exam.defaultPrefs.midterm.originalBuilding.onlyForExaminationRooms=false




# Exams default start and stop offsets - This is to be used to reserve time for

# students entering the exam room before the exam begins and time for students

# to leave the exam after the exam has finished. The start offset must be a

# positive number that is not greater than the number of minutes in the exam

# period. The stop offset must be a number whose value is

# greater than the number of minutes in the exam period. By default the start time displayed

# for the exam with be the start time of the exam period plus the start offset

# and the end time displayed will be the end time of the exam period minus the

# stop offset. If no offset is defined then 0 is assumed. e.g.

#tmtbl.exam.defaultStartOffset.midterm=15

#tmtbl.exam.defaultStopOffset.midterm=15

#tmtbl.exam.defaultStartOffset.final=20

#tmtbl.exam.defaultStopOffset.final=0


#Trim leading zeros from student and staff external ids when loading from xml

# This is useful if the data loads have ids with leading zeros and external lookup systems ignore the leading zeros

# In this case the trim leading zeros should be set to true, by default it is false.

#tmtbl.data.exchange.trim.externalId=false


#If you are using UniTime in conjunction with an external system that identifies classes differently than UniTime

# you can create a java class that implements the ExternalClassNameHelperInterface interface to create custom

# naming for the class that is displayed in places such as the personal exam schedule and personal class

# schedule for students. If this is not set org.unitime.timetable.util.DefaultExternalClassNameHelper is used

#tmtbl.class.naming.helper=org.unitime.timetable.util.DefaultExternalClassNameHelper


# Disclaimer to be added at the bottom of every page (in HTML format).

#tmtbl.page.disclaimer=Thanks for using UniTime, the best software ever made for University Timetabling. If you have any questions contact us at support@unitime.org.


# Room coordinations

# The following property sets the ellipsoid that is used to compute distances.

# Values:

# LEGACY ... Euclidean metric (1 unit equals to 10 meters)

# WGS84 ... WGS-84 (GPS, a = 6378137 m, b = 6356752.3142 m)

# GRS80 ... GRS-80 (a = 6378137 m, b = 6356752.3141 m)

# Airy1830 ... Airy (1830) (a = 6377563.396 m, b = 6356256.909 m)

# Intl1924 ... Int'l 1924 (a = 6378388 m, b = 6356911.946 m)

# Clarke1880 ... Clarke (1880) (a = 6378249.145 m, b = 6356514.86955 m)

# GRS67 ... GRS-67 (a = 6378160 m, b = 6356774.719 m)

unitime.distance.ellipsoid=WGS84

# Minimap (to be displayed if set)

# Strings %x and %y are replaced by the room's coordinates

# String %n is replaced by the room name

# String %i is replaced by the room external id

unitime.minimap.url=maps?center=%x,%y&zoom=16&size=600x400

# Minimap to be used in location's tooltip

unitime.minimap.hint=maps?center=%x,%y&zoom=15&size=300x200

# QR Code example:

# unitime.minimap.hint=http://chart.apis.google.com/chart?cht=qr&chs=200x200&chl=%n+(%x,%y)+%i

# Use Google maps to enter room / building coordinates

unitime.coordinates.googlemap=false


# Application Configuration page

# Only properties matching the following regular expression are displayed

tmtbl.appConfig.pattern=^(tmtbl|unitime)\\..*$



# Default application menu style

# Values

# Static On Top ... Horizontal menu bar on the top of the page (takes 100% width of the page, does not move with the page)

# Dynamic On Top ... Horizontal menu bar on the top of the page (takes 100% width of the client window, moves with the page as it is scrolled)

# Tree On Side ... Tree on the left side of the page content (moves with the page, resembles the UniTime 3.1 menu the most)

# Stack On Side ... Tree on the left side of the page content, but the first level of the tree is a StackPanel (only one top level item can be opened at a time)

# If manager setting for this property is created, each user (timetable manager) can change his/her menu style.

unitime.menu.style=Dynamic On Top


# Solution passivation time

# Number of minutes after which an inactive solution can be passivated to disk to save memory

# Passivation is disabled if set to zero, default is 30 minutes

unitime.solver.passivation.time=30


# For various PDF exports, if you need other fonts than the ones bundled in the iText library (e.g., because of their poor unicode support),

# set the following unitime.pdf.font properties. The fonts will be embedded in the exported PDF.

#

# Here are some tested examples (please check that you have the fonts installed before uncommenting of the appropriate section):

# Windows 7 Arial and Courier Fonts

#unitime.pdf.font=c:\\Windows\\Fonts\\arial.ttf

#unitime.pdf.font.italic=c:\\Windows\\Fonts\\ariali.ttf

#unitime.pdf.font.bold=c:\\Windows\\Fonts\\arialbd.ttf

#unitime.pdf.font.bolditalic=c:\\Windows\\Fonts\\arialbi.ttf

#unitime.pdf.font.fixed=c:\\Windows\\Fonts\\cour.ttf

# Mac OS X Arial and Courier New Fonts

#unitime.pdf.font=/Library/Fonts/Arial.ttf

#unitime.pdf.font.italic=/Library/Fonts/Arial Italic.ttf

#unitime.pdf.font.bold=/Library/Fonts/Arial Bold.ttf

#unitime.pdf.font.bolditalic=/Library/Fonts/Arial Bold Italic.ttf

#unitime.pdf.font.fixed=/Library/Fonts/Courier New.ttf

# Linux DejaVu Fonts (see http://dejavu-fonts.org/)

#unitime.pdf.font=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf

#unitime.pdf.font.bold=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf

#unitime.pdf.font.bolditalic=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf

#unitime.pdf.font.italic=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf

#unitime.pdf.font.fixed=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf

#unitime.pdf.fontsize.small=8

#unitime.pdf.fontsize.normal=10

#unitime.pdf.fontsize.fixed=8

# Linux Bitstream Vera Fonts (http://www-old.gnome.org/fonts/)

#unitime.pdf.font=/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf

#unitime.pdf.font.bold=/usr/share/fonts/truetype/ttf-bitstream-vera/VeraBd.ttf

#unitime.pdf.font.bolditalic=/usr/share/fonts/truetype/ttf-bitstream-vera/VeraBI.ttf

#unitime.pdf.font.italic=/usr/share/fonts/truetype/ttf-bitstream-vera/VeraIt.ttf

#unitime.pdf.font.fixed=/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMono.ttf

#unitime.pdf.fontsize.small=8

#unitime.pdf.fontsize.normal=10

#unitime.pdf.fontsize.fixed=8



unitime.authentication.ldap.url=ldap://null

unitime.authentication.ldap.user-dn-pattern=uid={0},ou=authenticate

unitime.authentication.ldap.group-search-base=ou=authorize

unitime.authentication.ldap.group-role-attribute=uid

unitime.authentication.ldap.group-search-filter=uid\={1}

unitime.authentication.ldap.group-convert-to-uppercase=false


# Translation between LDAP uid and UniTime's external user id

#tmtbl.externalUid.translation=org.unitime.timetable.spring.ldap.SpringLdapExternalUidTranslation

unitime.authentication.ldap.identify=uid={0},ou=identify


# External user lookup using LDAP

#tmtbl.manager.external_id.lookup.class=org.unitime.timetable.spring.ldap.SpringLdapExternalUidLookup

#tmtbl.manager.external_id.lookup.enabled=true

#tmtbl.instructor.external_id.lookup.class=org.unitime.timetable.spring.ldap.SpringLdapExternalUidLookup

#tmtbl.instructor.external_id.lookup.enabled=true


# Enable UniTime to receive replies on event confirmation emails

# If a reply message is received, a new note is added to the event's notes and an updated confirmation is sent to all contacts of the event.

# If the reply message contains an attachment, it is also added to the new event note and included in the new confirmation email.

unitime.email.inbound.enabled=false

# IMAP connection for receiving replies (using SSL, see the following example for Gmail)

# If username contains a whole email address, use %40 instead of @ in the username

unitime.email.inbound.uri=imaps://[username]:[password]@imap.gmail.com/INBOX

# Reply-to address for event confirmation emails

unitime.email.inbound.address=[username]@gmail.com

# Reply-to address name for event confirmation emails

unitime.email.inbound.name=UniTime Events



# JGroups configuration defaults

unitime.enrollment.jgroups.config=sectioning-jgroups-tcp.xml

unitime.hibernate.jgroups.config=hibernate-jgroups-tcp.xml

unitime.solver.jgroups.config=solver-jgroups-tcp.xml