Sfoglia il codice sorgente

Generated JS and CSS to the target/classes/static folder

fecaille 9 anni fa
parent
commit
4e5bb4f361

+ 4 - 24
pom.xml

@@ -171,26 +171,6 @@
 				</configuration>
 			</plugin>
 			<!-- Resource optimization -->
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-antrun-plugin</artifactId>
-				<executions>
-					<execution>
-						<phase>clean</phase>
-						<goals>
-							<goal>run</goal>
-						</goals>
-						<configuration>
-							<target>
-								<delete dir="${project.basedir}/src/main/resources/static/js/bundle" />
-								<delete dir="${project.basedir}/src/main/resources/static/js/jsx" />
-								<delete dir="${project.basedir}/src/main/resources/static/css/bundle" />
-								<delete dir="${project.basedir}/src/test/resources/static/js/compiled" />
-							</target>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
 			<plugin>
 				<artifactId>maven-resources-plugin</artifactId>
 				<executions>
@@ -231,7 +211,7 @@
 								${project.basedir}/src/main/resources/static/js
 							</sourcePath>
 							<targetPath>
-								${project.basedir}/src/main/resources/static/js/jsx
+								${project.build.directory}/classes/static/js
 							</targetPath>
 						</configuration>
 					</execution>
@@ -267,8 +247,8 @@
 				</executions>
 				<configuration>
 					<wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory>
-					<cssDestinationFolder>${project.basedir}/src/main/resources/static/css/bundle</cssDestinationFolder>
-					<jsDestinationFolder>${project.basedir}/src/main/resources/static/js/bundle</jsDestinationFolder>
+					<cssDestinationFolder>${project.build.directory}/classes/static/css</cssDestinationFolder>
+					<jsDestinationFolder>${project.build.directory}/classes/static/js</jsDestinationFolder>
 					<wroFile>${project.build.directory}/wro/wro.xml</wroFile>
 					<extraConfigFile>${project.basedir}/src/main/wro/wro.properties</extraConfigFile>
 				</configuration>
@@ -316,7 +296,7 @@
 						<preloadSource>/webjars/jquery.mockjax.js</preloadSource>
 						<preloadSource>${project.basedir}/src/test/resources/jasmine/config.js</preloadSource>
 					</preloadSources>
- 					<jsSrcDir>${project.basedir}/src/main/resources/static/js</jsSrcDir>
+ 					<jsSrcDir>${project.build.directory}/classes/static/js</jsSrcDir>
 					<sourceIncludes>
 						<include>**/*.js</include>
 					</sourceIncludes>

+ 6 - 6
src/main/resources/templates/index.html

@@ -3,8 +3,8 @@
 <head lang="en">
 <meta charset="UTF-8" />
 <title>Comments channel</title>
-<link rel="stylesheet" href="/css/bundle/react-bootstrap.css" />
-<link rel="stylesheet" href="/css/bundle/comments.css" />
+<link rel="stylesheet" href="/css/react-bootstrap.css" />
+<link rel="stylesheet" href="/css/comments.css" />
 </head>
 <body>
 
@@ -16,9 +16,9 @@
 
 	<div th:replace="fragments/footer"></div>
 
-	<script src="/js/bundle/react-bootstrap.js"></script>
-	<script src="/js/bundle/comments.js"></script>
-	<script src="/js/jsx/app.js"></script>
-	<script src="/js/jsx/app.render.js"></script>
+	<script src="/js/react-bootstrap.js"></script>
+	<script src="/js/comments.js"></script>
+	<script src="/js/app.js"></script>
+	<script src="/js/app.render.js"></script>
 </body>
 </html>

+ 0 - 7
src/main/webapp/css/comments.css

@@ -1,7 +0,0 @@
-.footer {
-    position: absolute;
-    bottom: 0;
-    width: 100%;
-    height: 60px;
-    background-color: #f5f5f5;
-}

+ 0 - 123
src/main/webapp/js/app.jsx

@@ -1,123 +0,0 @@
-'use strict';
-
-var Comment = React.createClass({
-	rawMarkup: function() {
-		var rawMarkup = marked(this.props.children.toString(), {sanitize: true});
-		return { __html: rawMarkup };
-	},
-	render: function() {
-		return (
-			<div className="comment">
-				<h2 className="commentAuthor">
-					{this.props.author}
-				</h2>
-				<span dangerouslySetInnerHTML={this.rawMarkup()} />
-			</div>
-		);
-	}
-});
-
-var CommentForm = React.createClass({
-	getInitialState: function() {
-		return {author: '', text: ''};
-	},
-	handleAuthorChange: function(e) {
-		this.setState({author: e.target.value});
-	},
-	handleTextChange: function(e) {
-		this.setState({text: e.target.value});
-	},
-	handleSubmit: function(e) {
-		e.preventDefault();
-		var author = this.state.author.trim();
-		var text = this.state.text.trim();
-		if( !text || !author ) {
-			return;
-		}
-		this.props.onCommentSubmit({author: author, text: text})
-		this.setState({author: '', text: ''});
-	},
-	render: function() {
-		return (
-			<form className="commentForm" onSubmit={this.handleSubmit}>
-				<input
-					type="text"
-					placeholder="Your name"
-					value={this.state.author}
-					onChange={this.handleAuthorChange}
-				/>
-				<input
-					type="text"
-					placeholder="Say something..."
-					value={this.state.text}
-					onChange={this.handleTextChange}
-				/>
-				<input type="submit" value="Post" />
-			</form>
-		);
-	}
-});
-var CommentBox = React.createClass({
-	getInitialState: function() {
-		return {data: []};
-	},
-	loadCommentsFromServer: function() {
-		$.ajax({
-			url: this.props.url,
-			dataType: 'json',
-			cache: false,
-			success: function(data) {
-				this.setState({data: data});
-			}.bind(this),
-			error: function(xhr, status, err) {
-				console.error(this.props.url, status, err.toString());
-			}.bind(this)
-		});
-	},
-	handleCommentSubmit: function(comment) {
-		var comments = this.state.data;
-		comment.id = Date.now();
-		var newComments = comments.concat([comment]);
-		this.setState({data: newComments});
-		$.ajax({
-			url: this.props.url,
-			method: 'POST',
-			dataType: 'json',
-			data: comment,
-			success: function(data) {
-				this.setState({data: data});
-			}.bind(this),
-			error: function(xhr, status, err) {
-				this.setState({data: comments});
-				console.error(this.props.url, status, err.toString());
-			}.bind(this)
-		});
-	},
-	componentDidMount: function() {
-		this.loadCommentsFromServer();
-		setInterval(this.loadCommentsFromServer, this.props.pollInterval);
-	},
-	render: function() {
-		return (
-			<div className="commentBox">
-				<h1>Comments</h1>
-				<CommentList data={this.state.data}/>
-				<CommentForm onCommentSubmit={this.handleCommentSubmit}/>
-			</div>
-		);
-	}
-});
-var CommentList = React.createClass({
-	render: function() {
-		var commentNodes = this.props.data.map( function(comment) {
-			return (
-				<Comment author={comment.author} key={comment.id}>{comment.text}</Comment>
-			);
-		});
-		return (
-			<div className="commentList">
-				{commentNodes}
-			</div>
-		)
-	}
-});

+ 0 - 4
src/main/webapp/js/app.render.jsx

@@ -1,4 +0,0 @@
-ReactDOM.render(
-	<CommentBox url="/api/comments" pollInterval={2000}/>,
-	document.getElementById('content')
-);