mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
concat templates and use build timestamp as cache invalidator
This commit is contained in:
28
src/main/script/HTMLConcat.groovy
Normal file
28
src/main/script/HTMLConcat.groovy
Normal file
@@ -0,0 +1,28 @@
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang.SystemUtils;
|
||||
|
||||
public class HTMLConcat {
|
||||
public void concat(String source, String prefix, String destination)
|
||||
throws IOException {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("<div>");
|
||||
for (File file : new File(source).listFiles()) {
|
||||
if (file.isFile()) {
|
||||
sb.append(SystemUtils.LINE_SEPARATOR);
|
||||
sb.append(String.format(
|
||||
"<script type=\"text/ng-template\" id=\"%s%s\">",
|
||||
prefix, file.getName()));
|
||||
sb.append(SystemUtils.LINE_SEPARATOR);
|
||||
sb.append(FileUtils.readFileToString(file));
|
||||
sb.append(SystemUtils.LINE_SEPARATOR);
|
||||
sb.append("</script>");
|
||||
sb.append(SystemUtils.LINE_SEPARATOR);
|
||||
}
|
||||
}
|
||||
sb.append("</div>");
|
||||
FileUtils.writeStringToFile(new File(destination), sb.toString());
|
||||
}
|
||||
}
|
||||
35
src/main/script/template-loader.js
Normal file
35
src/main/script/template-loader.js
Normal file
@@ -0,0 +1,35 @@
|
||||
var app = angular.module('commafeed.services');
|
||||
|
||||
app.factory('$templateCache', ['$cacheFactory', '$http', '$injector', function($cacheFactory, $http, $injector) {
|
||||
var cache = $cacheFactory('templates');
|
||||
var allTplPromise;
|
||||
|
||||
return {
|
||||
get : function(url) {
|
||||
var fromCache = cache.get(url);
|
||||
|
||||
if (fromCache) {
|
||||
return fromCache;
|
||||
}
|
||||
|
||||
if (!allTplPromise) {
|
||||
allTplPromise = $http.get('templates/all-templates.html?${timestamp}').then(
|
||||
function(response) {
|
||||
$injector.get('$compile')(response.data);
|
||||
return response;
|
||||
});
|
||||
}
|
||||
|
||||
return allTplPromise.then(function(response) {
|
||||
return {
|
||||
status : response.status,
|
||||
data : cache.get(url)
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
put : function(key, value) {
|
||||
cache.put(key, value);
|
||||
}
|
||||
};
|
||||
}]);
|
||||
Reference in New Issue
Block a user