- renamed interactivesearch to yacyinteractive

- added a configuration option to set the pop up page in Config Appearance
- added a minimized header option to yacyinteractive
- fixed a bug in yacysearch: default values when no query is done


git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5569 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
orbiter 2009-02-03 13:04:02 +00:00
parent 910c2aaed6
commit 9d282d2c16
10 changed files with 154 additions and 23 deletions

View File

@ -75,6 +75,14 @@
<dt>URL of a Large Corporate Image</dt>
<dd><input type="text" name="promoteSearchPageGreeting.largeImage" value="#[promoteSearchPageGreeting.largeImage]#" size="60" /></dd>
<dt>Default Pop-Up Page</dt>
<dd>
<input type="radio" name="popup" value="status" #(popupStatus)#::checked="checked"#(/popupStatus)# />Status Page&nbsp;
<input type="radio" name="popup" value="front" #(popupFront)#::checked="checked"#(/popupFront)# />Search Front Page&nbsp;
<input type="radio" name="popup" value="search" #(popupSearch)#::checked="checked"#(/popupSearch)# />Search Page (small header)&nbsp;
<input type="radio" name="popup" value="interactive" #(popupInteractive)#::checked="checked"#(/popupInteractive)# />Interactive Search Page&nbsp;
</dd>
<dd>
<input type="submit" name="searchpage_set" value="Change Search Page" />&nbsp;&nbsp;
<input type="submit" name="searchpage_default" value="Set to Default Values" />
@ -83,10 +91,10 @@
</fieldset>
</form>
<p>
<h3>
The search page can be integrated in your own web pages with an iframe. Simply use the following code:
<p>
<pre>
</h3>
<fieldset><pre>
&lt;iframe name="target"
src="http://#[myaddress]#/index.html?display=2&amp;resource=local"
width="100%"
@ -95,14 +103,60 @@
scrolling="auto"
id="target"&gt;
&lt;/iframe&gt;
</pre>
</pre></fieldset>
This would look like:
<iframe name="target"
src="http://#[myaddress]#/index.html?display=2&amp;resource=local"
width="100%"
height="340"
frameborder="0"
scrolling="auto"
id="target">
</iframe>
<h3>
For a search page with a small header, use this code:
</h3>
<fieldset><pre>
&lt;iframe name="target"
src="http://#[myaddress]#/yacysearch.html?display=2&amp;resource=local"
width="100%"
height="560"
frameborder="0"
scrolling="auto"
id="target"&gt;
&lt;/iframe&gt;
</pre></fieldset>
This would look like:
<iframe name="target"
src="http://#[myaddress]#/yacysearch.html?display=2&amp;resource=local"
width="100%"
height="180"
frameborder="0"
scrolling="auto"
id="target">
</iframe>
<h3>
A third option is the interactive search. Use this code:
</h3>
<fieldset><pre>
&lt;iframe name="target"
src="http://#[myaddress]#/yacyinteractive.html?display=2"
width="100%"
height="560"
frameborder="0"
scrolling="auto"
id="target"&gt;
&lt;/iframe&gt;
</pre></fieldset>
This would look like:
<iframe name="target"
src="http://#[myaddress]#/yacyinteractive.html?display=2"
width="100%"
height="180"
frameborder="0"
scrolling="auto"
id="target">
</iframe>

View File

@ -128,6 +128,19 @@ public class ConfigAppearance_p {
sb.setConfig(plasmaSwitchboardConstants.GREETING_SMALL_IMAGE, "/env/grafics/YaCyLogo_60ppi.png");
}
if (post.containsKey("popup")) {
String popup = post.get("popup", "status");
if (popup.equals("front")) {
sb.setConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "index.html?display=2");
} else if (popup.equals("search")) {
sb.setConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "yacysearch.html?display=2");
} else if (popup.equals("interactive")) {
sb.setConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "yacyinteractive.html?display=2");
} else {
sb.setConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "Status.html");
}
}
}
// reread skins
@ -148,6 +161,22 @@ public class ConfigAppearance_p {
prop.putHTML(plasmaSwitchboardConstants.GREETING_HOMEPAGE, sb.getConfig(plasmaSwitchboardConstants.GREETING_HOMEPAGE, ""));
prop.putHTML(plasmaSwitchboardConstants.GREETING_LARGE_IMAGE, sb.getConfig(plasmaSwitchboardConstants.GREETING_LARGE_IMAGE, ""));
prop.putHTML(plasmaSwitchboardConstants.GREETING_SMALL_IMAGE, sb.getConfig(plasmaSwitchboardConstants.GREETING_SMALL_IMAGE, ""));
final String browserPopUpPage = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "ConfigBasic.html");
prop.put("popupFront", 0);
prop.put("popupSearch", 0);
prop.put("popupInteractive", 0);
prop.put("popupStatus", 0);
if (browserPopUpPage.startsWith("index")) {
prop.put("popupFront", 1);
} else if (browserPopUpPage.startsWith("yacysearch")) {
prop.put("popupSearch", 1);
} else if (browserPopUpPage.startsWith("yacyinteractive")) {
prop.put("popupInteractive", 1);
} else {
prop.put("popupStatus", 1);
}
String myaddress = sb.webIndex.seedDB.mySeed().getPublicAddress();
if (myaddress == null) myaddress = "localhost:" + sb.getConfig("port", "8080");
prop.put("myaddress", myaddress);

