- 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
- 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
- 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 'master' into 26_NotificationRefactoring
This commit realises single email notifications for users, who wants to receive all notifications immediately. The sending of emails is realized using typesafehub mailer (https://github.com/typesafehub/play-plugins/tree/master/mailer). Also the show all notifications page is improved. Changes from master are also merged.

Classes:
- AccountController.java: Merge changes from master
- FriendshipController.java: Put notification type into createNotification()
- GroupController.java: Code improvements, put notification types into createNotification()
- Navigation.java: Add navigation level for notifications
- NotificationController.java: Remove deprecated methods viewAjax(), viewHistoryAjax(), and deleteAll(), add counting of all available notifications to showAll() for pagination
- PostController.java: Remove deprecated comment, put notification types into createNotification()
- ProfileController.java: Remove unnecessary constant PAGE, add controllers prefix to redirects etc. add handling of emailNotifications to update() of profile
- Secured.java: Merge changes from master, add code simplifications
- EmailNotifications.java: Add enumerations for currently possible states of emailNotifications in Account
- Account.java: Add attribute emailNotification to determine, if the user wishes to receive no, all or daily one email notification if new notifications appear
- EmailHandler: Add handler to send email, especially for email notifications
- Login.java: Merge changes from master
- NewNotification.java: Add JavaDoc and attribute isSent to determine, if a notification is already sent via email, implement method countNotificationsForAccountId() to cound all available notifications for a user (required for pagination in NotificationController::showAll())
- Notification.java: Mark class as @Deprecated
- NotificationHandler.java: Implement another async Akka process to actually sent email notifications (implement handleMail())
- Studycourse.java: Change method getAll() to be in a transaction as problems might appear, if we have the same primary keys in different tables

Templates/CSS:
- Emails/notificationsHtml.scala.html and Emails/notificationsPlainText.scala.html: Templates for emails (HTML template should get a style improvement)
- Notification/view.scala.html: Improve show all notifications by add pagination and better HTML
- Profile/edit.scala.html: Add emailNotifications select box for the user to choose, whether to receive no, all or daily email notifications
- snippets, feedback.scala.html, mail.scala.html: Merges from master
- htwplus.css: Add styles for show all notifications

Other:
- conf/application.sample.conf: Merge changes from master, add SMTP mailer settings and htwplus.email.sender for email notifications
- messages: Add i18n for email notifications and show all
- conf/play.plugins: Add file for mailer plugin
- build.sbt: Include mailer plugin information
- LICENSE: Add MIT license from master change
This commit realises single email notifications for users, who wants to receive all notifications immediately. The sending of emails is realized using typesafehub mailer (https://github.com/typesafehub/play-plugins/tree/master/mailer). Also the show all notifications page is improved. Changes from master are also merged.

Classes:
- AccountController.java: Merge changes from master
- FriendshipController.java: Put notification type into createNotification()
- GroupController.java: Code improvements, put notification types into createNotification()
- Navigation.java: Add navigation level for notifications
- NotificationController.java: Remove deprecated methods viewAjax(), viewHistoryAjax(), and deleteAll(), add counting of all available notifications to showAll() for pagination
- PostController.java: Remove deprecated comment, put notification types into createNotification()
- ProfileController.java: Remove unnecessary constant PAGE, add controllers prefix to redirects etc. add handling of emailNotifications to update() of profile
- Secured.java: Merge changes from master, add code simplifications
- EmailNotifications.java: Add enumerations for currently possible states of emailNotifications in Account
- Account.java: Add attribute emailNotification to determine, if the user wishes to receive no, all or daily one email notification if new notifications appear
- EmailHandler: Add handler to send email, especially for email notifications
- Login.java: Merge changes from master
- NewNotification.java: Add JavaDoc and attribute isSent to determine, if a notification is already sent via email, implement method countNotificationsForAccountId() to cound all available notifications for a user (required for pagination in NotificationController::showAll())
- Notification.java: Mark class as @Deprecated
- NotificationHandler.java: Implement another async Akka process to actually sent email notifications (implement handleMail())
- Studycourse.java: Change method getAll() to be in a transaction as problems might appear, if we have the same primary keys in different tables

Templates/CSS:
- Emails/notificationsHtml.scala.html and Emails/notificationsPlainText.scala.html: Templates for emails (HTML template should get a style improvement)
- Notification/view.scala.html: Improve show all notifications by add pagination and better HTML
- Profile/edit.scala.html: Add emailNotifications select box for the user to choose, whether to receive no, all or daily email notifications
- snippets, feedback.scala.html, mail.scala.html: Merges from master
- htwplus.css: Add styles for show all notifications

Other:
- conf/application.sample.conf: Merge changes from master, add SMTP mailer settings and htwplus.email.sender for email notifications
- messages: Add i18n for email notifications and show all
- conf/play.plugins: Add file for mailer plugin
- build.sbt: Include mailer plugin information
- LICENSE: Add MIT license from master change
This commit enables the automated sending of daily email notifications to users, who wish to receive one email per day with unread notifications.

Classes:
- GroupController.java: Code improvements
- MediaController.java: Code improvements by adding controllers prefix to routes, implement new notification system for media uploads
- EmailHandler.java: Fix correct subject in sendNotificationsEmail(), implement sendDailyNotificationsEmails() for sending daily notifications via email to recipients wishing to receive only one mail per day
- Group.java: Add constant GROUP_NEW_MEDIA for media uploads, add implementation for media uploads in getRecipients(), improve getTargetUrl() to link to concrete group for appropriate types
- GroupAccount.java: Add deletion of notification per user, if a group account link is removed in delete()
- NewNotification.java: Implement deleteReferencesForAccountId() to delete a reference for a user (required in GroupAccount::delete()), implement findUsersWithDailyEmailNotifications() to get a map of Account instances containing a list of unread/unsent notifications (required in EmailHandler::sendDailyNotificationsEmails())
- NotificationHandler.java: Improve condition in handleMail()
- Global.java: General code improvements, add async Akka process for daily sending of notification emails in onStart()

Templates:
- Emails/notifications*: Improvement in i18n by adding count of new notifications
- NewNotification/group/group_new_media.scala.html: Add template for notification on media upload
- Notification/list.scala.html: Move comment to top to avoid compilation errors as Notification class is deprecated
- Rest: Remove unnecessary condition of notification.isRead as it will never happen, that a read notification is re-rendered

Other:
- messages: Remove unnecessary i18n entries as they are never used
Merge pull request #30 from socia-platform/20_newOptionMenu

20 new option menu
Merge with master changes

Conflicts:
	public/stylesheets/htwplus.css
This commit enables the posting of broadcast messages for admins in admin control center. Moreover "handlers" are renamed to "services" from now on.

Classes:
- services: Refactor class names from Handler to Service, add and implement a more general TemplateService to load and render templates, use TemplateService in EmailService
- AdminController.java: Implement broadcastNotificationForm() and async (non blocking) broadcastNotification() for GET and POST
- PostController.java: Code improvements in deletePost()
- other controllers: Affected by renaming of NotificationService
- BaseNotifiable.java: Refactor render() method to use the new TemplateService to "keep it DRY", improve addTemporaryRecipient() by checking, if a temporary recipient is already added
- Account.java: Implement getAccountListByIdCollection() to get a list of accounts by a list of IDs as String
- Post.java: Add attributes isBroadcastMessage, broadcastPostRecipients and constant BROADCAST, add fetching of broadcast posts in streamForAccount(), implement addRecipient()
- Global.java: Implement nextExecutionInSeconds() and nextExecution() to determine correct schedule time (e.g. 18:00 o'clock) for email service schedule in onStart()

Templates:
- Admin/snippets/navigation.scala.html: Add broadcast form to control center navigation, add i18n
- Admin/admin.scala.html: Add i18n
- Admin/createBroadcastNotification.scala.html: Add template for broadcast post form
- Emails/notifications*.scala.html: Refactor due to TemplateService parameters
- NewNotification/post/broadcast.scala.html: Add template for broadcast notification
snippets/postView.scala.html: Add CSS for broadcast posts

Other:
- messages: Add i18n for broadcast notification and admin center texts
- routes: Add routes for broadcast notification post handling
- htwplus.css: Add CSS for broadcast posts
This commit adds for the user the possibility to define an hour for the daily notification emails, also he might receive hourly new notifications.

Classes:
- ProfileController.java: Add code for defining hour for daily notifications
- Secured.java: Modify methods isFriend() and isOwnerOfAccount() to be JPA transactional
- EmailNotifications.java: Add HOURLY to enumeration
- EmailService.java: Update JavaDoc and method name of sendDailyHourlyNotificationsEmails()
- Account.java: Add integer attribute dailyEmailNotificationHour
- Friendship.java: Remove throws from method signature of alreadyFriendlyTransactional(), update findFriends() to be JPA transactional
- NewNotification.java: Update JavaDoc, method naming and JPA Query of findUsersWithDailyHourlyEmailNotifications() to either find new notifications for users who wants to receive their emails hourly, or daily, if the current hour is equal their desired receiving hour
- Global.java: Update Akka scheduler for sending of hourly/daily mails, implement method  getNextHour() to find the next full hour of current time

Templates:
- Profile/edit.scala.html: Changed select box to be radio boxes, to add a number input for desired hour for daily email notifications

Other:
- messages: Update and add i18n for daily/hourly labels
- htwplus.css: Add CSS for input number of hours
Merge pull request #31 from socia-platform/12_autolinker

12 autolinker
This commit updates the sources to be Play 2.3 compatible. Furthermore the whole WebSocket system has been refactored and optimized.

Classes:
- AdminAction: Change SimpleResult to Result as of Play migration guide
- Component: Change SimpleResult to Result (see above), change import of play.api.templates.Html to play.twirl.api.Html
- FriendshipController: Change alreadyFriendly to alreadyFriendlyTransactional
- NotificationController: Remove deprecated imports, Play 2.3 compatible
- PostController: Add transaction to post.create() and parent.update()
- ProfileController: Add transactional methods
- WebSocketController: Implement new WebSocketController for WS refactoring
- NewNotificationActor: Remove class as refactored in WebSocketActor
- WebSocketActor: Implement new WS actor
- IJsonNodeSerializable: Add interface for JSON serializable classes
- NotificationService: Add method webSocketPush to instant push WS message on new notification for online clients
- WebSocketService: Implement WS service to handle WS messages and methods. Also handles open WS client connections
- Account: Improve transactional methods, implement getAsJson()
- Friendship: Improve transactional methods
- GroupAccount: Add findEstablishedTransactional()
- NewNotification: Implement getAsJson()
- Post: Improive transactional methods
- Global: Change SimpleResult to Result

Templates:
- Tiny fixes to be Play 2.3 compatible

JS:
- notification.js: Refactoring in order to fit the optimized WebSocket system, general code improvements

Other:
- applications.sample.conf: Add db.default parameters to avoid problems with DB timeouts
- routes: Add general WS route
- build.properties, plugins.sbt, build.sbt: Change version as of Play 2.3 migration guide