- Add JavaDoc to BaseModel
- Improve and simplify equals() method
- htwplus.js: Fix null reference problem, if document.getElementById( $(this).attr('id') ) is undefined
- notification.js. Add loadHistoryNotifications() and attach event listener to appropriate document elements
- NotificationController.java: Start prototype refactoring of notification controller to not delete notifications for the moment, but mark them as "read"
- Notification.java: Add attribute notificationRead to determine, if a notification is read yet or not, tried to improve parts of given code, add methods findUnreadByUser() and markAllAsReadByUser()
- list.scala.html: Add "is read" conditions for all types of notifications to show read/unread notifications
- menuitem.scala.html: Add condition to check if only new or also unread notifications are to shown by clicking on link
- routes: Add Ajax GET route to load notification history (read and unread notifications)
General: This commit introduces a new notification concept using pre-rendered notifications (for performance reasons), that are generated asynchronously using Akka. The client retrieves new notifications via WebSockets that reads new notifications asynchronously, too. For the moment, only postings in groups and on profile streams are refactored using this new notification system.

- routes: Add route for WebSocket notification system
- messages, messages.de: Add i18n to the new templates and logging features
- group.scala.html, profile.scala.html: Add templates to pre-render notifications
- NewNotification.java: Implement a new notification model for the new notification system
- NotificationHandler.java: Implement a singleton handler that is able to generate notifications asynchronously using Akka, in future a mail sending feature will be added
- INotifiable.java: Create an interface for all models, that are "notifiable" (like post, friend request, etc.)
- BaseNotifiable.java: Implement an abstract helper class for notifiable models
- BaseModel.java: Replace @MappedSuperclass annotation with @Entity and @Inheritance, this way, the BaseModel is usable as a reference type from other JPA entities
- NewNotificationActor.java: Implement a WebSocket Akka actor to handle the sending of new notifications to the WebSocket client asynchronously
- NewNotificationController.java: Implement a controller that handles a WebSocket channel for new notifications. It is using Akka and the NewNotificationActor to read new notifications from DB asynchronously and send them back to the client in JSON
- Post.java: Inherit from BaseNotifiable and implement INotifiable methods to be able to be used as a new notification, optimize previous code
- PostController.java: Improve code by removing unnecessary or optimizing required parts, integrated NotificationHandler to create
- Application.java: Some code optimizations
- group.scala.html, profile.scala.html: Add newline at end of files
- notification.js: Add boolean debug variable
- NewNotificationController.java: Delete and put code into NotificationController.java
- NotificationController.java: Handle new notifications
- PostController.java: Add new notification handler for comments in user and group streams
- NewNotification.java: Add max result handling and method findByAccount()
- Post.java: Add constants COMMENT_PROFILE and COMMENT_GROUP to determine correct template in BaseNotifiable
- fullTrim.scala.html: Add template function to remove unnecessary control characters
- truncate.scala.html: Fix template function to not add unnecessary white spaces
- comment_group.scala.html, comment_profile.scala.html, group.scala.html, profile.scala.html: Fixes to get the correct object and add glyph icon
- menuitem.scala.html: Handle new notifications
- messages.de: Deleted and put German i18n into messages
- routes: Change web socket URL to NotificationController
- htwplus.css: Add definitions for new notifications
This commit refactors the notification system in the friendship handling.
- FriendshipController.java: Add notification handler, fix code conventions
- PostController.java: Remove deprecated notifications, add notification handler for comments on own news stream
- Friendship.java: Refactor friendship model to implement INotifiable interface
- NewNotification.java: Add method deleteReferences() to delete notifications containing obsolete reference instances
- Post.java: Fix reference deletion from notifications on post deletion, add handling for comments on own news stream
- new_request.scala.html, request_decline.scala.html, request_successful.scala.html: Add templates for friendship notifications
- comment_group.scala.html, comment_profile.scala.html, comment_profile_own.scala.html: Fix comment templates, add comment on own profile template
- menuitem.scala.html: Add div layer to surround notifications
- messages: Add i18n for post comments on own profile and friendship notifications
- htwplus.css: Add styles for notification elements
- notification.js: Improve debug, completely remove deprecated code for old notification system, add new notifications only, use of more complex JSON data from NewNotificationActor
- NewNotificationActor.java: Improve JSON generation by creating more complex JSON objects, instead of rendered content only
- NewNotification.java: Fix update() by calling JPA merge(), remove unused method findRenderedContentByAccount()
- menuitem.scala.html: add ID with ID of notification to LI elements
- htwplus.css: Increase max-height of notification pop-up
Merge branch 'master' of https://github.com/socia-platform/htwplus into develop
Merge branch '20_newOptionMenu' into develop
- notification.js: Improve general code by excluding functionality into functions, add some fadeIn/fadeOut effects, add inline documentation, remove unnecessary code
- AccountController.java, GroupController.java: Add "controllers" to routing
- NotificationController.java: Add JavaDoc, add method showAll(), refactor forward() for new notification system
- Secured.java: Rename deleteNotification() to hasAccessToNotification(), improve code and add JavaDoc
- TemplateHelper.java: Implement a helper class and method for counting a list of unread notifications
- NewNotificationActor.java: Affected by method renaming in NewNotification
- BaseNotifiable.java: Implement getTargetUrl(), implement render() by signature change of INotifiable
- INotifiable.java: Add method getTargetUrl() that each notifiable object must return its target URL after clicking on that notification (is used in NotificationController -> forward())
- Friendship.java: Implement getTargetUrl()
- NewNotification.java: Add attribute targetUrl, rename findByAccount() to findByAccountId() and add offset, implement findByAccountIdForPage() for returning a list of notifications by a specific page, implement findById() to get a specific notification
- NotificationHandler.java: Handle possible exception in render() method
- Post.java: Implement getTargetUrl()
- NewNotification templates: Remove link to specific notification targets, as it is done in NotificationHandler via targetUrl from now on
- list.scala.html: Comment out complete code (not removing yet, as there are some information required for notification refactoring)
- menuitem.scala.html: Code improvements
- view.scala.html: First prototype of show all notifications
- application.sample.conf: Add limit configuration for show all notifications
- routes: Add route for show all notifications
- htwplus.css: Add styles for better notification elements
Merge branch '20_newOptionMenu' into develop
Merge branch '14_stayLoggedin' into develop
Merge branch '14_stayLoggedin' into develop
Merge branch '14_stayLoggedin' into develop
Merge branch '20_newOptionMenu' into develop
- GroupController.java: Implement new notification system for group invitations
- BaseNotifiable.java: Add temporaryRecipients and temporarySender for assigning not stored senders/recipients. Implement method addTemporaryRecipient().
- Friendship.java: Fix order of "public static final"
- Group.java: Refactor Group to be a BaseNotifiable implementing the INotifiable interface.
- Add group notification templates in views/NewNotification/group and i18n in messages
- BaseNotifiable.java: Fix in getTargetUrl()
- Account.java: Implement findByIdTransactional() to get account in JPA transaction, add JavaDoc to findById()
- Friendship.java: Implement alreadyFriendlyTransactional() to get friendship status in JPA transaction, add JavaDoc to alreadyFriendly()
- Group.java: Add transient inviteList for group invitations, implement isMemberTransactional(), getTargetUrl() and getRecipients(), several code optimizations
- GroupAccount.java: Fix JavaDoc for findRequests(), hasLinkTypes() and find(), implement findTransactional() to find GroupAccount in JPA transaction
- NotificationHandler.java: Add check, for possible null/zero recipients
- NewNotification/group templates: Template improvements and i18n fix in group_request_decline.scala.html
- menuitem.scala.html: Remove dependency to template helper, but calculate number of all and unread notifications in NotificationController
- GroupController.java: Implement new notification system for group invitations, group requests, group accepts and group declines, several code optimizations
- NotificationController.java: Implement method countNotifications() to get a count of all/unread/read notifications within a list of notifications
- TemplateHelper.java: Delete as the function is done and improved in NotificationController::countNotifications()
- messages: Add i18n for group messages
- routes: Delete deprecated notification routes
Merge branch '20_newOptionMenu' into develop
Merge branch '20_newOptionMenu' into develop
Merge branch 'master' into 26_NotificationRefactoring