View File

@ -7,8 +7,7 @@
<ul class="menu">
<li><a href="/index.html?display=1" accesskey="s" class="MenuItemLink">Search Page</a></li>
<li><a href="/yacy/ui/" accesskey="s" class="MenuItemLink">Rich Client Search</a></li>
<li><a href="/interactivesearch.html?display=1" class="MenuItemLink">Interactive local Search</a></li>
<!--<li><a href="/yacy/user/ysearch.html?display=1" accesskey="s" class="MenuItemLink">Search Page (alternative)</a></li>-->
<li><a href="/yacyinteractive.html?display=1" class="MenuItemLink">Interactive local Search</a></li>
<li><a href="/compare_yacy.html?display=1" class="MenuItemLink">Compare Search</a></li>
<li><a href="/Ranking_p.html" class="MenuItemLink lock">Ranking Config</a></li>
<li><a href="/Surftips.html?display=1" class="MenuItemLink">Surftips</a></li>

View File

@ -58,6 +58,12 @@ public class index {
final boolean authenticated = sb.adminAuthenticated(header) >= 2;
int display = (post == null) ? 0 : post.getInt("display", 0);
if ((display == 1) && (!authenticated)) display = 0;
final boolean browserPopUpTrigger = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_TRIGGER, "true").equals("true");
if (browserPopUpTrigger) {
final String browserPopUpPage = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "ConfigBasic.html");
if (browserPopUpPage.startsWith("index") || browserPopUpPage.startsWith("yacysearch")) display = 2;
}
final int searchoptions = (post == null) ? 0 : post.getInt("searchoptions", 0);
final String former = (post == null) ? "" : post.get("former", "");
final int count = Math.min(100, (post == null) ? 10 : post.getInt("count", 10));

View File

@ -35,34 +35,46 @@ function updatepage(str){
var html = "<br>total results = " + totalResults;
var item;
html += "<table class=\"networkTable\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
html += "<tr class=\"TableHeader\" valign=\"bottom\"><td>Name</td><td>Description</td><td>Link</td></tr>";
html += "<tr class=\"TableHeader\" valign=\"bottom\">";
html += "<td>Name</td>";
//html += "<td>Description</td>";
html += "<td>Link</td></tr>";
for (var i = 0; i < firstChannel.items.length; i++) {
item = firstChannel.items[i];
html += "<tr class=\"TableCellLight\"><td>"+ item.title + "</td>";
html += "<td>" + item.description + "</td>";
//html += "<td>" + item.description + "</td>";
html += "<td><a href=\"" + item.link + "\">" + item.link + "</a></td></tr>";
}
html += "</table>";
document.getElementById("result").innerHTML = html;
document.getElementById("searchresults").innerHTML = html;
}
</script>
</head>
<body>
#%env/templates/header.template%#
#(display)#
#%env/templates/simpleheader.template%#
::
<div id="api"><a href="yacysearch.json?query=yacy"><img src="env/grafics/api.png"></a>
<span>This page uses the JSON search API to display search results as you type.
Click the API icon to see an example call to the native API.
To see a list of all APIs, please visit the <a href="http://www.yacy-websuche.de/wiki/index.php/Dev:API">API wiki page</a>.</span>
</div>
#%env/templates/header.template%#
::
#%env/templates/embeddedheader.template%#
#(/display)#
<form name="searchform" onkeyup='xmlhttpPost(); return false;'>
<p>Query: <input name="query" type="text">
<!--<input value="Search" type="submit">--></p>
<div id="result"></div>
<form class="search small" name="searchform" onkeyup='xmlhttpPost(); return false;'>
<h2>#[promoteSearchPageGreeting]#</h2>
<div class="yacylogo">
<a href="#[promoteSearchPageGreeting.homepage]#" class="yacylogo"><img src="#[promoteSearchPageGreeting.smallImage]#" alt="yacysearch" align="left"/></a></div>
<fieldset class="yacys"><input name="query" type="text" size="50" maxlength="80" /></fieldset>
<div id="searchresults"></div>
</div>
<!--<pre>Raw JSON String: <div id="raw"></div></pre>-->
</form>
#%env/templates/footer.template%#
</body>
</html>

View File

