use webjars

This commit is contained in:
Athou
2013-03-27 20:56:45 +01:00
parent 5c759ad496
commit e0925e8c50
41 changed files with 2445 additions and 853 deletions

View File

@@ -0,0 +1,20 @@
package com.commafeed.frontend.references.angular;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
public class AngularReference extends WebjarsJavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final AngularReference INSTANCE = new AngularReference();
private AngularReference() {
super("/angularjs/current/angular.js");
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}

View File

@@ -0,0 +1,31 @@
package com.commafeed.frontend.references.angular;
import java.util.Arrays;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
public class AngularResourceReference extends
WebjarsJavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final AngularResourceReference INSTANCE = new AngularResourceReference();
private AngularResourceReference() {
super("/angularjs/current/angular-resource.js");
}
@Override
public Iterable<? extends HeaderItem> getDependencies() {
return Arrays.asList(JavaScriptHeaderItem
.forReference(AngularReference.INSTANCE));
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}

View File

@@ -0,0 +1,30 @@
package com.commafeed.frontend.references.angular;
import java.util.Arrays;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
public class AngularSanitizeReference extends
WebjarsJavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final AngularSanitizeReference INSTANCE = new AngularSanitizeReference();
private AngularSanitizeReference() {
super("/angularjs/current/angular-sanitize.js");
}
@Override
public Iterable<? extends HeaderItem> getDependencies() {
return Arrays.asList(JavaScriptHeaderItem
.forReference(AngularReference.INSTANCE));
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}

View File

@@ -0,0 +1,32 @@
package com.commafeed.frontend.references.angularui;
import java.util.Arrays;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import com.commafeed.frontend.utils.WicketUtils;
import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
public class AngularUIReference extends WebjarsJavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final AngularUIReference INSTANCE = new AngularUIReference();
private AngularUIReference() {
super("/angular-ui/current/angular-ui.js");
}
@Override
public Iterable<? extends HeaderItem> getDependencies() {
return Arrays
.asList(WicketUtils
.buildCssWebJarHeaderItem("/angular-ui/current/angular-ui.css"));
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}

View File

