Skip to content

Commit 862979c

Browse files
committed
Added Embed Functionality
1 parent 899f7d1 commit 862979c

File tree

14 files changed

+172
-20
lines changed

14 files changed

+172
-20
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ stages:
1313
- build
1414
- deploy
1515

16-
# install:
17-
# stage: test
18-
# script:
19-
# - mvn clean install
20-
2116
unit_test:
2217
stage: test
2318
script:
@@ -26,6 +21,7 @@ unit_test:
2621
.build: &build_template
2722
stage: build
2823
script:
24+
- mvn clean install
2925
- mvn package -B
3026

3127
develop_build:

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# DBpedia Chatbot
22

3+
## [GSoC Wiki](https://github.com/dbpedia/chatbot/wiki/GSoC-2017:-Chatbot-for-DBpedia)
4+
35
## Environment Configurations
46
admin.username = <admin-username>
57
admin.password = <admin-password>

app/src/js/components/embed/Embed.jsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import React from 'react';
2+
import Modal from 'react-modal';
3+
import ChatApp from '../chat/ChatApp.jsx';
4+
5+
class Embed extends React.Component {
6+
constructor(props) {
7+
super(props);
8+
this.state = {
9+
isChatOpen: false,
10+
startChat: false
11+
}
12+
13+
this.toggleChat = this.toggleChat.bind(this);
14+
}
15+
16+
toggleChat() {
17+
this.setState({isChatOpen: !this.state.isChatOpen, startChat: true});
18+
}
19+
20+
render() {
21+
return (
22+
<div className="embed-container full-height">
23+
<div className="embed-chat-container">
24+
<div className={this.state.isChatOpen ? "full-height" : "hide"}>
25+
{this.state.startChat && (<ChatApp />) }
26+
</div>
27+
</div>
28+
<div className="embed-chat-button-container">
29+
<a className="embed-chat-button btn btn-raised btn-fab btn-primary" onClick={this.toggleChat}>
30+
<i className="material-icons">
31+
{this.state.isChatOpen ? "clear" : "chat"}
32+
</i>
33+
</a>
34+
</div>
35+
</div>
36+
)
37+
}
38+
}
39+
40+
Embed.defaultProps = {
41+
42+
};
43+
export default Embed;

app/src/js/embed.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
require('../less/pages/embed.less');
2+
require('../less/pages/app.less');
3+
4+
import React from 'react';
5+
import ReactDOM from 'react-dom';
6+
import Embed from './components/embed/Embed.jsx';
7+
8+
ReactDOM.render(<Embed />, document.getElementById('embed-container'));

app/src/less/config/base.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,8 @@ h1,h2,h3,h4,h5,h6 {
6464
font-size: 20px;
6565
position: absolute;
6666
left: 90%;
67+
}
68+
69+
.hide {
70+
display: none;
6771
}

app/src/less/modules/admin.less

Whitespace-only changes.

app/src/less/modules/login.less

Lines changed: 0 additions & 10 deletions
This file was deleted.

app/src/less/pages/admin.less

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,3 @@
33
@import "../config/animations.less";
44
@import "../config/variables.less";
55
@import "../config/base.less";
6-
7-
@import "../modules/admin.less";

app/src/less/pages/embed.less

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
@import "../../../../node_modules/bootstrap-material-design/less/bootstrap-material-design.less";
2+
3+
@import "../config/animations.less";
4+
@import "../config/variables.less";
5+
@import "../config/base.less";
6+
7+
html, body {
8+
background: transparent !important;
9+
}
10+
11+
.embed-container {
12+
display: flex;
13+
flex-direction: column;
14+
}
15+
16+
.embed-chat-container {
17+
flex: 1;
18+
padding: 25px 5px 5px 5px;
19+
overflow: hidden;
20+
}
21+
22+
.embed-chat-button-container {
23+
padding-bottom: 3px;
24+
}
25+
26+
.embed-chat-button {
27+
left: 100% !important;
28+
margin-left: -56px !important;
29+
}