@ -25,17 +25,33 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import de.anomic.http.httpRequestHeader;
import de.anomic.plasma.plasmaSwitchboard;
import de.anomic.plasma.plasmaSwitchboardConstants;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
// this is a dummy class. Without it, the templates in interactivesearch.html do not load
public class interactivesearch {
public class yacyinteractive {
public static serverObjects respond(final httpRequestHeader header, serverObjects post, final serverSwitch<?> env) {
//final plasmaSwitchboard sb = (plasmaSwitchboard) env;
final plasmaSwitchboard sb = (plasmaSwitchboard) env;
final serverObjects prop = new serverObjects();
final boolean authenticated = sb.adminAuthenticated(header) >= 2;
int display = (post == null) ? 0 : post.getInt("display", 0);
if ((display == 1) && (!authenticated)) display = 0;
final boolean browserPopUpTrigger = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_TRIGGER, "true").equals("true");
if (browserPopUpTrigger) {
final String browserPopUpPage = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "ConfigBasic.html");
if (browserPopUpPage.startsWith("yacyinteractive")) display = 2;
}
String promoteSearchPageGreeting = env.getConfig(plasmaSwitchboardConstants.GREETING, "");
if (env.getConfigBool(plasmaSwitchboardConstants.GREETING_NETWORK_NAME, false)) promoteSearchPageGreeting = env.getConfig("network.unit.description", "");
prop.put("promoteSearchPageGreeting", promoteSearchPageGreeting);
prop.put("promoteSearchPageGreeting.homepage", sb.getConfig(plasmaSwitchboardConstants.GREETING_HOMEPAGE, ""));
prop.put("promoteSearchPageGreeting.smallImage", sb.getConfig(plasmaSwitchboardConstants.GREETING_SMALL_IMAGE, ""));
prop.put("display", display);
return prop;
}
}

View File

@ -57,7 +57,7 @@ To see a list of all APIs, please visit the <a href="http://www.yacy-websuche.de
::
<form class="search small" action="yacysearch.html" method="get" accept-charset="UTF-8">
<h2>#[promoteSearchPageGreeting]#</h2>
<div class="yacylogo"><a href="#[promoteSearchPageGreeting.homepage]#" class="yacylogo"><img src="#[promoteSearchPageGreeting.smallImage]#" alt="yacy" align="left"/></a></div>
<div class="yacylogo"><a href="#[promoteSearchPageGreeting.homepage]#" class="yacylogo"><img src="#[promoteSearchPageGreeting.smallImage]#" alt="yacysearch" align="left"/></a></div>
<fieldset class="yacys">
<input id="search" name="query" type="text" size="50" maxlength="80" value="#[former]#" onclick="document.getElementById('Enter').value = 'Search'" />
<input id="Enter" type="submit" name="Enter" value="Search" />

View File

@ -70,6 +70,11 @@ public class yacysearch {
final boolean authenticated = sb.adminAuthenticated(header) >= 2;
int display = (post == null) ? 0 : post.getInt("display", 0);
if ((display == 1) && (!authenticated)) display = 0;
final boolean browserPopUpTrigger = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_TRIGGER, "true").equals("true");
if (browserPopUpTrigger) {
final String browserPopUpPage = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "ConfigBasic.html");
if (browserPopUpPage.startsWith("index") || browserPopUpPage.startsWith("yacysearch")) display = 2;
}
final int input = (post == null) ? 2 : post.getInt("input", 2);
String promoteSearchPageGreeting = env.getConfig(plasmaSwitchboardConstants.GREETING, "");
if (env.getConfigBool(plasmaSwitchboardConstants.GREETING_NETWORK_NAME, false)) promoteSearchPageGreeting = env.getConfig("network.unit.description", "");
@ -113,6 +118,10 @@ public class yacysearch {
prop.put("results", "");
prop.put("resultTable", "0");
prop.put("num-results", searchAllowed ? "0" : "4");
prop.put("num-results_totalcount", 0);
prop.put("num-results_offset", 0);
prop.put("num-results_itemsPerPage", 10);
prop.put("rss_queryenc", "");
return prop;
}

View File

@ -534,4 +534,10 @@ public final class plasmaSwitchboardConstants {
public static final String GREETING_LARGE_IMAGE = "promoteSearchPageGreeting.largeImage";
public static final String GREETING_SMALL_IMAGE = "promoteSearchPageGreeting.smallImage";
/**
* browser pop up
*/
public static final String BROWSER_POP_UP_TRIGGER = "browserPopUpTrigger";
public static final String BROWSER_POP_UP_APPLICATION = "browserPopUpApplication";
public static final String BROWSER_POP_UP_PAGE = "browserPopUpPage";
}

View File

@ -341,12 +341,12 @@ public final class yacy {
//server.start();
// open the browser window
final boolean browserPopUpTrigger = sb.getConfig("browserPopUpTrigger", "true").equals("true");
final boolean browserPopUpTrigger = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_TRIGGER, "true").equals("true");
if (browserPopUpTrigger) {
final String browserPopUpPage = sb.getConfig("browserPopUpPage", "ConfigBasic.html");
final String browserPopUpPage = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_PAGE, "ConfigBasic.html");
//boolean properPW = (sb.getConfig("adminAccount", "").length() == 0) && (sb.getConfig(httpd.ADMIN_ACCOUNT_B64MD5, "").length() > 0);
//if (!properPW) browserPopUpPage = "ConfigBasic.html";
final String browserPopUpApplication = sb.getConfig("browserPopUpApplication", "firefox");
final String browserPopUpApplication = sb.getConfig(plasmaSwitchboardConstants.BROWSER_POP_UP_APPLICATION, "firefox");
serverSystem.openBrowser((server.withSSL()?"https":"http") + "://localhost:" + serverCore.getPortNr(port) + "/" + browserPopUpPage, browserPopUpApplication);
}