diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/Constants.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/Constants.java new file mode 100644 index 0000000000000000000000000000000000000000..125862780cbc50f02a1a8978b49f87eaacdeef3c --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/Constants.java @@ -0,0 +1,6 @@ +package unipotsdam.gf.config; + +public interface Constants { + + String ROCKET_CHAT_URL = "http://rocketchat.westeurope.cloudapp.azure.com"; +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java index 89178403fdcbad4b7dec13dadef303792a4f8d5f..554cf0504b8783acc9589f00deaa64eb8356a581 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java @@ -1,6 +1,8 @@ package unipotsdam.gf.config; import org.glassfish.hk2.utilities.binding.AbstractBinder; +import unipotsdam.gf.core.management.Management; +import unipotsdam.gf.core.management.ManagementImpl; import unipotsdam.gf.interfaces.ICommunication; import unipotsdam.gf.modules.communication.service.CommunicationDummyService; @@ -8,5 +10,6 @@ public class GFApplicationBinder extends AbstractBinder { @Override protected void configure() { bind(CommunicationDummyService.class).to(ICommunication.class); + bind(ManagementImpl.class).to(Management.class); } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java index 2e23b8f5bc7f9072ba5129952f6bcf6ad2f9932d..01135265a1249eb9ae7b481e0224e9a8a1c85a9d 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java @@ -9,6 +9,8 @@ import unipotsdam.gf.core.management.user.UserInterests; import unipotsdam.gf.core.management.user.UserProfile; import unipotsdam.gf.modules.assessment.controller.StudentIdentifier; +import javax.annotation.ManagedBean; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -16,6 +18,8 @@ import java.util.UUID; /** * Created by dehne on 31.05.2018. */ +@ManagedBean +@Resource public class ManagementImpl implements Management { @Override public void delete(StudentIdentifier identifier) { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java index 8a07add14391adf6779942e0225e1c38e30e9b2f..923f3597856557a0bf0b8c4353b097f54e807814 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java @@ -79,4 +79,6 @@ public interface ICommunication { */ boolean registerUser(User user); + String getChatRoomLink(String userToken,String projectToken, String groupToken); + } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java new file mode 100644 index 0000000000000000000000000000000000000000..9e342d986a0cd05ed69903f1418996ab90e1a824 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java @@ -0,0 +1,42 @@ +package unipotsdam.gf.modules.communication; + +import unipotsdam.gf.core.management.ManagementImpl; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.interfaces.ICommunication; +import unipotsdam.gf.modules.communication.service.CommunicationDummyService; + +import javax.annotation.ManagedBean; +import javax.inject.Inject; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.jsp.tagext.*; +import javax.servlet.jsp.*; +import java.io.*; + +public class ChatWindow extends SimpleTagSupport { + + private String orientation; + + public void doTag() throws JspException, IOException { + PageContext pageContext = (PageContext) getJspContext(); + HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); + String token = request.getParameter("token"); + ManagementImpl management = new ManagementImpl(); + //User user = management.getUser(token); + String groupToken = request.getParameter("groupToken"); + String projectToken = request.getParameter("projectToken"); + //get ProjetbyToken + ICommunication communicationService = new CommunicationDummyService(); + String chatRoomLink = communicationService.getChatRoomLink(token,projectToken,groupToken); + + JspWriter out = getJspContext().getOut(); + out.println("<iframe width=\"30%\" height=\"100%\" src=\""+chatRoomLink+"\"/>"); + } + + public void setOrientation(String orientation) { + this.orientation = orientation; + } + + public String getOrientation() { + return orientation; + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java index 8a61d26deb48a77c19f9b04c753385139391892b..da54f55c269e8483490b723609e90d0fa946c906 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationDummyService.java @@ -1,5 +1,7 @@ package unipotsdam.gf.modules.communication.service; +import unipotsdam.gf.config.Constants; +import unipotsdam.gf.core.management.Management; import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.interfaces.ICommunication; import unipotsdam.gf.modules.communication.model.Message; @@ -8,6 +10,7 @@ import unipotsdam.gf.modules.communication.model.chat.ChatRoom; import javax.annotation.ManagedBean; import javax.annotation.Resource; +import javax.inject.Inject; import javax.inject.Singleton; import java.time.Instant; import java.util.ArrayList; @@ -19,6 +22,9 @@ import java.util.Objects; @Singleton public class CommunicationDummyService implements ICommunication { + @Inject + Management managementService; + @Override public List<ChatMessage> getChatHistory(String roomId) { ArrayList<ChatMessage> chatMessages = new ArrayList<>(); @@ -72,6 +78,15 @@ public class CommunicationDummyService implements ICommunication { return true; } + public String getChatRoomLink(String userToken, String projectToken, String groupToken) { + //User user = managementService.getUser(userToken); + // TODO: Implement getProjectbyToken and getGroupByToken + //Project project = managementService.getProject(projectToken + String channelName = "general"; + String fullUrl = Constants.ROCKET_CHAT_URL + "/channel/" + channelName + "?layout=embedded"; + return fullUrl; + } + // TODO: remove after done implementing // just for postman testing public User getUser() { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/view/CommunicationView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/view/CommunicationView.java index e62754a0bdcdfaec188340283d745276e7100078..16e00c61fc43d235666c9eaa789c8fec7b579bff 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/view/CommunicationView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/view/CommunicationView.java @@ -28,7 +28,7 @@ import static java.util.Objects.isNull; @ManagedBean public class CommunicationView { - private static final Logger log = LoggerFactory.getLogger(SampleView.class); + private static final Logger log = LoggerFactory.getLogger(CommunicationView.class); @Inject private ICommunication communicationService; @@ -105,6 +105,8 @@ public class CommunicationView { return response; } + // TODO: remove user from chatroom + @POST @Produces(MediaType.APPLICATION_JSON) @Path("/setTopic/{roomId}") diff --git a/gemeinsamforschen/src/main/webapp/communication/chatWindow.tld b/gemeinsamforschen/src/main/webapp/communication/chatWindow.tld new file mode 100644 index 0000000000000000000000000000000000000000..e98a7ae49e0b8eba380ac79f2efd35b0840c63cc --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/communication/chatWindow.tld @@ -0,0 +1,16 @@ +<taglib> + <tlib-version>1.0</tlib-version> + <jsp-version>2.0</jsp-version> + <short-name>chatWindow</short-name> + + <tag> + <name>chatWindow</name> + <tag-class>unipotsdam.gf.modules.communication.ChatWindow</tag-class> + <body-content>empty</body-content> + <attribute> + <name>orientation</name> + <required>yes</required> + <rtexprvalue>no</rtexprvalue> + </attribute> + </tag> +</taglib> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/overview-docent.html b/gemeinsamforschen/src/main/webapp/pages/overview-docent.html index 09976e3dbdfee1f438573c5f7e6726c396f77d07..5ed91721fac646294cd9f912624e76799faf513d 100644 --- a/gemeinsamforschen/src/main/webapp/pages/overview-docent.html +++ b/gemeinsamforschen/src/main/webapp/pages/overview-docent.html @@ -20,7 +20,7 @@ <table id="projects"> <!-- getElementById('projects').append um neue Projekte anzufügen --> <tr style="cursor:pointer" role="button"> <td> - <a href="project-docent.html"> + <a href="project-docent.jsp"> <h1>dummy Projekt1</h1> </a> </td> @@ -51,7 +51,7 @@ </tr> <tr style="cursor:pointer" role="button"> <td> - <a href="project-docent.html"> + <a href="project-docent.jsp"> <h1>dummy Projekt2</h1> </a> </td> diff --git a/gemeinsamforschen/src/main/webapp/pages/overview-student.html b/gemeinsamforschen/src/main/webapp/pages/overview-student.html index 5c56a57281374b88dea806cf08e86a14e2e65cfd..cc4ec5a35ff69f72cf4bb8004506659718b844d9 100644 --- a/gemeinsamforschen/src/main/webapp/pages/overview-student.html +++ b/gemeinsamforschen/src/main/webapp/pages/overview-student.html @@ -20,7 +20,7 @@ <table id="projects"> <!-- getElementById('projects').append um neue Projekte anzufügen --> <tr style="cursor:pointer" role="button"> <td> - <a href="project-docent.html"> + <a href="project-docent.jsp"> <h1>dummy Projekt1</h1> </a> </td> @@ -51,7 +51,7 @@ </tr> <tr style="cursor:pointer" role="button"> <td> - <a href="project-docent.html"> + <a href="project-docent.jsp"> <h1>dummy Projekt2</h1> </a> </td> diff --git a/gemeinsamforschen/src/main/webapp/pages/project-docent.html b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp similarity index 94% rename from gemeinsamforschen/src/main/webapp/pages/project-docent.html rename to gemeinsamforschen/src/main/webapp/pages/project-docent.jsp index 232c9e7711e845bf35552c8571a59c497c7d12da..95dcf5e713b09a92fbf20eaabe804d30036d6326 100644 --- a/gemeinsamforschen/src/main/webapp/pages/project-docent.html +++ b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp @@ -1,4 +1,5 @@ <!DOCTYPE html> +<%@ taglib prefix = "communication" uri = "/communication/chatWindow.tld"%> <html> <head> @@ -73,6 +74,7 @@ </tbody> </table> </div> + <communication:chatWindow orientation="right"></communication:chatWindow> <script src="../assets/js/jquery.min.js"></script> <script src="../assets/bootstrap/js/bootstrap.min.js"></script> </body>