Major update to YaCy-UI...still not perfect...but I thought I share my progress :-)

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5519 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
apfelmaennchen 2009-01-26 18:38:58 +00:00
parent a2b336dfe7
commit 92d77c3bef
11 changed files with 442 additions and 338 deletions

View File

@ -114,7 +114,7 @@ public class get_bookmarks {
// default covers all non XBEL formats
// set bookmark iterator according to query
if (qtype.equals("tags") && !query.equals("")) {
if (qtype.equals("tags") && !query.equals("") && !query.equals("/")) {
it = sb.bookmarksDB.getBookmarksIterator(query, isAdmin);
} else {
it = sb.bookmarksDB.getBookmarksIterator(isAdmin);

View File

@ -0,0 +1,9 @@
[
#{folders}#{
"text": "#[foldername]#",
"expanded": #[expanded]#,
"classes": "#[classes]#",
"id": "#[hash]#",
"hasChildren": #[hasChildren]#
}#[comma]##{/folders}#
]

View File

@ -7,6 +7,47 @@ div.main {
height:100%;
}
.yresult .favicon {
width: 16px;
height: 16px;
padding: 5px 1px 1px 15px; /* top right bottom left */
}
/* Admin Console */
.banner {
margin-top: 20px;
margin-bottom: 0px;
}
table.adminconsole {
width:100%;
margin:8px 0px 6px 0px;
display:inline-block;
}
table.adminconsole td {
width: 63px;
text-align:center;
}
table.adminconsole td.head {
text-align:left;
}
table.adminconsole h3 {
margin-top: 15px;
margin-bottom: 5px;
font-size: 14px;
color: #27537a;
}
table.adminconsole img {
width: 32px;
height: 32px;
padding: 1px 1px 7px 1px; /* top right bottom left */
vertical-align: middle;
}
table.adminconsole a {
text-decoration:none;
color: black;
}
/* Searchbox */
table.contentdom {
@ -57,20 +98,11 @@ div.ys {
}
/* Sidebar */
div.sidebar {
margin-right: 1em;
float:left;
width:250px;
}
.menu img {
width: 32px;
height: 32px;
padding: 2px 15px 2px 2px;
vertical-align: middle;
}
.menu img.logo {
width: 256px;
height: 128px;
@ -236,7 +268,7 @@ dl.pairs dt {
border: 1px solid black;
text-decoration: none;
font-size: 14px;
max-height: 220px;
max-height: 320px;
overflow-x: hidden;
overflow-y: auto;
}

View File

@ -30,10 +30,13 @@
<script src="js/jquery.field.min.js" type="text/javascript"></script>
<script src="js/jquery.pagination.js" type="text/javascript"></script>
<script src="js/jquery-faviconize-1.0.js" type="text/javascript"></script>
<script src="js/jquery-flexigrid.js" type="text/javascript"></script>
<script src="js/jquery-flexigrid.js" type="text/javascript"></script>
<script src="js/jquery.treeview.min.js" type="text/javascript"></script>
<script src="js/jquery.treeview.async.js" type="text/javascript"></script>
<script src="js/jquery.xslTransform.js" type="text/javascript"></script>
<script type="text/javascript">
@ -81,30 +84,16 @@
$("select[@name='resource']").setValue('ymarks');
$("input[@name='contentdom']").setValue('text');
$("input[@name='search']").setValue(qtag);
} else {
/* set query string */
} else {
var search = $(tabid).attr('search');
var contentdom = $(tabid).attr('contentdom');
var count = $(tabid).attr('count');
var offset = $(tabid).attr('offset');
var resource = $(tabid).attr('resource');
var constraint= $(tabid).attr('constraint');
var prefermaskfilter = $(tabid).attr('prefermaskfilter');
var urlmaskfilter = $(tabid).attr('urlmaskfilter');
var language = $(tabid).attr('language');
query = $(tabid).attr('resource')
+"&search="+search
+"&contentdom="+contentdom
+"&count="+count
+"&offset="+offset
+"&urlmaskfilter="+urlmaskfilter;
if (constraint!="") { query = query+"&constraint="+constraint; };
if (prefermaskfilter!="") { query = query+"&prefermaskfilter="+prefermaskfilter; };
if (language!="") { query = query+"&lr=lang_"+language; };
$("input[@name='search']").setValue(search);
$("select[@name='itemsPerPage']").setValue(count);
$("input[@name='contentdom']").setValue(contentdom);
$("select[@name='constraint']").setValue(constraint);
$("input[@name='prefermaskfilter']").setValue(prefermaskfilter);
@ -136,8 +125,7 @@
var desc = $("textarea[@name='bm_desc']").getValue();
var tags = $("input[@name='bm_tags']").getValue()
var path = $("input[@name='bm_path']").getValue();
var pub = $("select[@name='bm_public']").getValue();
// var query = "&url="+url+"&title="+title+"&description="+desc+"&tags="+tags+"&path="+path+"&public="+pub+"&add=create";
var pub = $("select[@name='bm_public']").getValue();
$.ajax({
type: "POST",
url: "/api/bookmarks/posts/add_p.xml",
@ -146,13 +134,20 @@
success: function(xml) {
$('#bmaddform').resetForm();
$("#bm_url").unbind('blur');
$("#bmadd").dialog("close");
loadFolders();
$("#bmadd").dialog("close");
loadTagCloud();
$tabs.tabs("load", 3);
reloadBM();
}
});
}
function reloadBM() {
$('#ymarks').flexOptions({
query: qtag,
qtype: "tags"
});
$('div.ftitle').empty().html('YaCy Bookmarks: ' + HTMLenc(qtag));
$('#ymarks').flexReload();
}
//]]>
</script>
</head>
@ -169,8 +164,7 @@
<ul>
<!-- initial tabs only, dynamic tabs are loaded via jQuery -->
<li><a href="yacyui-welcome.html" title="About YaCy-UI"><span>About YaCy-UI</span></a></li>
<li><a href="yacyui-admin.html" title="Admin Console"><span>Admin Console</span></a></li>
<li><a href="yacyui-compare.html" title="Compare Search"><span>Compare Search</span></a></li>
<li><a href="yacyui-admin.html" title="Admin Console"><span>Admin Console</span></a></li>
<li><a href="yacyui-bookmarks.html" title="Bookmarks"><span>Bookmarks</span></a></li>
</ul>
</div>

View File

@ -0,0 +1,72 @@
/*
* Async Treeview 0.1 - Lazy-loading extension for Treeview
*
* http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
*
* Copyright (c) 2007 Jörn Zaefferer
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Revision: $Id$
*
*/
;(function($) {
function load(settings, root, child, container) {
$.getJSON(settings.url, {root: root}, function(response) {
function createNode(parent) {
var current = $("<li/>").attr("id", this.id || "").html("<span>" + this.text + "</span>").appendTo(parent);
if (this.classes) {
current.children("span").addClass(this.classes);
}
if (this.expanded) {
current.addClass("open");
}
if (this.hasChildren || this.children && this.children.length) {
var branch = $("<ul/>").appendTo(current);
if (this.hasChildren) {
current.addClass("hasChildren");
createNode.call({
text:"placeholder",
id:"placeholder",
children:[]
}, branch);
}
if (this.children && this.children.length) {
$.each(this.children, createNode, [branch])
}
}
}
$.each(response, createNode, [child]);
$(container).treeview({add: child});
});
}
var proxied = $.fn.treeview;
$.fn.treeview = function(settings) {
if (!settings.url) {
return proxied.apply(this, arguments);
}
var container = this;
load(settings, "source", this, container);
var userToggle = settings.toggle;
return proxied.call(this, $.extend({}, settings, {
collapsed: true,
toggle: function() {
var $this = $(this);
if ($this.hasClass("hasChildren")) {
var childList = $this.removeClass("hasChildren").find("ul");
childList.empty();
load(settings, this.id, childList, container);
}
if (userToggle) {
userToggle.apply(this, arguments);
}
}
}));
};
})(jQuery);

View File

@ -5,9 +5,33 @@
/* Init Sidebar_1 */
$("#side1").accordion({
autoHeight: false,
clearStyle: true,
header: "h3"
});
$("#side1").accordion("activate", 2);
$("#yfolder").treeview({
url: "/api/bookmarks/get_folders.json?bmtype=href",
unique: false,
toggle: function() {
var $this = $(this);
if ($this.hasClass("expandable")) {
var select = "li:has(ul li[id="+$this.attr("id")+"])";
qtag = $(select).attr("id");
if (!qtag) qtag = "/";
$this.addClass("hasChildren");
$this.find("ul").empty();
if (tabid == "#Bookmarks") {
reloadBM();
}
} else if ($this.hasClass("collapsable")) {
qtag = $this.attr("id");
if (tabid == "#Bookmarks") {
reloadBM();
}
}
}
});
/* Menu .click(function() */
$("#login").click(function() {
@ -239,29 +263,10 @@
</p>
</form>
</div>
<h3>YaCy Project</h3><!-- 1 -->
<h3>Bookmark Folders<span id="sidebar-1-3"></span></h3><!-- 1 -->
<div class="menu">
<img alt="YaCy Project Home" title="YaCy Project Home" src="img-1/home.png" />
<a href="http://www.yacy.net" >YaCy Home</a><br />
<img alt="YaCy Statistics" title="YaCy Statistics" src="img-2/bar_graph.png" />
<a href="http://www.yacystats.de" >YaCy Statistics</a><br />
<img alt="YaCy Forum" title="YaCy Forum" src="img-1/Discussion.png" />
<a href="http://forum.yacy-websuche.de/" >YaCy Forum</a><br />
<img alt="Help" title="YaCy Wiki" src="img-1/Help%20Blue%20Button.png" />
<a href="http://yacy-websuche.de/wiki/index.php/Hauptseite" >YaCy Wiki</a><br />
<ul class="filetree" id="yfolder"></ul>
</div>
<h3>YaCy Peer Admin</h3><!-- 2 -->
<div class="menu">
<img alt="Login" title="Login" src="img-1/User.png" />
<a id="login" href="#Login">Login</a><br />
<img alt="Admin Console" title="Admin Console" src="img-1/Gear.png" />
<a id="admin" href="#AdminConsole">Admin Console</a><br />
<img alt="Re-Start" title="Re-Start" src="img-1/Backup%20Green%20Button.png" />
<a href="../../Steering.html?restart=">Re-Start</a><br />
<img alt="Shutdown" title="Shutdown" src="img-1/Stop%20Red%20Button.png" />
<a id="shutdown" href="#Shutdown">Shutdown</a><br />
</div>

View File

@ -1,125 +0,0 @@
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
/* Init Sidebar_2 */
$("#side2").accordion({
autoHeight: false,
clearStyle: true,
header: "h3"
});
$("#side2").accordion("activate", 1);
/* Load Folders */
loadFolders();
/* experiemntal: only works with first folder level */
$("span.folder").click(function() {
qtag = "/"+$(this).text();
if (tabid == "#Bookmarks") {
$tabs.tabs("load", 3);
} else {
$tabs.tabs('select',3);
}
});
/* Load TagCloud */
loadTagCloud();
});
function loadFolders() {
$("#yfolder *").remove();
$("#yfolder").getTransform('xsl/xbel2folder-ul.xsl','/api/bookmarks/xbel/xbel.xml');
$("#yfolder").treeview({
collapsed: true,
unique: true
});
}
function loadTagCloud() {
$("#tagcloud *").remove();
$("#sidebar-2-1").toggleClass("loading");
$.ajax({
type: "POST",
url: "/api/bookmarks/tags/getTag.xml?top=25&sort=alpha",
dataType: "xml",
cache: false,
success: function(xml) {
$(xml).find('tag').each(function(){
var count = $(this).attr('count');
var tag = $(this).attr('tag');
var size = ((count/20)+0.3);
if (size < 1) {size = 1;}
$('<a style="font-size:'+size+'em"></a>')
.html(HTMLenc(tag)+' ')
.appendTo('#tagcloud')
.bind('click', function() {
qtag = $(this).text();
$("select[@name='resource']").setValue('ymarks');
$("input[@name='search']").setValue(qtag);
if (tabid == "#Bookmarks") {
$tabs.tabs("load", 3);
} else {
$tabs.tabs('select',3);
}
});
}); //close each(
$("#sidebar-2-1").toggleClass("loading");
}
}); //close $.ajax(
}
//]]>
</script>
<!-- 0 -->
<h3>Search Options</h3>
<div class="yform">
<form id="yoptions" class="small" method="get" action="" accept-charset="UTF-8">
<p>
<label for="itemsPerPage">Items per page: </label>
<br />
<select class="selector" name="itemsPerPage">
<option selected="selected" value="10">10</option>
<option value="15">15</option>
<option value="25">25</option>
<option value="50">50</option>
</select>
<br />
<label for="constraint">Constraint:</label>
<br />
<select class="selector" id="constraint" name="constraint">
<option value="" selected="selected">all pages</option>
<option value="AQAAAA" >index pages</option>
</select>
<br />
<label for="urlmaskfilter">URL mask:</label>
<br />
<input class="filter" name="urlmaskfilter" value=".*" type="text" size="12" maxlength="80" />
<img src="img-2/question_blue.png" class="help" alt="help" title="help" />
<br />
<label for="prefermaskfilter">Prefer mask:</label>
<br />
<input class="filter" name="prefermaskfilter" value="" type="text" size="12" maxlength="80" />
<img src="img-2/question_blue.png" class="help" alt="help" title="help" />
</p>
</form>
</div>
<!-- 1 -->
<h3 id="tagcloud-h3">Bookmark TagCloud
<span id="sidebar-2-1"></span>
</h3>
<div class="menu">
<p id="tagcloud"></p>
</div>
<!-- 2 -->
<h3>Bookmark Folders
<span id="sidebar-2-2"></span>
</h3>
<div class="menu">
<ul class="filetree" id="yfolder"></ul>
</div>

View File

@ -1,9 +1,5 @@
<script type="text/javascript">
//<![CDATA[
$(function() {
loaderBanner = window.setInterval("loadBanner()", 15000);
window.setInterval("reloadGraph()", 6000);
});
function loadBanner() {
for (var i = 0; i < document.images.length; i++) {
if (document.images[i].src.indexOf("Banner.png") > 0) {
@ -12,24 +8,133 @@ function loadBanner() {
}
}
}
function reloadGraph() {
document.images["graph"].src="/PerformanceGraph.png?time="+(new Date()).getTime();
window.status="";
}
$(function() {
loaderBanner = window.setInterval("loadBanner()", 5000);
})
//]]>
</script>
<p>
<img src="/Banner.png?textcolor=000000&bgcolor=ffffff&bordercolor=aaaaaa" alt="banner" />
</p>
<div style="display: block, float: left; width:670px; border:1px solid #CCCCCC;">
<iframe
src="/rssTerminal.html?set=PEERNEWS,REMOTESEARCH,LOCALSEARCH,REMOTEINDEXING,LOCALINDEXING,INDEXRECEIVE&amp;width=670px&amp;height=180px&amp;maxlines=20&amp;maxwidth=120"
name="newsframe" marginheight="5" marginwidth="5" scrolling="no" frameborder="0" height="180" width="670">
</iframe>
</div>
<br />
<div style="display: block, float: left; width:670px; border:1px solid #CCCCCC;">
<img src="/PerformanceGraph.png?time=" id="graph" alt="PerformanceGraph">
</div>
<img src="/Banner.png?textcolor=000000&bgcolor=ffffff&bordercolor=aaaaaa" alt="banner" class="banner"/>
<table class="adminconsole">
<tr><td class="head" colspan="7"><h3>Peer Control</h3><hr /></td></tr>
<tr>
<td>
<a id="login" href="#Login">
<img alt="Login" title="Login" src="img-1/User.png" border="0"/>
<br />
Login
</a>
</td>
<td>
<a href="#Messages">
<img alt="Messages" title="Messages" src="img-1/New%20Mail.png" border="0"/>
<br />
Messages
</a>
</td>
<td>
<a href="../../Steering.html?restart=">
<img alt="Re-Start" title="Re-Start" src="img-1/Backup%20Green%20Button.png" border="0"/>
<br />
Re-Start
</a>
</td>
<td>
<a id="shutdown" href="#Shutdown">
<img alt="Shutdown" title="Shutdown" src="img-1/Stop%20Red%20Button.png" border="0"/>
<br />
Shutdown
</a>
</td>
<td>&nbsp;</td><td>&nbsp;</td>
</tr>
<tr><td class="head" colspan="7"><h3>Web Indexing</h3><hr /></td></tr>
<tr>
<td>
<a href="#CrawlStart">
<img alt="Crawl Start" title="Crawl Start" src="img-1/New%20Document.png" border="0"/>
<br />
Crawl Start
</a>
</td>
</tr>
<tr><td class="head" colspan="7"><h3>Monitoring</h3><hr /></td></tr>
<tr>
<td>
<a href="#YaCyNetwork">
<img alt="YaCy Network" title="YaCy Network" src="img-1/Menu%20Item.png" border="0"/>
<br />
YaCy Network
</a>
</td>
</tr>
<tr><td class="head" colspan="7"><h3>Settings</h3><hr /></td></tr>
<tr>
<td>
<a href="#Basic">
<img alt="Basic Settings" title="Basic Setting" src="img-1/Gear.png" border="0"/>
<br />
Basic
</a>
</td>
<td>
<a href="#Users">
<img alt="Accounts" title="Accounts" src="img-1/Users.png" border="0"/>
<br />
Accounts
</a>
</td>
<td>
<a href="#Network">
<img alt="Network" title="Network" src="img-1/Network.png" border="0"/>
<br />
Network
</a>
</td>
<td>
<a href="#Advanced">
<img alt="Advanced Settings" title="Advanced Setting" src="img-1/Run.png" border="0"/>
<br />
Advanced
</a>
</td>
<td>
<a href="#Update">
<img alt="Advanced Settings" title="Advanced Setting" src="img-1/Import%20Document.png" border="0"/>
<br />
Update
</a>
</td>
</tr>
<tr><td class="head" colspan="7"><h3>YaCy Project</h3><hr /></td></tr>
<tr>
<td>
<a href="http://www.yacy.net" target="_blanc">
<img alt="YaCy Project Home" title="YaCy Project Home" src="img-1/home.png" border="0"/>
<br />
Project
</a>
</td>
<td>
<a href="http://www.yacystats.de" target="_blanc">
<img alt="YaCy Statistics" title="YaCy Statistics" src="img-2/bar_graph.png" border="0"/>
<br />
Statistics
</a>
</td>
<td>
<a href="http://forum.yacy-websuche.de/" target="_blanc">
<img alt="YaCy Forum" title="YaCy Forum" src="img-1/Discussion.png" border="0"/>
<br />
Forum
</a>
</td>
<td>
<a href="http://yacy-websuche.de/wiki/index.php/Hauptseite" target="_blanc">
<img alt="Help" title="YaCy Wiki" src="img-1/Help%20Blue%20Button.png" border="0"/>
<br />
Wiki
</a>
</td>
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
</tr>
</table>

View File

@ -1,10 +1,10 @@
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
$("#side1").accordion("activate", 0);
$("#side1").accordion("activate", 1);
// $("#side2").accordion("activate", 1);
// $('#yoptions').resetForm();
var height=document.documentElement.clientHeight - 240;
$('#ymarks').flexigrid({
url: '/api/bookmarks/get_bookmarks.json?display=1',
@ -45,19 +45,21 @@
striped: true,
nowrap: false,
height: height,
query: qtag,
qtype: "tags",
title: 'YaCy Bookmarks: ' + HTMLenc(qtag)
});
});
function bm_action(com,grid) {
if (com=='XBEL') {
window.document.location.href = '/api/bookmarks/xbel/xbel.xml';
window.document.location.href = '/api/bookmarks/get_bookmarks.xml?display=xbel';
}
else if (com=='RSS') {
window.document.location.href = '/Bookmarks.rss';
}
else if (com=='XML') {
window.document.location.href = '/api/bookmarks/posts/all.xml';
window.document.location.href = '/api/bookmarks/get_bookmarks.xml';
}
else if (com=='Delete') {
confirm('Delete ' + $('.trSelected',grid).length + ' bookmark(s)?')

View File

@ -1,137 +1,144 @@
<script type="application/javascript">
//<![CDATA[
$(document).ready(function() {
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
$("#side3").accordion("activate", 0);
$.ajax({
type: "GET",
url: query,
async: false,
dataType: "xml",
success: function(xml) {
if (($.browser.mozilla && (parseInt($.browser.version.replace(".","","g")) > 1800))) {
var totalResults = parseInt($(xml).find('opensearch\\:totalResults').text().replace(",","","g"));
var startIndex = parseInt($(xml).find('opensearch\\:startIndex').text());
var itemsPerPage = parseInt($(xml).find('opensearch\\:itemsPerPage').text());
var query = $(xml).find('opensearch\\:Query').attr('searchTerms');
} else {
var totalResults = parseInt($(xml).find('totalResults').text().replace(",","","g"));
var startIndex = parseInt($(xml).find('startIndex').text());
var itemsPerPage = parseInt($(xml).find('itemsPerPage').text());
var query = $(xml).find('Query').attr('searchTerms');
}
$(xml).find('item').each(function(){
var title = $(this).find('title').text();
var link = $(this).find('link').text();
var desc = $(this).find('description').text();
var hash = $(this).find('guid').text();
var date = $(this).find('pubDate').text();
var tags = "";
$('<tr></tr')
.html('<td>' +hash+ '</td><td>' +''+ '</td><td><h3 class="linktitle">' +HTMLenc(title)+ '</h3><p class="desc">' +HTMLenc(desc)+ '</p><p class="url"><a href="' +link+ '">' +link+ '</a></p><td>' +HTMLenc(tags)+ ' </td><td>' +date+ '</td>')
.appendTo(tabid+" .yresult tbody");
}); //close each(
var height=document.documentElement.clientHeight - 205;
var page = "&nbsp;" + (startIndex+1) + "-" + (startIndex+itemsPerPage) + " of " + totalResults;
$(tabid+" .yresult").flexigrid({
colModel: [
{display: 'Hash', name : 'hash', width : 50, sortable : false, align: 'center', hide: true},
{display: '', name : 'public', width : 25, sortable : true, align: 'center'},
{display: 'Title', name : 'title', width : 450, sortable : true, align: 'left'},
{display: 'Tags', name : 'tags', width : 240, sortable : false, align: 'left'},
{display: 'Date', name : 'date', width : 130, sortable : true, align: 'left'}
],
buttons: [
{name: 'Crawl', bclass: 'crawl', onpress: yaction},
{name: 'Open', bclass: 'pictures', onpress: yaction},
{separator: true},
{name: 'Bookmark', bclass: 'bookmark', onpress: yaction},
{separator: true},
{name: 'Blacklist', bclass: 'blacklist', onpress: yaction},
{separator: true},
{name: 'Refresh', bclass: 'load', onpress: yload},
{name: 'RSS', bclass: 'rss', onpress: yaction},
{separator: true},
{name: page, bclass: 'prev', onpress: yload},
{name: '&nbsp;', bclass: 'next', onpress: yload},
{separator: true},
{name: 'Help', bclass: 'help', onpress:yaction},
],
striped: true,
nowrap: false,
height: height,
title: 'YaCy P2P Web Search: '+query
});
}
}); //close $.ajax(
/*
$(".linktitle a").faviconize({
position: "before",
defaultImage: "img-2/article.png",
className: "favicon"
});
*/
function yaction(com, grid) {
if (com == 'Bookmark') {
confirm('Add ' + $('.trSelected',grid).length + ' search results to bookmark(s)?')
$('.trSelected',grid).each(function(){
var url = $(this).find('.url').text();
var title = $(this).find('.linktitle').text();
var desc = $(this).find('.desc').text();
var tags = $(tabid).attr('search');
var path = "/searchResults";
var pub = "private";
var query = "&url="+url+"&title="+title+"&description="+desc+"&tags="+tags+"&path="+path+"&public="+pub+"&add=create";
$.ajax({
type: "POST",
url: "/api/bookmarks/posts/add_p.xml?login="+query,
dataType: "xml",
success: function(xml) {
alert("Debug: posted bookmark for: "+url);
}
});
});
} else if (com =='Open') {
$('.trSelected',grid).each(function(){
var url = $(this).find('.url').text();
window.open(url);
var height=document.documentElement.clientHeight - 240;
$(tabid+" .yresult").flexigrid({
url: '/yacysearch.json',
dataType: 'json',
method: 'GET',
query: $(tabid).attr('search'),
colModel: [
{display: 'Hash', name : 'hash', width : 50, sortable : false, align: 'center', hide: true},
{display: 'Public', name : 'public', width : 25, sortable : true, align: 'center'},
{display: 'Title', name : 'title', width : 450, sortable : true, align: 'left'},
{display: 'Tags', name : 'tags', width : 240, sortable : false, align: 'left'},
{display: 'Folders', name : 'folders', width : 240, sortable : false, align: 'left', hide: true},
{display: 'Date', name : 'date', width : 100, sortable : true, align: 'left'}
],
buttons: [
{name: 'Crawl', bclass: 'crawl', onpress: yaction},
{name: 'Open', bclass: 'pictures', onpress: yaction},
{separator: true},
{name: 'Bookmark', bclass: 'bookmark', onpress: yaction},
{name: 'Blacklist', bclass: 'blacklist', onpress: yaction},
{separator: true},
{name: 'Help', bclass: 'help', onpress:yaction},
],
useRp: true,
rp: 10,
usepager: true,
striped: true,
nowrap: false,
height: height,
autoload: true,
onSuccess: function() {
$("a.favicon").faviconize({
position: "before",
defaultImage: "img-2/article.png",
className: "favicon"
});
} else {
alert("Test!");
}
},
preProcess: function(data) {
var total = data.channels[0].totalResults.replace(/[,.]/,"");
var page = (data.channels[0].startIndex / data.channels[0].itemsPerPage) + 1;
var rows = {};
$.each (
data.channels[0].items,
function(i,item) {
if (item) {
var html = "<h3 class='linktitle'>"+item.title+"</h3><p class='desc'>"+item.description+"</p><p class='url'><a href='"+item.link+"'>"+item.link+"</a>"
var fav = "<a class='favicon' href='"+item.link+"'></a>";
rows[i] = {id: item.guid, cell: [item.guid, fav, html, "Tags", "Folders", item.pubDate]};
}
}
);
var pdata = {
page: page,
total: total,
rows: rows
};
return pdata;
},
onSubmit: function() {
var p = this;
var g = $(tabid+" .yresult");
$('.pPageStat',this.pDiv).html(p.procmsg);
$('.pReload',this.pDiv).addClass('loading');
if (g.bDiv) $(g.block).css({top:g.bDiv.offsetTop});
if (p.hideOnSubmit) $(this.gDiv).prepend(g.block); //$(t).hide();
if ($.browser.opera) $(t).css('visibility','hidden');
if (!p.newp) p.newp = 1;
if (p.page>p.pages) p.page = p.pages;
var offset = p.newp * p.rp -p.rp;
var param = [
{ name : 'startRecord', value : offset }
,{ name : 'maximumRecords', value : p.rp }
,{ name : 'resource', value : $(tabid).attr('resource')}
,{ name : 'verify', value : "true" }
,{ name : 'search', value : p.query}
,{ name : 'urlmaskfilter', value : $(tabid).attr('urlmaskfilter')}
,{ name : 'prefermaskfilter', value : $(tabid).attr('prefermaskfilter')}
,{ name : 'contentdom', value : $(tabid).attr('contentdom')}
,{ name : 'constraint', value : $(tabid).attr('constraint')}
,{ name : 'language', value : $(tabid).attr('language')}
];
if (p.params) {
for (var pi = 0; pi < p.params.length; pi++) param[param.length] = p.params[pi];
}
$.ajax({
type: p.method,
url: p.url,
data: param,
dataType: p.dataType,
success: function(data){
/* yacy limits itemsPerPage for unauthenticated users */
p.rp = parseInt(data.channels[0].itemsPerPage);
g.flexAddData(data);
},
error: function(data) {
try { if (p.onError) p.onError(data); } catch (e) {}
}
});
}
});
});
function yaction(com, grid) {
if (com == 'Bookmark') {
confirm('Add ' + $('.trSelected',grid).length + ' search results to bookmark(s)?')
$('.trSelected',grid).each(function(){
var url = $(this).find('.url').text();
var title = $(this).find('.linktitle').text();
var desc = $(this).find('.desc').text();
var tags = $(tabid).attr('search');
var path = "/searchResults";
var pub = "private";
var query = "&url="+url+"&title="+title+"&description="+desc+"&tags="+tags+"&path="+path+"&public="+pub+"&add=create";
$.ajax({
type: "POST",
url: "/xml/bookmarks/posts/add_p.xml?login="+query,
dataType: "xml",
success: function(xml) {
alert("Debug: posted bookmark for: "+url);
}
});
});
} else if (com =='Open') {
$('.trSelected',grid).each(function(){
var url = $(this).find('.url').text();
window.open(url);
});
} else {
alert("Test!");
}
function yload(com, grid) {
var $tabs = $('#container ul');
var count = parseInt($(tabid).attr('count'));
var offset = parseInt($(tabid).attr('offset'));
if (com == '&nbsp;') {
offset = offset+count;
}
else if (com == 'Refresh') {
offset = 0;
}
else if (offset > count) {
offset = offset-count;
}
$(tabid).attr('offset', offset);
query = $(tabid).attr('resource')
+"&search="+$(tabid).attr('search')
+"&contentdom="+$(tabid).attr('contentdom')
+"&count="+$(tabid).attr('count')
+"&offset="+$(tabid).attr('offset')
+"&constraint="+$(tabid).attr('constraint')
+"&prefermaskfilter="+$(tabid).attr('prefermaskfilter')
+"&urlmaskfilter="+$(tabid).attr('urlmaskfilter');
var selected = $tabs.data('selected.tabs');
$tabs.tabs("load", selected);
return false;
}
}); //close $(
}
//]]>
</script>
</script>
<table class="yresult">
<tbody></tbody>
</table>
</table>

View File

@ -8,6 +8,9 @@
apfelmaennchen
<h3>Change Log</h3>
<ul>
<li>26-01-2009: reworked search interface, still has timing problems, but now uses yacysearch.json and has full support for flexigrid</li>
<li>25-01-2009: bookmark folders sidebar is now directly linked to flexigrid if bookmark tab is selected</li>
<li>25-01-2009: successfully migrated bookmark folders to treeview.async mode (==> new json api)</li>
<li>11-01-2009: support for new unified bookmark api ==> much improved handling due to json and flexigrid</li>
<li>27-09-2008: Enabled edit bookmark and added some more icons to toolbar</li>
<li>27-09-2008: Added scrollbar to folder widget</li>