app/src/less/pages/login.less

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,13 @@
44
@import "../config/variables.less";
55
@import "../config/base.less";
66

7-
@import "../modules/login.less";
7+
.login-container {
8+
margin-top: 10px;
9+
.form-group {
10+
margin-left: 5px;
11+
margin-right: 5px;
12+
}
13+
legend {
14+
margin-left: 5px;
15+
}
16+
}

src/main/java/chatbot/Application.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ protected void configure(HttpSecurity http) throws Exception {
6969
http
7070
.csrf().disable()
7171
.authorizeRequests()
72-
.antMatchers("/", "/assets/**/*", "/js/*", "/images/**/*", "/feedback", "/webhook", "/fbwebhook", "/slackwebhook").permitAll()
72+
.antMatchers("/", "/assets/**/*", "/js/*", "/images/**/*", "/feedback", "/webhook", "/fbwebhook", "/slackwebhook", "/embed").permitAll()
7373
.anyRequest().authenticated()
7474
.and()
7575
.formLogin()
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package chatbot.platforms.web.controllers;
2+
3+
import chatbot.Application;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.stereotype.Controller;
8+
import org.springframework.web.bind.annotation.RequestMapping;
9+
import org.springframework.web.bind.annotation.RequestMethod;
10+
11+
/**
12+
* Created by ramgathreya on 8/6/17.
13+
*/
14+
@Controller
15+
public class EmbedController {
16+
private static final Logger logger = LoggerFactory.getLogger(EmbedController.class);
17+
private Application.Helper helper;
18+
19+
@Autowired
20+
public EmbedController(final Application.Helper helper) {
21+
this.helper = helper;
22+
}
23+
24+
@RequestMapping(method= RequestMethod.GET, path="/embed")
25+
public String actionEmbedGet() {
26+
return "embed";
27+
}
28+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<title>DBpedia Chatbot - Embed</title>
5+
6+
<style type="text/css">
7+
body, html {
8+
background: transparent !important;
9+
}
10+
</style>
11+
12+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
13+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
14+
<meta name="mobile-web-app-capable" content="yes" />
15+
16+
<!-- Material Design fonts -->
17+
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:500" />
18+
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
19+
20+
<!-- Bootstrap -->
21+
<link rel="stylesheet" type="text/css" href="assets/bootstrap/dist/css/bootstrap.min.css" />
22+
<link rel="stylesheet" type="text/css" href="assets/bootstrap-material-design/dist/css/bootstrap-material-design.css" />
23+
<link rel="stylesheet" type="text/css" href="assets/bootstrap-material-design/dist/css/ripples.min.css" />
24+
<link rel="stylesheet" type="text/css" href="assets/snackbarjs/dist/snackbar.min.css" />
25+
26+
<script type="text/javascript" src="assets/jquery/dist/jquery.min.js"></script>
27+
<script type="text/javascript" src="assets/bootstrap/dist/js/bootstrap.min.js"></script>
28+
<script type="text/javascript" src="assets/bootstrap-material-design/dist/js/ripples.min.js"></script>
29+
<script type="text/javascript" src="assets/bootstrap-material-design/dist/js/material.min.js"></script>
30+
<script type="text/javascript" src="assets/snackbarjs/dist/snackbar.min.js"></script>
31+
</head>
32+
<body>
33+
<div class="full-height" id="embed-container">
34+
35+
</div>
36+
<script type="text/javascript" src="js/embed.js"></script>
37+
38+
<script type="text/javascript">
39+
$(function() {
40+
$.material.init();
41+
});
42+
</script>
43+
</body>
44+
</html>

webpack.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ module.exports = {
44
app: './app/src/js/index.js',
55
feedback: './app/src/js/feedback.js',
66
login: './app/src/js/login.js',
7-
admin: './app/src/js/admin.js'
7+
admin: './app/src/js/admin.js',
8+
embed: './app/src/js/embed.js'
89
},
910
output: {
1011
path: path.resolve('./src/main/app/js/'),

0 commit comments

Comments
 (0)