v4.0.0
New Feature
- [BNN-173] - Portal Icons for functionalities
- [BNN-184] - FileDownloadServlet should support Byte Range Serving
- [BNN-228] - JavaScript access to theme properties
- [BNN-233] - Semantic Versioning support on Bennu Toolkit
- [BNN-239] - Group garbage collector
- [BNN-244] - Add API to upload arbitrarily large files
- [BNN-248] - Public endpoint to expose deployed software
- [BNN-253] - Allow configuration of static cache duration
- [BNN-259] - Service applications can request oauth tokens on behalf of any user
- [BNN-262] - Provide mechanisms for Cache Busting of the app's logo and theme files
- [BNN-264] - Add utility methods to download GenericFiles
- [BNN-269] - Allow for pluggable authentication mechanisms
- [BNN-279] - Allow File Storages to specify a low-level way to download files
- [BNN-294] - Custom Groups should validate identifiers
- [BNN-295] - Add a way to store simple properties
Improvement
- [BNN-141] - Fix javadoc issues
- [BNN-146] - JsonAwareResource methods should return/receive JsonElement
- [BNN-147] - Loosen isReadable of JsonBodyReaderWriter
- [BNN-149] - Bootstrap requests both Name and First, last name
- [BNN-150] - Bootstrap defaults should work
- [BNN-157] - Scheduler should disperse generated files among different directories
- [BNN-167] - User should have api for opening and closing login periods
- [BNN-175] - Application / Functionality should have a optional help link
- [BNN-180] - Unified Post Message System
- [BNN-188] - Squash interfaces that are dispersed through several functionalities
- [BNN-190] - Take advantage of java 8 features to provide better APIs
- [BNN-203] - PersistentGroup's accessors should be overridable
- [BNN-206] - Enable Option to UseCodeAsDefaultMessage in BennuSpringConfiguration
- [BNN-218] - Core group API has unnecessarily visible types
- [BNN-219] - Persistent core leaf groups could be turned into strategy groups
- [BNN-234] - Dynamic loading of JavaScript Dependencies
- [BNN-235] - CSS should load before JavaScript
- [BNN-240] - Standard Spinner for all Bennu applications
- [BNN-243] - Do not compute checksum on GenericFile creation
- [BNN-247] - Dynamic group 'managers' should be accessed statically
- [BNN-252] - response status should be consistent when user is not logged in
- [BNN-260] - deny oauthable requests if login is expired
- [BNN-268] - User search should return active users by default
- [BNN-275] - Keep the user's locale in a Cookie instead of the Session
- [BNN-276] - Upgrade to Spring 4.2.1.RELEASE
- [BNN-281] - FileStorage API shoud receive a reference to the GenericFile
- [BNN-285] - Compile custom tasks with debug information
- [BNN-292] - Replace ANTLR-based Group Parser
- [BNN-297] - Upgrade to Pebble 2.1
- [BNN-300] - UserAuthenticationListener should receive the Request and Response
- [BNN-302] - Dynamic Groups: Show user displayName instead of name
Bug
- [BNN-121] - Remove the img base64 blob from the API
- [BNN-148] - default logo is duplicated in bennu-core and bennu-portal
- [BNN-168] - placeholder does not work with toolkit
- [BNN-171] - Add CSRF Filter
- [BNN-172] - Multiple Root Level Portal Menus
- [BNN-174] - On error page, JSP source code needs to be quoted, or better yet, rewrite that part.
- [BNN-179] - Toolkit - Edit url after being added to text
- [BNN-181] - HTML Editor doesn't work in IE 9
- [BNN-183] - Support for more date and time formats in Bennu-date* fields
- [BNN-191] - Fix photo upload in user creation UI
- [BNN-192] - Ensure 'expiration' slot is cleared on login period updates
- [BNN-194] - datetime widget timeOptions should set unused fields to 0
- [BNN-195] - Non-localized HTML Editor is ignoring the initial value
- [BNN-196] - bennu-datetime not focusable
- [BNN-197] - The date calendar widget doesn't show the current date on the current month
- [BNN-202] - HTMLEditor's file upload input should be hidden
- [BNN-205] - Missing bennu-datetime in angularToolkit
- [BNN-213] - don't check for ip address if ip whitelist is empty
- [BNN-217] - Date/Time widgets behave inconsistently
- [BNN-221] - Urls in pages are set to relative by default
- [BNN-222] - DomainObjectParamConverter should send a 404 error when the object is not found
- [BNN-225] - HTML Editor frame is non standard and does not inherits the theme properties
- [BNN-226] - Localized Input Fields inside modals don't select the smallest language button
- [BNN-229] - Toolkit version is unaffected by versions
- [BNN-230] - OAuth server not accepting client_id and client_secret on header
- [BNN-231] - OAuth server not accepting authentication_token on header
- [BNN-232] - avaible-dates has a typo
- [BNN-246] - ThrowableExceptionMapper should ignore WebApplicationException
- [BNN-257] - Toolkit should have a code editor
- [BNN-261] - default json adapters don't work for interfaces
- [BNN-263] - Validation of service application scope fails when endpoint's scope object does not exist.
- [BNN-265] - Minified toolkit throws an error when loading
- [BNN-266] - bennu-user-autocomplete does not trigger onchange event
- [BNN-267] - Localized String doesn't change lanaguage when value is equal
- [BNN-271] - HTML-Editor with Localized-String integration with angular is not working.
- [BNN-272] - Consider toString exceptions in request attributes when Error Handling
- [BNN-278] - Portal breaks if no base documentation url is defined
- [BNN-280] - DownloadUtil is not properly handling misbehaving InputStreams
- [BNN-282] - Alerts are not properly propagated through redirects
- [BNN-283] - Alerts do not support single quotes in the content
- [BNN-284] - Alerts are not being shown in pages that do not include the Toolkit
- [BNN-287] - Minified Toolkit is not valid Javascript
- [BNN-290] - Custom Group arguments are not properly escaped when generating the group expression
- [BNN-296] - Composite groups's expressions don't respect precedence rules
- [BNN-301] - FileDeleterThread deletes new files from the filesystem
- [BNN-305] - Output file names on scheduler should be properly escaped
- [BNN-306] - FileDeleterThread runs once and then dies
- [BNN-307] - Avoid TX conflicts between lease and task logs.
Task
- [BNN-186] - Move bennu-spring to bennu repository
- [BNN-187] - Move bennu-oauth to bennu repository
- [BNN-204] - Remove Maven Archetypes in favor of fenixedu-start
- [BNN-215] - Remove client-side theme rendering (portal.js)
- [BNN-216] - Add Linguist configuration so Github doesn't think Bennu is a Javascript project
- [BNN-220] - Angular directives should follow the proper naming convention
- [BNN-223] - Move toolkit into its own sub-module
- [BNN-224] - Remove deprecated 'BennuPortal' Javascript variable
- [BNN-237] - Merge bennu-core-test and bennu-oauth-test
- [BNN-238] - Review internal folder structure
- [BNN-245] - Review password hashing policy
- [BNN-249] - Move Bennu Signals into Bennu
- [BNN-251] - Remove ContextPathFilter
- [BNN-254] - Drop the Expires header for static resources
- [BNN-255] - Remove DomainObjectResource
- [BNN-256] - Remove SupportFormResource
- [BNN-291] - Replace imgscalr
- [BNN-293] - Move Bennu Search out of the main bundle
Sub-task
- [BNN-273] - Extract CAS functionalities into a new Login Provider