mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
bundle js libs together
This commit is contained in:
@@ -2,6 +2,7 @@ package com.commafeed.frontend;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.util.List;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
|
|
||||||
import javax.enterprise.inject.spi.BeanManager;
|
import javax.enterprise.inject.spi.BeanManager;
|
||||||
@@ -32,6 +33,7 @@ import org.apache.wicket.request.Response;
|
|||||||
import org.apache.wicket.request.component.IRequestableComponent;
|
import org.apache.wicket.request.component.IRequestableComponent;
|
||||||
import org.apache.wicket.request.cycle.AbstractRequestCycleListener;
|
import org.apache.wicket.request.cycle.AbstractRequestCycleListener;
|
||||||
import org.apache.wicket.request.cycle.RequestCycle;
|
import org.apache.wicket.request.cycle.RequestCycle;
|
||||||
|
import org.apache.wicket.request.resource.JavaScriptResourceReference;
|
||||||
import org.apache.wicket.util.cookies.CookieUtils;
|
import org.apache.wicket.util.cookies.CookieUtils;
|
||||||
import org.jboss.vfs.VirtualFile;
|
import org.jboss.vfs.VirtualFile;
|
||||||
import org.reflections.ReflectionsException;
|
import org.reflections.ReflectionsException;
|
||||||
@@ -48,9 +50,28 @@ import com.commafeed.frontend.pages.HomePage;
|
|||||||
import com.commafeed.frontend.pages.LogoutPage;
|
import com.commafeed.frontend.pages.LogoutPage;
|
||||||
import com.commafeed.frontend.pages.TestRssPage;
|
import com.commafeed.frontend.pages.TestRssPage;
|
||||||
import com.commafeed.frontend.pages.WelcomePage;
|
import com.commafeed.frontend.pages.WelcomePage;
|
||||||
|
import com.commafeed.frontend.references.angular.AngularReference;
|
||||||
|
import com.commafeed.frontend.references.angular.AngularResourceReference;
|
||||||
|
import com.commafeed.frontend.references.angular.AngularSanitizeReference;
|
||||||
|
import com.commafeed.frontend.references.angularui.AngularUIReference;
|
||||||
|
import com.commafeed.frontend.references.angularuibootstrap.AngularUIBootstrapReference;
|
||||||
|
import com.commafeed.frontend.references.angularuistate.AngularUIStateReference;
|
||||||
|
import com.commafeed.frontend.references.codemirror.CodeMirrorCssReference;
|
||||||
|
import com.commafeed.frontend.references.codemirror.CodeMirrorReference;
|
||||||
|
import com.commafeed.frontend.references.mousetrap.MouseTrapReference;
|
||||||
|
import com.commafeed.frontend.references.nggrid.NGGridReference;
|
||||||
|
import com.commafeed.frontend.references.nginfinitescroll.NGInfiniteScrollReference;
|
||||||
|
import com.commafeed.frontend.references.ngupload.NGUploadReference;
|
||||||
|
import com.commafeed.frontend.references.select2.Select2Reference;
|
||||||
|
import com.commafeed.frontend.references.spinjs.SpinJSReference;
|
||||||
import com.commafeed.frontend.utils.exception.DisplayExceptionPage;
|
import com.commafeed.frontend.utils.exception.DisplayExceptionPage;
|
||||||
|
import com.google.api.client.util.Lists;
|
||||||
|
import com.google.javascript.jscomp.CompilationLevel;
|
||||||
|
|
||||||
import de.agilecoders.wicket.Bootstrap;
|
import de.agilecoders.wicket.Bootstrap;
|
||||||
|
import de.agilecoders.wicket.javascript.GoogleClosureJavaScriptCompressor;
|
||||||
|
import de.agilecoders.wicket.javascript.YuiCssCompressor;
|
||||||
|
import de.agilecoders.wicket.markup.html.RenderJavaScriptToFooterHeaderResponseDecorator;
|
||||||
import de.agilecoders.wicket.settings.BootstrapSettings;
|
import de.agilecoders.wicket.settings.BootstrapSettings;
|
||||||
|
|
||||||
public class CommaFeedApplication extends AuthenticatedWebApplication {
|
public class CommaFeedApplication extends AuthenticatedWebApplication {
|
||||||
@@ -71,11 +92,70 @@ public class CommaFeedApplication extends AuthenticatedWebApplication {
|
|||||||
mountPage("testfeed", TestRssPage.class);
|
mountPage("testfeed", TestRssPage.class);
|
||||||
|
|
||||||
setupInjection();
|
setupInjection();
|
||||||
|
setupSecurity();
|
||||||
|
setupBootstrap();
|
||||||
|
setupResourceBundles();
|
||||||
|
|
||||||
getMarkupSettings().setStripWicketTags(true);
|
getMarkupSettings().setStripWicketTags(true);
|
||||||
getMarkupSettings().setCompressWhitespace(true);
|
getMarkupSettings().setCompressWhitespace(true);
|
||||||
getMarkupSettings().setDefaultMarkupEncoding("UTF-8");
|
getMarkupSettings().setDefaultMarkupEncoding("UTF-8");
|
||||||
|
|
||||||
|
getResourceSettings().setJavaScriptCompressor(
|
||||||
|
new GoogleClosureJavaScriptCompressor(
|
||||||
|
CompilationLevel.SIMPLE_OPTIMIZATIONS));
|
||||||
|
getResourceSettings().setCssCompressor(new YuiCssCompressor());
|
||||||
|
|
||||||
|
getRequestCycleListeners().add(new AbstractRequestCycleListener() {
|
||||||
|
@Override
|
||||||
|
public IRequestHandler onException(RequestCycle cycle, Exception ex) {
|
||||||
|
AjaxRequestTarget target = cycle.find(AjaxRequestTarget.class);
|
||||||
|
// redirect to the error page if ajax request, render error on
|
||||||
|
// current page otherwise
|
||||||
|
RedirectPolicy policy = target == null ? RedirectPolicy.NEVER_REDIRECT
|
||||||
|
: RedirectPolicy.AUTO_REDIRECT;
|
||||||
|
return new RenderPageRequestHandler(new PageProvider(
|
||||||
|
new DisplayExceptionPage(ex)), policy);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupResourceBundles() {
|
||||||
|
|
||||||
|
List<JavaScriptResourceReference> refs = Lists.newArrayList();
|
||||||
|
|
||||||
|
refs.add((JavaScriptResourceReference) getJavaScriptLibrarySettings()
|
||||||
|
.getJQueryReference());
|
||||||
|
refs.add((JavaScriptResourceReference) Bootstrap.getSettings()
|
||||||
|
.getJsResourceReference());
|
||||||
|
|
||||||
|
refs.add(AngularReference.INSTANCE);
|
||||||
|
refs.add(AngularResourceReference.INSTANCE);
|
||||||
|
refs.add(AngularSanitizeReference.INSTANCE);
|
||||||
|
refs.add(AngularUIReference.INSTANCE);
|
||||||
|
refs.add(AngularUIBootstrapReference.INSTANCE);
|
||||||
|
refs.add(AngularUIStateReference.INSTANCE);
|
||||||
|
refs.add(NGUploadReference.INSTANCE);
|
||||||
|
refs.add(NGInfiniteScrollReference.INSTANCE);
|
||||||
|
refs.add(Select2Reference.INSTANCE);
|
||||||
|
refs.add(SpinJSReference.INSTANCE);
|
||||||
|
refs.add(MouseTrapReference.INSTANCE);
|
||||||
|
refs.add(NGGridReference.INSTANCE);
|
||||||
|
refs.add(CodeMirrorReference.INSTANCE);
|
||||||
|
refs.add(CodeMirrorCssReference.INSTANCE);
|
||||||
|
|
||||||
|
getResourceBundles().addJavaScriptBundle(CommaFeedApplication.class,
|
||||||
|
"libs.js", refs.toArray(new JavaScriptResourceReference[0]));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupBootstrap() {
|
||||||
|
BootstrapSettings settings = new BootstrapSettings();
|
||||||
|
settings.setJsResourceFilterName("footer-container");
|
||||||
|
Bootstrap.install(this, settings);
|
||||||
|
setHeaderResponseDecorator(new RenderJavaScriptToFooterHeaderResponseDecorator());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupSecurity() {
|
||||||
getSecuritySettings().setAuthenticationStrategy(
|
getSecuritySettings().setAuthenticationStrategy(
|
||||||
new DefaultAuthenticationStrategy("LoggedIn") {
|
new DefaultAuthenticationStrategy("LoggedIn") {
|
||||||
|
|
||||||
@@ -122,20 +202,6 @@ public class CommaFeedApplication extends AuthenticatedWebApplication {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
getRequestCycleListeners().add(new AbstractRequestCycleListener() {
|
|
||||||
@Override
|
|
||||||
public IRequestHandler onException(RequestCycle cycle, Exception ex) {
|
|
||||||
AjaxRequestTarget target = cycle.find(AjaxRequestTarget.class);
|
|
||||||
// redirect to the error page if ajax request, render error on
|
|
||||||
// current page otherwise
|
|
||||||
RedirectPolicy policy = target == null ? RedirectPolicy.NEVER_REDIRECT
|
|
||||||
: RedirectPolicy.AUTO_REDIRECT;
|
|
||||||
return new RenderPageRequestHandler(new PageProvider(
|
|
||||||
new DisplayExceptionPage(ex)), policy);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Bootstrap.install(Application.get(), new BootstrapSettings());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
12
src/main/java/com/commafeed/frontend/pages/BasePage.html
Normal file
12
src/main/java/com/commafeed/frontend/pages/BasePage.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:wicket="http://wicket.apache.org">
|
||||||
|
<head>
|
||||||
|
<title>CommaFeed</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<wicket:child />
|
||||||
|
<wicket:container wicket:id="footer-container"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -3,6 +3,7 @@ package com.commafeed.frontend.pages;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||||
|
import org.apache.wicket.markup.head.filter.HeaderResponseContainer;
|
||||||
import org.apache.wicket.markup.html.WebPage;
|
import org.apache.wicket.markup.html.WebPage;
|
||||||
|
|
||||||
import com.commafeed.backend.dao.FeedCategoryDAO;
|
import com.commafeed.backend.dao.FeedCategoryDAO;
|
||||||
@@ -17,7 +18,7 @@ import com.commafeed.backend.dao.UserSettingsDAO;
|
|||||||
import de.agilecoders.wicket.Bootstrap;
|
import de.agilecoders.wicket.Bootstrap;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public class BasePage extends WebPage {
|
public abstract class BasePage extends WebPage {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected FeedDAO feedDAO;
|
protected FeedDAO feedDAO;
|
||||||
@@ -43,6 +44,10 @@ public class BasePage extends WebPage {
|
|||||||
@Inject
|
@Inject
|
||||||
protected UserRoleDAO userRoleDAO;
|
protected UserRoleDAO userRoleDAO;
|
||||||
|
|
||||||
|
public BasePage() {
|
||||||
|
add(new HeaderResponseContainer("footer-container", "footer-container"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderHead(IHeaderResponse response) {
|
public void renderHead(IHeaderResponse response) {
|
||||||
super.renderHead(response);
|
super.renderHead(response);
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns:wicket="http://wicket.apache.org">
|
<html xmlns:wicket="http://wicket.apache.org">
|
||||||
<head>
|
|
||||||
<title>CommaFeed</title>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<div ng-app="commafeed" id="main" class="main">
|
<wicket:extend>
|
||||||
<div ui-view>
|
<div ng-app="commafeed" id="main" class="main">
|
||||||
|
<div ui-view>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</wicket:extend>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public class HomePage extends BasePage {
|
|||||||
@Override
|
@Override
|
||||||
public void renderHead(IHeaderResponse response) {
|
public void renderHead(IHeaderResponse response) {
|
||||||
super.renderHead(response);
|
super.renderHead(response);
|
||||||
|
|
||||||
AngularReference.renderHead(response);
|
AngularReference.renderHead(response);
|
||||||
AngularResourceReference.renderHead(response);
|
AngularResourceReference.renderHead(response);
|
||||||
AngularSanitizeReference.renderHead(response);
|
AngularSanitizeReference.renderHead(response);
|
||||||
|
|||||||
@@ -1,42 +1,38 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns:wicket="http://wicket.apache.org">
|
<html xmlns:wicket="http://wicket.apache.org">
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>CommaFeed</title>
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
|
|
||||||
</head>
|
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<wicket:extend>
|
||||||
<div class="row header">
|
<div class="container">
|
||||||
<div class="text-center">
|
<div class="row header">
|
||||||
<h1>
|
<div class="text-center">
|
||||||
<a wicket:id="logo-link">
|
<h1>
|
||||||
<img src="images/logo.png"></img>
|
<a wicket:id="logo-link">
|
||||||
</a>
|
<img src="images/logo.png"></img>
|
||||||
</h1>
|
</a>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
CommaFeed is a bloat-free feed reader. It aims to replace Google Reader while keeping things simple.
|
||||||
</div>
|
</div>
|
||||||
CommaFeed is a bloat-free feed reader. It aims to replace Google Reader while keeping things simple.
|
<div class="row">
|
||||||
</div>
|
<div class="span6">
|
||||||
<div class="row">
|
<div class="well" id="login-panel">
|
||||||
<div class="span6">
|
<h3>Login</h3>
|
||||||
<div class="well" id="login-panel">
|
<span wicket:id="login"></span>
|
||||||
<h3>Login</h3>
|
</div>
|
||||||
<span wicket:id="login"></span>
|
</div>
|
||||||
|
<div class="span6" wicket:enclosure="register">
|
||||||
|
<div class="well" id="register-panel">
|
||||||
|
<h3>Register</h3>
|
||||||
|
<span wicket:id="register"></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="span6" wicket:enclosure="register">
|
|
||||||
<div class="well" id="register-panel">
|
<hr />
|
||||||
<h3>Register</h3>
|
<div class="footer">
|
||||||
<span wicket:id="register"></span>
|
© CommaFeed - 2013
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</wicket:extend>
|
||||||
<hr />
|
|
||||||
<div class="footer">
|
|
||||||
© CommaFeed - 2013
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user