@@ -0,0 +1,30 @@
package com.commafeed.frontend.references.angularuibootstrap;
import java.util.Arrays;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import com.commafeed.frontend.references.angular.AngularReference;
public class AngularUIBootstrapReference extends JavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final AngularUIBootstrapReference INSTANCE = new AngularUIBootstrapReference();
private AngularUIBootstrapReference() {
super(AngularUIBootstrapReference.class, "ui-bootstrap-tpls-0.2.0.js");
}
@Override
public Iterable<? extends HeaderItem> getDependencies() {
return Arrays.asList(JavaScriptHeaderItem
.forReference(AngularReference.INSTANCE));
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,19 @@
package com.commafeed.frontend.references.csstreeview;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.request.resource.CssResourceReference;
public class CssTreeViewReference extends CssResourceReference {
private static final long serialVersionUID = 1L;
public static final CssTreeViewReference INSTANCE = new CssTreeViewReference();
private CssTreeViewReference() {
super(CssTreeViewReference.class, "css3-treeview.css");
}
public static void renderHead(final IHeaderResponse response) {
response.render(CssHeaderItem.forReference(INSTANCE));
}
}

View File

@@ -0,0 +1,115 @@
.css-treeview ul,
.css-treeview li
{
padding: 0;
margin: 0;
list-style: none;
}
.css-treeview input
{
position: absolute;
opacity: 0;
}
.css-treeview
{
font: normal 11px "Segoe UI", Arial, Sans-serif;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
}
.css-treeview a
{
color: #00f;
text-decoration: none;
}
.css-treeview a:hover
{
text-decoration: underline;
}
.css-treeview input + label + ul
{
margin: 0 0 0 22px;
}
.css-treeview input ~ ul
{
display: none;
}
.css-treeview label,
.css-treeview label::before
{
cursor: pointer;
}
.css-treeview input:disabled + label
{
cursor: default;
opacity: .6;
}
.css-treeview input:checked:not(:disabled) ~ ul
{
display: block;
}
.css-treeview label,
.css-treeview label::before
{
background: url("icons.png") no-repeat;
}
.css-treeview label,
.css-treeview a,
.css-treeview label::before
{
display: inline-block;
height: 16px;
line-height: 16px;,
vertical-align: middle;
}
.css-treeview label
{
background-position: 18px 0;
}
.css-treeview label::before
{
content: "";
width: 16px;
margin: 0 22px 0 0;
vertical-align: middle;
background-position: 0 -32px;
}
.css-treeview input:checked + label::before
{
background-position: 0 -16px;
}
/* webkit adjacent element selector bugfix */
@media screen and (-webkit-min-device-pixel-ratio:0)
{
.css-treeview
{
-webkit-animation: webkit-adjacent-element-selector-bugfix infinite 1s;
}
@-webkit-keyframes webkit-adjacent-element-selector-bugfix
{
from
{
padding: 0;
}
to
{
padding: 0;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

View File

@@ -0,0 +1,30 @@
package com.commafeed.frontend.references.nginfinitescroll;
import java.util.Arrays;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import com.commafeed.frontend.references.angular.AngularReference;
public class NGInfiniteScrollReference extends JavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final NGInfiniteScrollReference INSTANCE = new NGInfiniteScrollReference();
private NGInfiniteScrollReference() {
super(NGInfiniteScrollReference.class, "ng-infinite-scroll.js");
}
@Override
public Iterable<? extends HeaderItem> getDependencies() {
return Arrays.asList(JavaScriptHeaderItem
.forReference(AngularReference.INSTANCE));
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}

View File

@@ -0,0 +1,61 @@
/* ng-infinite-scroll - v1.0.0 - 2013-02-23 */
var mod;
mod = angular.module('infinite-scroll', []);
mod.directive('infiniteScroll', [
'$rootScope', '$window', '$timeout', function($rootScope, $window, $timeout) {
return {
link: function(scope, elem, attrs) {
var checkWhenEnabled, handler, scrollDistance, scrollEnabled;
$window = angular.element($window);
scrollDistance = 0;
if (attrs.infiniteScrollDistance != null) {
scope.$watch(attrs.infiniteScrollDistance, function(value) {
return scrollDistance = parseInt(value, 10);
});
}
scrollEnabled = true;
checkWhenEnabled = false;
if (attrs.infiniteScrollDisabled != null) {
scope.$watch(attrs.infiniteScrollDisabled, function(value) {
scrollEnabled = !value;
if (scrollEnabled && checkWhenEnabled) {
checkWhenEnabled = false;
return handler();
}
});
}
handler = function() {
var elementBottom, remaining, shouldScroll, windowBottom;
windowBottom = $window.height() + $window.scrollTop();
elementBottom = elem.offset().top + elem.height();
remaining = elementBottom - windowBottom;
shouldScroll = remaining <= $window.height() * scrollDistance;
if (shouldScroll && scrollEnabled) {
if ($rootScope.$$phase) {
return scope.$eval(attrs.infiniteScroll);
} else {
return scope.$apply(attrs.infiniteScroll);
}
} else if (shouldScroll) {
return checkWhenEnabled = true;
}
};
$window.on('scroll', handler);
scope.$on('$destroy', function() {
return $window.off('scroll', handler);
});
return $timeout((function() {
if (attrs.infiniteScrollImmediateCheck) {
if (scope.$eval(attrs.infiniteScrollImmediateCheck)) {
return handler();
}
} else {
return handler();
}
}), 0);
}
};
}
]);

View File

@@ -0,0 +1,2 @@
/* ng-infinite-scroll - v1.0.0 - 2013-02-23 */
var mod;mod=angular.module("infinite-scroll",[]),mod.directive("infiniteScroll",["$rootScope","$window","$timeout",function(i,n,e){return{link:function(t,l,o){var r,c,f,a;return n=angular.element(n),f=0,null!=o.infiniteScrollDistance&&t.$watch(o.infiniteScrollDistance,function(i){return f=parseInt(i,10)}),a=!0,r=!1,null!=o.infiniteScrollDisabled&&t.$watch(o.infiniteScrollDisabled,function(i){return a=!i,a&&r?(r=!1,c()):void 0}),c=function(){var e,c,u,d;return d=n.height()+n.scrollTop(),e=l.offset().top+l.height(),c=e-d,u=n.height()*f>=c,u&&a?i.$$phase?t.$eval(o.infiniteScroll):t.$apply(o.infiniteScroll):u?r=!0:void 0},n.on("scroll",c),t.$on("$destroy",function(){return n.off("scroll",c)}),e(function(){return o.infiniteScrollImmediateCheck?t.$eval(o.infiniteScrollImmediateCheck)?c():void 0:c()},0)}}}]);

View File

@@ -0,0 +1,30 @@
package com.commafeed.frontend.references.ngupload;
import java.util.Arrays;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import com.commafeed.frontend.references.angular.AngularReference;
public class NGUploadReference extends JavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final NGUploadReference INSTANCE = new NGUploadReference();
private NGUploadReference() {
super(NGUploadReference.class, "ng-upload.js");
}
@Override
public Iterable<? extends HeaderItem> getDependencies() {
return Arrays.asList(JavaScriptHeaderItem
.forReference(AngularReference.INSTANCE));
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}

View File

@@ -0,0 +1,107 @@
// Version 0.3.2
// AngularJS simple file upload directive
// this directive uses an iframe as a target
// to enable the uploading of files without
// losing focus in the ng-app.
//
// <div ng-app="app">
// <div ng-controller="mainCtrl">
// <form action="/uploads" ng-upload>
// <input type="file" name="avatar"></input>
// <input type="submit" value="Upload"
// upload-submit="submited(content, completed)"></input>
// </form>
// </div>
// </div>
//
// angular.module('app', ['ngUpload'])
// .controller('mainCtrl', function($scope) {
// $scope.submited = function(content, completed) {
// if (completed) {
// console.log(content);
// }
// }
// });
//
angular.module('ngUpload', [])
.directive('uploadSubmit', ['$parse', function($parse) {
return {
restrict: 'AC',
link: function(scope, element, attrs) {
// Options (just 1 for now)
// Each option should be prefixed with 'upload-options-' or 'uploadOptions'
// {
// // specify whether to enable the submit button when uploading forms
// enableControls: bool
// }
var options = {};
options.enableControls = attrs.uploadOptionsEnableControls;
// submit the form - requires jQuery
var form = element.parents('form[ng-upload]') || element.parents('form.ng-upload');
// Retrieve the callback function
var fn = $parse(attrs.uploadSubmit);
if (!angular.isFunction(fn)) {
var message = "The expression on the ngUpload directive does not point to a valid function.";
throw message + "\n";
}
element.bind('click', function($event) {
// prevent default behavior of click
$event.preventDefault = true;
// create a new iframe
var iframe = angular.element("<iframe id='upload_iframe' name='upload_iframe' border='0' width='0' height='0' style='width: 0px; height: 0px; border: none; display: none' />");
// attach function to load event of the iframe
iframe.bind('load', function () {
// get content - requires jQuery
var content = iframe.contents().find('body').text();
// execute the upload response function in the active scope
scope.$apply(function () {
fn(scope, { content: content, completed: true});
});
// remove iframe
if (content !== "") { // Fixes a bug in Google Chrome that dispose the iframe before content is ready.
setTimeout(function () { iframe.remove(); }, 250);
}
element.attr('disabled', null);
element.attr('title', 'Click to start upload.');
});
// add the new iframe to application
form.parent().append(iframe);
scope.$apply(function () {
fn(scope, {content: "Please wait...", completed: false });
});
var enabled = true;
if (!options.enableControls) {
// disable the submit control on click
element.attr('disabled', 'disabled');
enabled = false;
}
// why do we need this???
element.attr('title', (enabled ? '[ENABLED]: ' : '[DISABLED]: ') + 'Uploading, please wait...');
form.submit();
}).attr('title', 'Click to start upload.');
}
};
}])
.directive('ngUpload', ['$parse', function ($parse) {
return {
restrict: 'AC',
link: function (scope, element, attrs) {
element.attr("target", "upload_iframe");
element.attr("method", "post");
// Append a timestamp field to the url to prevent browser caching results
element.attr("action", element.attr("action") + "?_t=" + new Date().getTime());
element.attr("enctype", "multipart/form-data");
element.attr("encoding", "multipart/form-data");
}
};
}]);

View File

@@ -0,0 +1 @@
angular.module("ngUpload",[]).directive("uploadSubmit",["$parse",function(t){return{restrict:"AC",link:function(a,e,n){var o={};o.enableControls=n.uploadOptionsEnableControls;var i=e.parents("form[ng-upload]")||e.parents("form.ng-upload"),r=t(n.uploadSubmit);if(!angular.isFunction(r)){var l="The expression on the ngUpload directive does not point to a valid function.";throw l+"\n"}e.bind("click",function(t){t.preventDefault=!0;var n=angular.element("<iframe id='upload_iframe' name='upload_iframe' border='0' width='0' height='0' style='width: 0px; height: 0px; border: none; display: none' />");n.bind("load",function(){var t=n.contents().find("body").text();a.$apply(function(){r(a,{content:t,completed:!0})}),""!==t&&setTimeout(function(){n.remove()},250),e.attr("disabled",null),e.attr("title","Click to start upload.")}),i.parent().append(n),a.$apply(function(){r(a,{content:"Please wait...",completed:!1})});var l=!0;o.enableControls||(e.attr("disabled","disabled"),l=!1),e.attr("title",(l?"[ENABLED]: ":"[DISABLED]: ")+"Uploading, please wait..."),i.submit()}).attr("title","Click to start upload.")}}}]).directive("ngUpload",["$parse",function(){return{restrict:"AC",link:function(t,a){a.attr("target","upload_iframe"),a.attr("method","post"),a.attr("action",a.attr("action")+"?_t="+(new Date).getTime()),a.attr("enctype","multipart/form-data"),a.attr("encoding","multipart/form-data")}}}]);

View File

@@ -0,0 +1,31 @@
package com.commafeed.frontend.references.select2;
import java.util.Arrays;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import com.commafeed.frontend.utils.WicketUtils;
import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
public class Select2Reference extends WebjarsJavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final Select2Reference INSTANCE = new Select2Reference();
private Select2Reference() {
super("/select2/current/select2.js");
}
@Override
public Iterable<? extends HeaderItem> getDependencies() {
return Arrays.asList(WicketUtils
.buildCssWebJarHeaderItem("/select2/current/select2.css"));
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}

View File

@@ -0,0 +1,20 @@
package com.commafeed.frontend.references.spinjs;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
public class SpinJSReference extends WebjarsJavaScriptResourceReference {
private static final long serialVersionUID = 1L;
public static final SpinJSReference INSTANCE = new SpinJSReference();
private SpinJSReference() {
super("/spin-js/current/spin.js");
}
public static void renderHead(final IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(INSTANCE));
}
}