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.net.URL;
|
||||
import java.util.List;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
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.cycle.AbstractRequestCycleListener;
|
||||
import org.apache.wicket.request.cycle.RequestCycle;
|
||||
import org.apache.wicket.request.resource.JavaScriptResourceReference;
|
||||
import org.apache.wicket.util.cookies.CookieUtils;
|
||||
import org.jboss.vfs.VirtualFile;
|
||||
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.TestRssPage;
|
||||
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.google.api.client.util.Lists;
|
||||
import com.google.javascript.jscomp.CompilationLevel;
|
||||
|
||||
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;
|
||||
|
||||
public class CommaFeedApplication extends AuthenticatedWebApplication {
|
||||
@@ -71,11 +92,70 @@ public class CommaFeedApplication extends AuthenticatedWebApplication {
|
||||
mountPage("testfeed", TestRssPage.class);
|
||||
|
||||
setupInjection();
|
||||
setupSecurity();
|
||||
setupBootstrap();
|
||||
setupResourceBundles();
|
||||
|
||||
getMarkupSettings().setStripWicketTags(true);
|
||||
getMarkupSettings().setCompressWhitespace(true);
|
||||
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(
|
||||
new DefaultAuthenticationStrategy("LoggedIn") {
|
||||
|
||||
@@ -122,20 +202,6 @@ public class CommaFeedApplication extends AuthenticatedWebApplication {
|
||||
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
|
||||
|
||||
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 org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.filter.HeaderResponseContainer;
|
||||
import org.apache.wicket.markup.html.WebPage;
|
||||
|
||||
import com.commafeed.backend.dao.FeedCategoryDAO;
|
||||
@@ -17,7 +18,7 @@ import com.commafeed.backend.dao.UserSettingsDAO;
|
||||
import de.agilecoders.wicket.Bootstrap;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class BasePage extends WebPage {
|
||||
public abstract class BasePage extends WebPage {
|
||||
|
||||
@Inject
|
||||
protected FeedDAO feedDAO;
|
||||
@@ -43,6 +44,10 @@ public class BasePage extends WebPage {
|
||||
@Inject
|
||||
protected UserRoleDAO userRoleDAO;
|
||||
|
||||
public BasePage() {
|
||||
add(new HeaderResponseContainer("footer-container", "footer-container"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
|
||||
@@ -1,15 +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>
|
||||
<div ng-app="commafeed" id="main" class="main">
|
||||
<div ui-view>
|
||||
|
||||
<wicket:extend>
|
||||
<div ng-app="commafeed" id="main" class="main">
|
||||
<div ui-view>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</wicket:extend>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -39,6 +39,7 @@ public class HomePage extends BasePage {
|
||||
@Override
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
|
||||
AngularReference.renderHead(response);
|
||||
AngularResourceReference.renderHead(response);
|
||||
AngularSanitizeReference.renderHead(response);
|
||||
|
||||
@@ -1,42 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<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>
|
||||
<div class="container">
|
||||
<div class="row header">
|
||||
<div class="text-center">
|
||||
<h1>
|
||||
<a wicket:id="logo-link">
|
||||
<img src="images/logo.png"></img>
|
||||
</a>
|
||||
</h1>
|
||||
<wicket:extend>
|
||||
<div class="container">
|
||||
<div class="row header">
|
||||
<div class="text-center">
|
||||
<h1>
|
||||
<a wicket:id="logo-link">
|
||||
<img src="images/logo.png"></img>
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
CommaFeed is a bloat-free feed reader. It aims to replace Google Reader while keeping things simple.
|
||||
</div>
|
||||
CommaFeed is a bloat-free feed reader. It aims to replace Google Reader while keeping things simple.
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="span6">
|
||||
<div class="well" id="login-panel">
|
||||
<h3>Login</h3>
|
||||
<span wicket:id="login"></span>
|
||||
<div class="row">
|
||||
<div class="span6">
|
||||
<div class="well" id="login-panel">
|
||||
<h3>Login</h3>
|
||||
<span wicket:id="login"></span>
|
||||
</div>
|
||||
</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 class="span6" wicket:enclosure="register">
|
||||
<div class="well" id="register-panel">
|
||||
<h3>Register</h3>
|
||||
<span wicket:id="register"></span>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div class="footer">
|
||||
© CommaFeed - 2013
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
<div class="footer">
|
||||
© CommaFeed - 2013
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</wicket:extend>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user