diff --git a/htroot/interaction_elements/Document_part.java b/htroot/interaction_elements/Document_part.java
index 57b7258fd..48425f2a5 100644
--- a/htroot/interaction_elements/Document_part.java
+++ b/htroot/interaction_elements/Document_part.java
@@ -21,7 +21,8 @@ public class Document_part {
final serverObjects prop = new serverObjects();
prop.put("hash", post.get("hash", ""));
- prop.put("url", post.get("url", ""));
+ prop.put("url", post.get("url", ""));
+ prop.put("action", post.get("action", ""));
return prop;
}
diff --git a/htroot/interaction_elements/OverlayInteraction.html b/htroot/interaction_elements/OverlayInteraction.html
index 580354a5a..d2d2e7794 100644
--- a/htroot/interaction_elements/OverlayInteraction.html
+++ b/htroot/interaction_elements/OverlayInteraction.html
@@ -180,9 +180,9 @@ z-index:99999;
-
+
-
+
diff --git a/htroot/interaction_elements/OverlayInteraction.java b/htroot/interaction_elements/OverlayInteraction.java
index 237cdf8d3..21af427df 100644
--- a/htroot/interaction_elements/OverlayInteraction.java
+++ b/htroot/interaction_elements/OverlayInteraction.java
@@ -15,6 +15,8 @@ public class OverlayInteraction {
prop.put("enabled_url", post.get("url", ""));
prop.put("enabled_urlhash", post.get("urlhash", ""));
+
+ prop.put("enabled_action", post.get("action", ""));
return prop;
}
diff --git a/htroot/interaction_elements/Tag_part.java b/htroot/interaction_elements/Tag_part.java
index 36f17ab9b..92c8946ba 100644
--- a/htroot/interaction_elements/Tag_part.java
+++ b/htroot/interaction_elements/Tag_part.java
@@ -16,6 +16,8 @@ public class Tag_part {
final serverObjects prop = new serverObjects();
prop.put("hash", post.get("hash", ""));
+ prop.put("url", post.get("url", ""));
+ prop.put("action", post.get("action", ""));
String vocabularies = "";
diff --git a/source/de/anomic/http/server/HTTPDFileHandler.java b/source/de/anomic/http/server/HTTPDFileHandler.java
index 0f97cec05..f0961effb 100644
--- a/source/de/anomic/http/server/HTTPDFileHandler.java
+++ b/source/de/anomic/http/server/HTTPDFileHandler.java
@@ -1423,9 +1423,15 @@ public final class HTTPDFileHandler {
private static void doURLProxy(final serverObjects args, final HashMap conProp, final RequestHeader requestHeader, final OutputStream out) throws IOException {
final String httpVersion = (String) conProp.get(HeaderFramework.CONNECTION_PROP_HTTP_VER);
URL proxyurl = null;
+ String action = "";
if(conProp != null && conProp.containsKey("ARGS")) {
- final String strARGS = (String) conProp.get("ARGS");
+ String strARGS = (String) conProp.get("ARGS");
+ if(strARGS.startsWith("action=")) {
+ int detectnextargument = strARGS.indexOf("&");
+ action = strARGS.substring (7, detectnextargument);
+ strARGS = strARGS.substring(detectnextargument+1);
+ }
if(strARGS.startsWith("url=")) {
final String strUrl = strARGS.substring(4); // strip url=
@@ -1461,6 +1467,9 @@ public final class HTTPDFileHandler {
requestHeader.remove("Authorization");
requestHeader.remove("Connection");
requestHeader.put(HeaderFramework.HOST, proxyurl.getHost());
+
+ // temporarily add argument to header to pass it on to augmented browsing
+ requestHeader.put("YACYACTION", action);
final ByteArrayOutputStream o = new ByteArrayOutputStream();
HTTPDProxyHandler.doGet(prop, requestHeader, o);
@@ -1494,9 +1503,9 @@ public final class HTTPDFileHandler {
// rewrite location header
location = outgoingHeader.get("Location");
if (location.startsWith("http")) {
- location = "/proxy.html?url=" + location;
+ location = "/proxy.html?action="+action+"&url=" + location;
} else {
- location = "/proxy.html?url=http://" + proxyurl.getHost() + "/" + location;
+ location = "/proxy.html?action="+action+"&url=http://" + proxyurl.getHost() + "/" + location;
}
outgoingHeader.put("Location", location);
}
diff --git a/source/net/yacy/interaction/AugmentHtmlStream.java b/source/net/yacy/interaction/AugmentHtmlStream.java
index 396dcbfe6..6d7bcf3a2 100644
--- a/source/net/yacy/interaction/AugmentHtmlStream.java
+++ b/source/net/yacy/interaction/AugmentHtmlStream.java
@@ -210,9 +210,12 @@ public class AugmentHtmlStream {
}
public static StringBuffer process (StringBuffer data, Charset charset, DigestURI url, RequestHeader requestHeader) {
+
+ String action = requestHeader.get("YACYACTION");
+ requestHeader.remove("YACYACTION");
globalrequestHeader = requestHeader;
-
+
Switchboard sb = Switchboard.getSwitchboard();
boolean augmented = false;
@@ -377,7 +380,7 @@ public class AugmentHtmlStream {
NodeList bodychildren = bt.getChildren();
- bodychildren.add(new org.htmlparser.nodes.TextNode(loadInternal("interaction_elements/OverlayInteraction.html?urlhash="+ ASCII.String(url.hash()) +"&url="+url.toNormalform(false, true), requestHeader)));
+ bodychildren.add(new org.htmlparser.nodes.TextNode(loadInternal("interaction_elements/OverlayInteraction.html?action="+action+"&urlhash="+ ASCII.String(url.hash()) +"&url="+url.toNormalform(false, true), requestHeader)));
bt.setChildren(bodychildren);